在動手操作一個算法的時候,可能需要自己生成數據集。Python sklearn給我們提供了一些有用的數據生成器和數據加載工具,所以就不需要我們寫代碼來生成數據啦。下面介紹幾個大家都比較常用的數據集:
數據加載工具
這個工具下面一共有24個數據集,只要直接導入就可以使用,就像導入一個csv文件一樣。
1.datasets.load_iris()這個數據集應該是最常見的了,經常看見網上博主們需要做分類的數據集時候,拿的就是這個鳶尾花數據集。
大家點擊數據集的鏈接就可以看到鳶尾花數據集的介紹:
Classes | 3 |
Samples per class | 50 |
Samples total | 150 |
Dimensionality | 4 |
Features | real, positive |
下面是獲取數據集的方法:
from sklearn import datasets
iris = datasets.load_iris()
### 打印數據集,可以看到數據集的詳細信息
print(iris)
### 獲取數據
X = iris.data
### 獲取標籤
y = iris.target
### 獲取標籤名稱
TarName = iris.target_names
### 獲取特徵名稱
FeaName = iris.feature_names
2.
datasets.load_boston()這個數據集應該是迴歸問題裏面,網上博主們最常用的數據集,也就是波士頓房價數據集。大家點擊數據集的鏈接就可以看到它的介紹了:
Samples total | 506 |
Dimensionality | 13 |
Features | real, positive |
Targets | real 5. - 50. |
下面是數據集的獲取方法:
boston = datasets.load_boston()
### 打印數據集,可以看到數據集的詳細信息
print(boston)
### 獲取數據集
X = boston.data
### 獲取目標值
y = boston.target
### 獲取特徵名稱
FeaName = boston.feature_names
數據生成器
datasets下面一共有20個數據集生成器,相比與上面的數據集,這個裏面的數據集就很簡單,主要是用來對算法的結果進行可視化。它是根據參數的值來生成數據,並不像上面的數據集一樣導入就可以使用。
1.datasets.make_moons
() 該函數會生成兩個交叉的半圓型數據集,可以用做聚類和分類算法的數據集。具體的參數大家可以點擊數據集的鏈接,參考官方文檔。生成的圖形如下圖所示:
### 生成200個數據點的數據
X,y = datasets.make_moons(200)
### 可視化數據
plt.scatter(X[:,0],X[:,1], s=40, c=y, cmap=plt.cm.Spectral)
我們可以看到上面的數據分佈實在是太工整了,通常我們會加上noise參數,讓數據的分佈沒有那麼工整。
### 生成數據
X,y = datasets.make_moons(200, noise=0.20)
### 可視化數據
plt.scatter(X[:,0],X[:,1], s=40, c=y, cmap=plt.cm.Spectral)
2. datasets.make_circles()該函數會生成一個大圓,然後裏面包含一個小圓。
具體的參數大家可以點擊數據集的鏈接,參考官方文檔。生成的圖形如下圖所示:
X,y = datasets.make_circles(1000)
plt.scatter(X[:,0],X[:,1], s=40, c=y,cmap=plt.cm.Spectral)
和上面的數據集一樣,爲了讓數據的分佈沒有那麼工整,通常我們會加上noise參數。同時,會加上factor參數,用於控制大圓和小圓之間的間隔。
X,y = datasets.make_circles(1000, noise=0.03, factor=0.5)
plt.scatter(X[:,0],X[:,1], s=40, c=y,cmap=plt.cm.Spectral)
API鏈接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets