sklearn中的datasets數據集


sklearn中的datasets數據集

​ sklearn的數據集庫datasets提供很多不同的數據集,主要包含以下幾大類:

    1. 玩具數據集
    2. 真實世界中的數據集
    3. 樣本生成器
    4. 樣本圖片
    5. svmlight或libsvm格式的數據
    6. 下載的數據
    7. 從外部加載的數據
      用的比較多的就是1和3,這里進行主要介紹,其他的會進行簡單介紹,但是不建議使用。

  sklearn.datasets模塊主要提供了一些導入、在線下載及本地生成數據集的方法,可以通過dir或help命令查看,目前主要有三種形式:

  • load_<dataset_name> 本地加載數據
  • fetch_<dataset_name> 遠程加載數據
  • make_<dataset_name> 構造數據集

 玩具數據集

​ scikit-learn 內置有一些小型標准數據集,不需要從某個外部網站下載任何文件,用datasets.load_xx()加載。

(一) 波士頓房價

​ 統計了波士頓506處房屋的13種不同特征( 包含城鎮犯罪率、一氧化氮濃度、住宅平均房間數、到中心區域的加權距離以及自住房平均房價等 )以及房屋的價格,適用於回歸任務。

from sklearn import datasets  # 導入庫

boston = datasets.load_boston()  # 導入波士頓房價數據
print(boston.keys())  # 查看鍵(屬性)     ['data','target','feature_names','DESCR', 'filename'] 
print(boston.data.shape,boston.target.shape)  # 查看數據的形狀 (506, 13) (506,)
print(boston.feature_names)  # 查看有哪些特征 這里共13種
print(boston.DESCR)  # described 描述這個數據集的信息 
print(boston.filename)  # 文件路徑 

  

from sklearn import datasets # 導入庫 
boston_X,boston_y = datasets.load_boston(return_X_y=True) # 導入波士頓房價數據 X,Y 分別輸出 
data = boston['data'] # 數據
label = boston['target'] # 數據對應的標簽
feature = boston['feature_names'] # 特征的名稱
df = pd.DataFrame(np.column_stack((data,label)),columns = np.append(feature,'label'))
df.head()# 查看前五行數據 

 

 

 

(二) 鳶尾花

​ 這個數據集包含了150個鳶尾花樣本,對應3種鳶尾花,各50個樣本,以及它們各自對應的4種關於花外形的數據 ,適用於分類任務。

 

from sklearn import datasets  # 導入庫

iris = datasets.load_iris()  # 導入鳶尾花數據
print(iris.data.shape,iris.target.shape)  
print(iris.feature_names) 
print(iris.keys())

data=iris['data']
feature=iris['feature_names']
label=iris['target']
df = pd.DataFrame(np.column_stack((data,label)),columns = np.append(feature,'label'))
df.head()# 查看前五行數據 

​ 其他數據集大同小異,節省大家時間,下面只做簡單介紹。

(三) 糖尿病

​ 主要包括442個實例,每個實例10個屬性值,分別是:Age(年齡)、性別(Sex)、Body mass index(體質指數)、Average Blood Pressure(平均血壓)、S1~S6一年后疾病級數指標,Target為一年后患疾病的定量指標, 適用於回歸任務。

from sklearn import datasets  # 導入庫

diabetes = datasets.load_diabetes()  # 導入糖尿病數據

(四) 手寫數字

​ 共有1797個樣本,每個樣本有64的元素,對應到一個8x8像素點組成的矩陣,每一個值是其灰度值, target值是0-9,適用於分類任務。

from sklearn import datasets  # 導入庫

digits = datasets.load_digits()  # 導入手寫數字數據

(五) 體能訓練

​ 蘭納胡德提供的體能訓練數據,data和target都是20x3,data的特征包括Chins, Situps and Jumps.(引體向上 仰卧起坐 跳躍),target的三維分別是Weight, Waist and Pulse.(體重 腰圍 脈搏),適用於回歸問題,用的少。

(六) 紅酒

​ 共178個樣本,代表了紅酒的三個檔次(分別有59,71,48個樣本),以及與之對應的13維的屬性數據,適用於分類任務。

from sklearn import datasets  # 導入庫

wine = datasets.load_wine()  # 導入紅酒數據

(七) 威斯康辛州乳腺癌

​ 包含了威斯康辛州記錄的569個病人的乳腺癌惡性/良性(1/0)類別型數據,以及與之對應的30個維度的生理指標數據,適用於二分類問題。

from sklearn import datasets  # 導入庫

cancer = datasets.load_breast_cancer()  # 導入乳腺癌數據

 

真實世界中的數據集

​ scikit-learn 提供加載較大數據集的工具,並在必要時可以在線下載這些數據集,用datasets.fetch_xx()加載。

調用描述fetch_olivetti_faces()Olivetti 臉部圖片數據集fetch_20newsgroups()用於文本分類、文本挖據和信息檢索研究的國際標准數據集之一。數據集收集了大約20,000左右的新聞組文檔,均勻分為20個不同主題的新聞組集合。返回一個可以被文本特征提取器fetch_20newsgroups_vectorized()這是上面這個文本數據的向量化后的數據,返回一個已提取特征的文本序列,即不需要使用特征提取器fetch_lfw_people()打好標簽的人臉數據集fetch_lfw_pairs()該任務稱為人臉驗證:給定一對兩張圖片,二分類器必須預測這兩個圖片是否來自同一個人fetch_covtype()森林植被類型,總計581012個樣本,每個樣本由54個維度表示(12個屬性,其中2個分別是onehot4維和onehot40維),以及target表示植被類型1-7,所有屬性值均為number,詳情可調用fetch_covtype()['DESCR']了解每個屬性的具體含義fetch_rcv1()路透社新聞語料數據集fetch_kddcup99()KDD競賽在1999年舉行時采用的數據集,KDD99數據集仍然是網絡入侵檢測領域的事實Benckmark,為基於計算智能的網絡入侵檢測研究奠定基礎,包含41項特征fetch_california_housing()加利福尼亞的房價數據,總計20640個樣本,每個樣本8個屬性表示,以及房價作為target,所有屬性值均為number,詳情可調用fetch_california_housing()['DESCR']了解每個屬性的具體含義fetch_species_distributions()物種分布數據集

樣本生成器

(一) 簇

from sklearn import datasets

centers = [[2,2],[8,2],[2,8],[8,8]]
x, y = datasets.make_blobs(n_samples=1000, n_features=2, centers=4,cluster_std=1)

n_samples:樣本數

n_features:特征數(維度)

centers:中心數,也可以是中心的坐標

cluster_std:簇的方差

(二) 同心圓

x, y = datasets.make_circles(n_samples=5000, noise=0.04, factor=0.7)

noise:噪聲

factor:內圓與外圓的距離 為1的時候最小

(三) 月牙

x, y = datasets.make_moons(n_samples=3000, noise=0.05)

(四) 分類

x, y =datasets.make_classification(n_classes=4, n_samples=1000, n_features=2, n_informative=2 , n_redundant=0, n_clusters_per_class=1,n_repeated=0, random_state=22)

n_classes:類的數目

n_informative:有效的特征數

n_redundant:冗余特征數 有效特征數的線性組合

n_repeated:有效特征數和冗余特征數的有效組合

n_informative + n_redundant + n_repeated < = n_features

n_clusters_per_class:每一類的簇數

n_classes * n_clusters_per_class <= 2**n_informative

 

  1. 構造數據集
    下面以make_regression()函數為例,首先看看函數語法:
    make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)
    參數說明:
  • n_samples:樣本數
  • n_features:特征數(自變量個數)
  • n_informative:相關特征(相關自變量個數)即參與了建模型的特征數
  • n_targets:因變量個數
  • bias:偏差(截距)
  • coef:是否輸出coef標識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM