Successfully reported this slideshow.
Your SlideShare is downloading. ×

Sklearn basic - v01

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 34 Ad
Advertisement

More Related Content

Similar to Sklearn basic - v01 (20)

Advertisement
Advertisement

Sklearn basic - v01

  1. 1. sklearn: Scikit-learn Benson
  2. 2. sklearn: Scikit-learn ★屬 Python 在機器學習中最知名的套件 ★提供分類(classification),回歸(regression),聚類(clustering) 數據降維(dimensionality reduction),模型選擇和數據預處理等功能 ★分類(classification)和回歸(regression)屬監督式學習 (Supervised Learning) ★聚類(clustering)和數據降維(dimensionality reduction),屬非監 督式學習(UnSupervised Learning) ★不支援深度學習和 GPU 加速
  3. 3. sklearn: Scikit-learn (一)安裝 sklearn (二)分類(Classification) (二)分類-邏輯回歸(Logistic Regression) (二)分類-K 近鄰算法(K-NN, K-Nearest Neighbors) (二)分類-支持向量機(SVM, Support Vector Machine) (二)分類-內核 SVM(Kernel SVM) (二)分類-樸素貝葉斯(Native Bayes) (二)分類-決策樹分類(Decision Tree Classification) (二)分類-隨機森林分類(Random Forest Classification)
  4. 4. sklearn: Scikit-learn (三)回歸(Regression) (三)回歸-簡單線性回歸(Simple Linear Regression) (三)回歸-多元線性回歸(Multiple Linear Regression) (三)回歸-多項式回歸(Polynomial Regression) (四)聚類(Clustering) (四)聚類-K 平均聚類(K-Means) (四)聚類-均值轉移聚類(Mean-shift) (四)聚類-密度的聚類方法(DBSCAN)
  5. 5. sklearn: Scikit-learn (四)聚類-高斯混合模型(GMM)的最大期望(EM)聚類 (四)聚類-凝聚層次聚類(AgglomerativeClustering) (五)數據降維(Dimensionality Reduction) (五)數據降維-主成分分析(PCA) (五)數據降維-核函數主成分分析(Kernel PCA)
  6. 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
  7. 7. sklearn: Scikit-learn (二)分類(Classification) ★介紹常用的分類方法,例如: 邏輯回歸(Logistic Regression) K 近鄰算法(K-NN, K-Nearest Neighbors) 支持向量機(SVM, Support Vector Machine) 內核 SVM(Kernel SVM) 樸素貝葉斯(Native Bayes) 決策樹分類(Decision Tree Classification) 隨機森林分類(Random Forest Classification)
  8. 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. 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. 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. 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')
  12. 12. sklearn: Scikit-learn #2.3)poly:多項式核函數 KSVC_model = SVC(kernel = 'poly') #2.4)sigmoid:sigmod 核函數 KSVC_model = SVC(kernel = 'sigmoid') #3)依據輸入和輸出的數據來訓練模型 KSVC_model.fit(X_train, y_train) #4)訓練數據的預測值 y_pred = KSVC_model.predict(X_test)
  13. 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)
  14. 14. sklearn: Scikit-learn #1)導入多項式樸素貝葉斯(MultinomialNB) from sklearn.naive_bayes import MultinomialNB #2)創建多項式樸素貝葉斯模型 MultinomialNB_model = MultinomialNB() #3)依據輸入和輸出的數據來訓練模型 MultinomialNB_model.fit(X_train, y_train) #4)訓練數據的預測值 y_pred = MultinomialNB_model.predict(X_test)
  15. 15. sklearn: Scikit-learn #1)導入伯努利樸素貝葉斯(BernoulliNB) from sklearn.naive_bayes import BernoulliNB #2)創建伯努利樸素貝葉斯模型 BernoulliNB_model = BernoulliNB() #3)依據輸入和輸出的數據來訓練模型 BernoulliNB_model.fit(X_train, y_train) #4)訓練數據的預測值 y_pred = BernoulliNB_model.predict(X_test)
  16. 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. 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)
  18. 18. sklearn: Scikit-learn (三)回歸(Regression) ★介紹常用的分類方法,例如: 簡單線性回歸(Simple Linear Regression) 多元線性回歸(Multiple Linear Regression) 多項式回歸(Polynomial Regression)
  19. 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. 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. 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)
  22. 22. sklearn: Scikit-learn #4)創建線性回歸模型 Linear_Poly_model = LinearRegression() #5)依據轉換後的輸入和輸出的數據來訓練模型 Linear_Poly_model.fit(X_Poly_reg, y_train) #6)訓練數據的預測值 y_pred = Linear_Poly_model.predict(X_test)
  23. 23. sklearn: Scikit-learn (四)聚類(Clustering) ★介紹常用的分類方法,例如: K 平均聚類(K-Means) 均值轉移聚類(Mean-shift) 密度的聚類方法(DBSCAN) 高斯混合模型(GMM)的最大期望(EM)聚類 凝聚層次聚類(AgglomerativeClustering)
  24. 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. 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. 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. 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. 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)
  29. 29. sklearn: Scikit-learn (五)數據降維(Dimensionality Reduction) ★介紹常用的分類方法,例如: 主成分分析(PCA, Principal component analysis) 核函數主成分分析(Kernel PCA, Principal component analysis)
  30. 30. sklearn: Scikit-learn (五)數據降維-主成分分析(PCA) ★使用 sklearn.decomposition 中的 PCA 去建構模型.其中, n_components = n 參數為保留多少數量的組件,並用 fit 方法基於訓練的輸 入(X_train)來調整模型.最後,透過兩個重要的 PCA 參數來確認各組件的重要 程度,1)explained_variance: 降維後的各成分的標準差,其值越大,則表 示其成分越重要. 2)explained_variance_ratio: 降維後的各成分的標準 差佔總標準差值的比例,其值越大,則表示其成分越重要.步驟如下:
  31. 31. sklearn: Scikit-learn #1)導入主成分分析(PCA) from sklearn.decomposition import PCA #2)保留 n 組組件 pca_components = PCA(n_components=3) #3)依據輸入和輸出的數據來訓練模型 pca_components.fit(X_train) #4)降維後的各成分的標準差 print(pca_components.explained_variance) #5)降維後的各成分的標準差佔總標準差值的比例 print(pca_components.explained_variance_ratio)
  32. 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. 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)
  34. 34. sklearn: Scikit-learn Reference: https://scikit-learn.org/

×