- 該庫最早由數據科學家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]
決策樹
迴歸算法