Scikit-Learn庫概述

  • 該庫最早由數據科學家David Cournapeau在2007年發起,使用需要Numpy和Scipy等其他庫的支持,是Python中專門針對機器學習應用而發展起來的一款開源擴展庫
  • 和其他開源項目一樣,該庫主要由社區成員自發進行維護
  • scikit-learn與其他開源項目相比顯得更爲保守:一是scikit-learn從來不做除機器學習領域之外的其他擴展,而是scikit-learn從來不採用未經廣泛驗證的算法

https://scikit-learn.org/stable/index.html

Scikit-Learn庫數據集

在機器學習中,經常需要使用各種各樣的數據集,Scikit-Learn庫提供了一些常用的數據集

序號 數據集名稱 調用數據集 數據描述
1 鳶尾花數據集 Load_iris() 用於多分類任務的數據集
2 波士頓房價數據集 Load_boston() 用於迴歸任務的經典數據集
3 糖尿病數據集 Load_diabetes() 用於迴歸任務的經典數據集
4 毛寫數字數據集 Load_digits() 用於多分類任務的數據集
5 乳腺癌數據集 Load_breast_cancer() 經典的用於二分類任務的數據集
6 體能訓練數據集 Load_linnerud() 經典的用於多變量回歸任務的數據集

 

Scikit-Learn庫功能 

分類:

分類是指識別給定對象的所屬類別,屬於檢測學習的範疇,最常見的應用場景包括垃圾郵件檢測和圖像識別等

目前Scikit-learn已經實現的算法包括:支持向量機(SVM),最近鄰、邏輯迴歸、隨機森林、決策樹以及多層感知器(MLP)神經網絡等

迴歸:

迴歸是指預測與給定對象相關聯的連續值屬性,最常用的應用場景包括預測藥物反應和預測股票價格等

目前Scikit-Learn已經實現的算法包括:支持向量迴歸(SVR),脊迴歸,Lasso迴歸,彈性網絡(ElasticNet),最小角迴歸(LARS),貝葉斯迴歸,以及各種不同的魯棒迴歸算法等

聚類:

聚類是指自動識別具有相似屬性的給定對象,並將其分組爲集合,數據無監督學習範疇

最常見的應用場景包括顧客細分和實驗結果分組。

目前Scikit-Learn已經實現的算法包括:K-均值聚類、譜聚類、均值偏移、分層聚類、DBSCAN聚類等

數據降維:

數據降維是指使用主成分分析(PCA),非矩陣分解(NMF)或特徵選擇等降維技術來減少要考慮的隨機變量的個數,其主要應用場景包括可視化處理和效率提升

模型選擇:

模型選擇是指對於給定參數和模型的比較、驗證和選擇,其主要目的是通過參數調整來提升精度。

目前Scikit-Learn實現的模塊包括:格點搜索、交叉驗證和各種針對預測誤差評估的度量函數

數據預處理:

數據預處理是指數據的特徵提取和歸一化,是機器學習過程中的第一個也是最重要的一個環節

歸一化是指將輸入數據轉化爲具有零均值(中心化)和單位權方差的新變量,但因爲大多數時候都做不到精確等於零,因此會設置一個可接受的範圍,一般都要求落在0-1之間

特徵提取是指將文本或圖像數據轉換爲可用於機器學習的數據變量

Scikit-Learn庫分類算法

K近鄰分類器(KNN)

 

 

from sklearn.neighbors import KNeighborsClassifier
#創建一組數據X和它對應的標籤y
X=[[0],[1],[2],[3],[4],[5]]
y=[0,0,0,1,1,1]
#使用最近的3個鄰居作爲分類的依據,得到分類器
neigh=KNeighborsClassifier(n_neighbors=3)
#將訓練數據X和標籤y送入分類器進行學習
neigh.fit(X,y)
#調用predict()函數,對未知分類樣本[1.1]分類,可以直接並將
#需要分類的數據構造爲數組形式作爲參數傳入,得到分類標籤作爲返回值
print(neigh.predict([[1.4]]))
print(neigh.predict([[2.4]]))
print(neigh.predict([[2.5]]))
print(neigh.predict([[2.6]]))
輸出:
[0]
[0]
[0]
[1]

決策樹

 

 迴歸算法

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章