1. 程式人生 > >python機器學習(1)python.sklearn庫

python機器學習(1)python.sklearn庫

1.安裝numpy、scipy、matplotlib、sklearn庫

安裝方法:
(1).whl檔案 下載地址:http://www.lfd.uci.edu/~gohlke/pythonlibs
(2)在下載路徑下開啟dos命令列依次執行
PS:35指python版本3.5、 amd64指64位處理器

pip install "numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl"
pip install scipy-0.19.0-cp35-cp35m-win_amd64.whl
pip install matplotlib-2.0.0-cp35-cp35m
-win_amd64.whl pip install scikit_learn-0.18.1-cp35-cp35m-win_amd64.whl

2.測試安裝

import numpy
import scipy
import matplotlib
import sklearn

3.資料集

(1)小資料集
波士頓房價資料集 load_boston() 迴歸 506*13
鳶尾花資料集 load_iris() 分類 150*4
糖尿病資料集 load_diabetes() 迴歸 442*10
手寫數字資料集 load_digits() 分類 5620*64
(2)大資料集
Olivetti 臉部影象資料集 fetch_olivetti_faces() 降維 400*64*64
新聞分類資料集 fetch_20newsgroups() 分類 -
帶標籤的人臉資料集 fetch_lfw_people() 分類;降維 -
路透社新聞語料資料集 fetch_rcv1() 分類 804414*47236

4.資料集處理

(1)載入資料集

>>> from sklearn.datasets import load_boston
>>> boston = load_boston()
>>> print(boston.data.shape)

其重要引數為:
• return_X_y:表示是否返回target(即價格),預設為False,
只返回data(即屬性)

>>> from sklearn.datasets import load_boston
>>> data, target = load_boston(return_X_y=True
) >>>> print(data.shape) (506, 13) >>> print(target.shape) (506)

5.主要任務

(1)分類任務
分類模型 載入模組
最近鄰演算法 neighbors.NearestNeighbors
支援向量機 svm.SVC
樸素貝葉斯 naive_bayes.GaussianNB
決策樹 tree.DecisionTreeClassifier
整合方法 ensemble.BaggingClassifier
神經網路 neural_network.MLPClassifier
(2)迴歸任務
迴歸任務
迴歸模型 載入模組
嶺迴歸 linear_model.Ridge
Lasso迴歸 linear_model.Lasso
彈性網路 linear_model.ElasticNet
最小角迴歸 linear_model.Lars
貝葉斯迴歸 linear_model.BayesianRidge
邏輯迴歸 linear_model.LogisticRegression
多項式迴歸 preprocessing. PolynomialFeatures
(3)聚類任務
聚類方法 載入模組
K-means cluster.KMeans
AP聚類 cluster.AffinityPropagation
均值漂移 cluster.MeanShift
層次聚類 cluster.AgglomerativeClustering
DBSCAN cluster.DBSCAN
BIRCH cluster.Birch
譜聚類 cluster.SpectralClustering

6.無監督學習

(1)定義
利用無標籤的資料學習資料的分佈或資料與資料之間的關係被稱作無監
督學習。
• 有監督學習和無監督學習的最大區別在於資料是否有標籤
• 無監督學習最常應用的場景是聚類(clustering)和降維(Dimension
Reduction)
(2)聚類
聚類(clustering),就是根據資料的“相似性”將資料分為多類的過程。
評估兩個不同樣本之間的“相似性” ,通常使用的方法就是計算兩個樣本之間的“距離”。使用不同的方法計算樣本間的距離會關係到聚類
結果的好壞。

①歐氏距離:歐氏距離是最常用的一種距離度量方法,源於歐式空間中兩點的距離。
②曼哈頓距離:曼哈頓距離也稱作“城市街區距離”,類似於在城市之中駕車行駛,從一個十字路口到另外一個十字樓口的距離。
③馬氏距離:馬氏距離表示資料的協方差距離,是一種尺度無關的度量方式。也就是說馬氏距離會先將樣本點的各個屬性標準化,再計算樣本間的距離。
④夾角餘弦:餘弦相似度用向量空間中兩個向量夾角的餘弦值作為衡量兩個樣本差異的大小。餘弦值越接近1,說明兩個向量夾角越接近0度,表明兩個向量越相似。

.

PS:Sklearn vs. 聚類
 scikit-learn庫(以後簡稱sklearn庫)提供的常用聚類演算法函式包含在> sklearn.cluster這個模組中,如:K-Means,近鄰傳播演算法,DBSCAN等。
> 以同樣的資料集應用於不同的演算法,可能會得到不同的結果,演算法所耗費的時間也不盡相同,這是由演算法的特性決定的。

.

sklearn.cluster sklearn.cluster模組提供的各聚類演算法函式可以使用不同的資料形式作為 輸入:

標準資料輸入格式:[樣本個數,特徵個數]定義的矩陣形式。

相似性矩陣輸入格式:即由[樣本數目,樣本數目]定義的矩陣形式,矩陣中> 的每一個元素為兩個樣本的相似度,如DBSCAN, AffinityPropagation(近鄰傳> 播演算法)接受這種輸入。如果以餘弦相似度為例,則對角線元素全為1. 矩陣中每 個元素的取值範圍為[0,1]。

.
(3)降維:
①定義
就是在保證資料所具有的代表性特性或者分佈的情況下,將高維資料轉化為低維資料的過程:
 資料的視覺化
 精簡資料
②分類

演算法名稱 引數 可擴充套件性 適用任務
PCA 所降維度及其他 超參 大規模資料
訊號處理等 FastICA 所降維度及其他 超參 超大規模資料 圖形影象特徵提取 NMF 所降維度及其他 超參 大規模資料 圖形影象特徵提取
LDA 所降維度及其他 超參 大規模資料 文字資料,主題挖掘

(4)聚類與降維
聚類和降維都是無監督學習的典型任務,任務之間存在關聯,比如某些
高維資料的聚類可以通過降維處理更好的獲得,另外學界研究也表明代表性的聚類演算法如k-means與降維演算法如NMF之間存在等價性。