Weitere ähnliche Inhalte
Ähnlich wie Sklearn basic - v01 (20)
Mehr von ssuser5e7722 (6)
Sklearn basic - v01
- 2. sklearn: Scikit-learn
★屬 Python 在機器學習中最知名的套件
★提供分類(classification),回歸(regression),聚類(clustering)
數據降維(dimensionality reduction),模型選擇和數據預處理等功能
★分類(classification)和回歸(regression)屬監督式學習
(Supervised Learning)
★聚類(clustering)和數據降維(dimensionality reduction),屬非監
督式學習(UnSupervised Learning)
★不支援深度學習和 GPU 加速
- 6. sklearn: Scikit-learn
(一)安裝 sklearn
★使用 pip3 安裝 sklearn 套件
(base) C:Usersbenson>pip3 install scikit-learn
Downloading
https://files.pythonhosted.org/packages/c1/1c/8fa5aefe23a2
fc254e9faadc10a30052c63d92f05fb59127ff0e65e4171c/scikit_le
arn-0.20.2-cp36-cp36m-win_amd64.whl (4.8MB)
100% |█████████████████████████████
███| 4.8MB 292kB/s
Requirement already satisfied: scipy>=0.13.3 in
c:usersbensonanaconda3libsite-packages (from
scikit-learn) (1.0.0)
Requirement already satisfied: numpy>=1.8.2 in
c:usersbensonanaconda3libsite-packages (from
scikit-learn) (1.16.1)
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.20.2
- 8. sklearn: Scikit-learn
(二)分類-邏輯回歸(Logistic Regression)
★使用 sklearn.linear_model 中的 LogisticRegression 去建構模型,
並用fit方法基於要訓練的輸入(X_train)和輸出的數據(y_train)來擬合出
訓練模型,以及 predict 方法來預測所提供數據的 class labels.步驟如下:
#1)導入邏輯回歸 LogisticRegression
from sklearn.linear_model import LogisticRegression
#2)創建邏輯回歸模型
LogisticRegression_model = LogisticRegression()
#3)依據輸入和輸出的數據來訓練模型
LogisticRegression_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = LogisticRegression_model.predict(X_test)
- 9. sklearn: Scikit-learn
(二)分類-K 近鄰算法(K-NN, K-Nearest Neighbors)
★使用 sklearn.neighbors 中的 KNeighborsClassifier 去建構模型,並
用fit方法將輸入(X_train)數據作為訓練數據並以輸出(y_train)數據作為
目標值來擬合模型,以及 predict 方法來預測所提供數據的 class labels.
步驟如下:
#1)導入 K 近鄰算法(K-NN)
from sklearn.neighbors import KNeighborsClassifier
#2)創建 K 近鄰算法模型
KNN_model = KNeighborsClassifier()
#3)依據輸入和輸出的數據來訓練模型
KNN_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = KNN_model.predict(X_test)
- 10. sklearn: Scikit-learn
(二)分類-支持向量機(SVM, Support Vector Machine)
★使用 sklearn.svm 中的 SVC 去建構模型,並用 fit 方法基於要訓練的輸入
(X_train)和輸出的數據(y_train)來擬合出 SVM 模型,以及 predict 方法
對輸入樣本進行分類.步驟如下:
#1)導入支持向量機(SVM)
from sklearn.svm import SVC
#2)創建支持向量機(SVM)模型
SVC_model = SVC()
#3)依據輸入和輸出的數據來訓練模型
SVC_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = SVC_model.predict(X_test)
- 11. sklearn: Scikit-learn
(二)分類-內核 SVM(Kernel SVM)
★使用 sklearn.svm 中的 SVC 去建構模型.其中,可選擇欲使用的核函數.並用
fit 方法基於要訓練的輸入(X_train)和輸出的數據(y_train)來擬合出
Kernel SVM 模型,以及 predict 方法對輸入樣本進行分類.步驟如下:
#1)導入內核支持向量機(Kernel SVM)
from sklearn.svm import SVC
#2)提供四種內核(default: rbf),可供創建 Kernel SVM 模型使用
#2.1)rbf:徑向核函數/高斯核
KSVC_model = SVC(kernel = 'rbf')
#2.2)linear:線性核函數
KSVC_model = SVC(kernel = 'linear')
- 13. sklearn: Scikit-learn
(二)分類-樸素貝葉斯(Native Bayes)
★有三個常用的 Native Bayes 方法,可以使用 sklearn.naive_bayes 中的
高斯樸素貝葉斯(GaussianNB),多項式樸素貝葉斯(MultinomialNB),和
伯努利樸素貝葉斯(BernoulliNB)去建構模型,並用 fit 方法基於要訓練的輸
入(X_train)和輸出的數據(y_train)來擬合出樸素貝葉斯,以及predict方
法來預測所訓練出來的結果.步驟如下:
#1)導入高斯樸素貝葉斯(GaussianNB)
from sklearn.naive_bayes import GaussianNB
#2)創建高斯樸素貝葉斯模型
GaussianNB_model = GaussianNB()
#3)依據輸入和輸出的數據來訓練模型
GaussianNB_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = GaussianNB_model.predict(X_test)
- 16. sklearn: Scikit-learn
(二)分類-決策樹分類(Decision Tree Classification)
★使用 sklearn.tree 中的 DecisionTreeClassifier 去建構模型,並用
fit 方法基於要訓練的輸入(X_train)和輸出的數據(y_train)來建構決策樹
分類器,以及 predict 方法來預測所訓練出來的結果.步驟如下:
#1)導入決策樹分類(Decision Tree Classification)
from sklearn.tree import DecisionTreeClassifier
#2)創建決策樹分類模型
DecisionTreeClassifier_model = DecisionTreeClassifier()
#3)依據輸入和輸出的數據來訓練模型
DecisionTreeClassifier_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = DecisionTreeClassifier_model.predict(X_test)
- 17. sklearn: Scikit-learn
(二)分類-隨機森林分類(Random Forest Classification)
★使用 sklearn.ensemble 中的 RandomForestClassifier 去建構模型,
並用fit方法基於要訓練的輸入(X_train)和輸出的數據(y_train)來建立一
片樹林,以及 predict 方法來預測所訓練出來的結果.步驟如下:
#1)導入隨機森林分類(Random Forest Classification)
from sklearn.ensemble import RandomForestClassifier
#2)創建隨機森林分類模型
RandomForestClassifier_model = RandomForestClassifier()
#3)依據輸入和輸出的數據來訓練模型
RandomForestClassifier_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = RandomForestClassifier_model.predict(X_test)
- 19. sklearn: Scikit-learn
(三)回歸-簡單線性回歸(Simple Linear Regression)
★使用 sklearn.linear_model 中的 LinearRegression 去建構模型,並用
fit 方法擬合要訓練的輸入(X_train)和輸出的數據(y_train)來建構成線性
模型,以及 predict 方法來預測經由此線性模型所訓練出來的結果.步驟如下:
#1)導入簡單線性回歸(Simple Linear Regression)
from sklearn.linear_model import LinearRegression
#2)創建簡單線性回歸模型
LinearRegression_model = LinearRegression()
#3)依據輸入和輸出的數據來訓練模型
LinearRegression_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = LinearRegression_model.predict(X_test)
- 20. sklearn: Scikit-learn
(三)回歸-多元線性回歸(Multiple Linear Regression)
★與簡單線性回歸一樣,都是使用 sklearn.linear_model 中的
LinearRegression 去建構模型.差異在於簡單線性回歸是 1 個自變量對應 1
個因變量,而多元線性回歸是多個自變量對應 1 個因變量.步驟如下:
#1)導入多元線性回歸(Multiple Linear Regression)
from sklearn.linear_model import LinearRegression
#2)創建多元線性回歸模型
LinearRegression_model = LinearRegression()
#3)依據輸入和輸出的數據來訓練模型
LinearRegression_model.fit(X_train, y_train)
#4)訓練數據的預測值
y_pred = LinearRegression_model.predict(X_test)
- 21. sklearn: Scikit-learn
(三)回歸-多項式回歸(Polynomial Regression)
★先導入 sklearn.preprocessing 中的 PolynomialFeatures,並用
fit_transform 方法對要訓練輸入(X_train)的數據作擬合並作轉換.再進
一步使用 LinearRegression 去建構模型,並用 fit 方法擬合經過轉換訓練的
輸入(X_Poly_reg)和輸出的數據(y_train)來建構成線性模型,以及
predict 方法來預測經由此線性模型所訓練出來的結果.步驟如下:
#1)導入簡單線性回歸(Simple Linear Regression)
from sklearn.linear_model import LinearRegression
#2)導入多項式回歸(Polynomial Regression)
from sklearn.preprocessing import PolynomialFeatures
#3)轉換要訓練的輸入數據
Poly_reg = PolynomialFeatures()
X_Poly_reg = Poly_reg.fit_transform(X_train)
- 24. sklearn: Scikit-learn
(四)聚類-K 平均聚類(K-Means)
★使用 sklearn.cluster 中的 KMeans 去建構分群,並用 fit 方法來計算要
輸入(X_train)的 K 平均值聚類,fit_predict 方法來計算聚類中心並預測
每個輸入樣本的聚類索引,以及 predict 方法來預測輸入的樣本是屬於哪一個
最近的集群.步驟如下:
#1)導入 K 平均聚類(K-Means)
from sklearn.cluster import KMeans
#2)創建 K 平均聚類模型
KMeans_model = KMeans()
#3)依據輸入和輸出的數據來訓練模型
KMeans_model.fit(X_train)
#4)訓練數據的預測值
y_kmeans = KMeans_model.fit_predict(X_train)
- 25. sklearn: Scikit-learn
(四)聚類-均值轉移聚類(Mean-shift)
★使用 sklearn.cluster 中的 MeanShift 去建構分群,並用 fit 方法來執行
群集,以及 fit_predict 方法在每個輸入的樣本執行群集並返回群集標籤.步
驟如下:
#1)導入密度的聚類方法(MeanShift)
from sklearn.cluster import MeanShift
#2)創建密度的聚類模型
MeanShift_model = MeanShift()
#3)執行群集
MeanShift_model.fit(X_train)
#4)返回執行後的群集標籤
y_meanshift = MeanShift_model.fit_predict(X_train)
- 26. sklearn: Scikit-learn
(四)聚類-密度的聚類方法(DBSCAN)
★使用 sklearn.cluster 中的 DBSCAN 去建構分群,並用 fit 方法來依特徵
或距離矩陣執行 DBSCAN 聚類,以及 fit_predict 方法在每個輸入的樣本執行
群集並返回群集標籤.步驟如下:
#1)導入密度的聚類方法(DBSCAN)
from sklearn.cluster import DBSCAN
#2)創建密度的聚類模型
DBSCN_model = DBSCAN()
#3)依據特徵或距離矩陣執行 DBSCAN 聚類
DBSCN_model.fit(X_train)
#4)返回執行後的群集標籤
y_dbscan = DBSCN_model.fit_predict(X_train)
- 27. sklearn: Scikit-learn
(四)聚類-高斯混合模型(GMM)的最大期望(EM)聚類
★使用 sklearn. mixture 中的 GaussianMixture 去建構分群,並用 fit 方
法依據 EM 算法估算模型參數,來依特徵或距離矩陣執行 DBSCAN 聚類,以及
predict 方法依據所訓練模型來預測每個輸入的樣本的標籤.步驟如下:
#1)導入密度的聚類方法(DBSCAN)
from sklearn. mixture import GaussianMixture
#2)創建密度的聚類模型
GM_model = GaussianMixture ()
#3)依據 EM 算法估算 GaussianMixture 聚類
GM_model.fit(X_train)
#4)返回執行後的群集標籤
y_gm = GM_model.predict(X_train)
- 28. sklearn: Scikit-learn
(四)聚類-凝聚層次聚類(AgglomerativeClustering)
★使用 sklearn.cluster 中的 AgglomerativeClustering 去建構分群,
並用 fit 方法將訓練數據作分層聚類,以及 fit_predict 方法依據所訓練模型
來預測每個輸入的樣本的標籤.步驟如下:
#1)導入凝聚層次聚類(AgglomerativeClustering)
from sklearn.cluster import AgglomerativeClustering
#2)創建密度的聚類模型
AG_model = AgglomerativeClustering()
#3)依據 EM 算法估算 GaussianMixture 聚類
AG_model.fit(X_train)
#4)返回執行後的群集標籤
y_ag = AG_model.fit_predict(X_train)
- 32. sklearn: Scikit-learn
(五)數據降維-核函數主成分分析(Kernel PCA)
★使用 sklearn.decomposition 中的 KernelPCA 去建構模型.其中,
n_components = n 參數為保留多少數量的組件, kernel = ''參數為選擇
哪一個核心 function 去計算,包含:線性(linear),多項式(poly),徑向基
(rbf),sigmoid(sigmoid), 餘弦(cosine),和預先計算(precomputed).
並用 fit 方法基於訓練的輸入(X_train)來調整模型.最後,透過兩個重要的
PCA 參數來確認各組件的重要程度,1)explained_variance: 降維後的各成
分的標準差,其值越大,則表示其成分越重要.
2)explained_variance_ratio: 降維後的各成分的標準差佔總標準差值的
比例,其值越大,則表示其成分越重要.步驟如下:
- 33. sklearn: Scikit-learn
#1)導入核函數主成分分析(Kernel PCA)
from sklearn.decomposition import KernelPCA
#2)保留 n 組組件
kpca_components = KernelPCA(n_components=3)
#3)依據輸入和輸出的數據來訓練模型
kpca_components.fit(X_train)
#4)導入 NumPy 套件來計算 KPCA 的標準差
from sklearn.numpyn import np
#5)降維後的各成分的標準差
explained_variance = np.var(X_train, axis=0)
#6)降維後的各成分的標準差佔總標準差值的比例
explained_variance_ratio = explained_variance /
np.sum(explained_variance)