SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
sklearn: Scikit-learn
Benson
sklearn: Scikit-learn
★屬 Python 在機器學習中最知名的套件
★提供分類(classification),回歸(regression),聚類(clustering)
數據降維(dimensionality reduction),模型選擇和數據預處理等功能
★分類(classification)和回歸(regression)屬監督式學習
(Supervised Learning)
★聚類(clustering)和數據降維(dimensionality reduction),屬非監
督式學習(UnSupervised Learning)
★不支援深度學習和 GPU 加速
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)
sklearn: Scikit-learn
(三)回歸(Regression)
(三)回歸-簡單線性回歸(Simple Linear Regression)
(三)回歸-多元線性回歸(Multiple Linear Regression)
(三)回歸-多項式回歸(Polynomial Regression)
(四)聚類(Clustering)
(四)聚類-K 平均聚類(K-Means)
(四)聚類-均值轉移聚類(Mean-shift)
(四)聚類-密度的聚類方法(DBSCAN)
sklearn: Scikit-learn
(四)聚類-高斯混合模型(GMM)的最大期望(EM)聚類
(四)聚類-凝聚層次聚類(AgglomerativeClustering)
(五)數據降維(Dimensionality Reduction)
(五)數據降維-主成分分析(PCA)
(五)數據降維-核函數主成分分析(Kernel PCA)
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
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)
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)
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)
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)
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')
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)
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)
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)
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)
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)
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)
sklearn: Scikit-learn
(三)回歸(Regression)
★介紹常用的分類方法,例如:
簡單線性回歸(Simple Linear Regression)
多元線性回歸(Multiple Linear Regression)
多項式回歸(Polynomial Regression)
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)
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)
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)
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)
sklearn: Scikit-learn
(四)聚類(Clustering)
★介紹常用的分類方法,例如:
K 平均聚類(K-Means)
均值轉移聚類(Mean-shift)
密度的聚類方法(DBSCAN)
高斯混合模型(GMM)的最大期望(EM)聚類
凝聚層次聚類(AgglomerativeClustering)
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)
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)
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)
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)
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)
sklearn: Scikit-learn
(五)數據降維(Dimensionality Reduction)
★介紹常用的分類方法,例如:
主成分分析(PCA, Principal component analysis)
核函數主成分分析(Kernel PCA, Principal component analysis)
sklearn: Scikit-learn
(五)數據降維-主成分分析(PCA)
★使用 sklearn.decomposition 中的 PCA 去建構模型.其中,
n_components = n 參數為保留多少數量的組件,並用 fit 方法基於訓練的輸
入(X_train)來調整模型.最後,透過兩個重要的 PCA 參數來確認各組件的重要
程度,1)explained_variance: 降維後的各成分的標準差,其值越大,則表
示其成分越重要. 2)explained_variance_ratio: 降維後的各成分的標準
差佔總標準差值的比例,其值越大,則表示其成分越重要.步驟如下:
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)
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: 降維後的各成分的標準差佔總標準差值的
比例,其值越大,則表示其成分越重要.步驟如下:
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)
sklearn: Scikit-learn
Reference:
https://scikit-learn.org/

Contenu connexe

Tendances

2017 9-12 Deep Learning / Tensorflow
2017 9-12 Deep Learning / Tensorflow2017 9-12 Deep Learning / Tensorflow
2017 9-12 Deep Learning / Tensorflow煒勛 賴
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Derek Lee
 
Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Derek Lee
 
Chapter 5 array and struct
Chapter 5 array and structChapter 5 array and struct
Chapter 5 array and structhhliu
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘Chen-Pan Liao
 
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習NTC.im(Notch Training Center)
 
COSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in JuliaCOSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in Julia岳華 杜
 
Python learn guide
Python learn guidePython learn guide
Python learn guiderobin yang
 
Num py basic(1) - v01
Num py   basic(1) - v01Num py   basic(1) - v01
Num py basic(1) - v01ssuser5e7722
 
Neural Turing Machine Tutorial
Neural Turing Machine TutorialNeural Turing Machine Tutorial
Neural Turing Machine TutorialMark Chang
 
第10章 综合应用设计(java版)
第10章  综合应用设计(java版)第10章  综合应用设计(java版)
第10章 综合应用设计(java版)Yan Li
 

Tendances (20)

Ch4 教學
Ch4 教學Ch4 教學
Ch4 教學
 
Ch5 範例
Ch5 範例Ch5 範例
Ch5 範例
 
Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
 
2017 9-12 Deep Learning / Tensorflow
2017 9-12 Deep Learning / Tensorflow2017 9-12 Deep Learning / Tensorflow
2017 9-12 Deep Learning / Tensorflow
 
Ch2 教學
Ch2 教學Ch2 教學
Ch2 教學
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備
 
Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18
 
Chapter 5 array and struct
Chapter 5 array and structChapter 5 array and struct
Chapter 5 array and struct
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘
 
Ch8 教學
Ch8 教學Ch8 教學
Ch8 教學
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
 
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
 
COSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in JuliaCOSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in Julia
 
Ch12 教學
Ch12 教學Ch12 教學
Ch12 教學
 
Ch9 範例
Ch9 範例Ch9 範例
Ch9 範例
 
Python learn guide
Python learn guidePython learn guide
Python learn guide
 
Num py basic(1) - v01
Num py   basic(1) - v01Num py   basic(1) - v01
Num py basic(1) - v01
 
Neural Turing Machine Tutorial
Neural Turing Machine TutorialNeural Turing Machine Tutorial
Neural Turing Machine Tutorial
 
Ch12
Ch12Ch12
Ch12
 
第10章 综合应用设计(java版)
第10章  综合应用设计(java版)第10章  综合应用设计(java版)
第10章 综合应用设计(java版)
 

Similaire à Sklearn basic - v01

Hands on data analysis 101
Hands on data analysis 101Hands on data analysis 101
Hands on data analysis 101FEG
 
Master Thesis 2010 - Pattern Discovery Algorithms for Classification
Master Thesis 2010 - Pattern Discovery Algorithms for ClassificationMaster Thesis 2010 - Pattern Discovery Algorithms for Classification
Master Thesis 2010 - Pattern Discovery Algorithms for ClassificationChuancong Gao
 
用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning家弘 周
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門Jhang Raymond
 
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)家雋 莊
 
Data mining 1
Data mining 1Data mining 1
Data mining 1Dori Ya
 
Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318FEG
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and DesignHo Kim
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)jhao niu
 
Hangzhou Deep Learning Meetup-Deep Reinforcement Learning
Hangzhou Deep Learning Meetup-Deep Reinforcement LearningHangzhou Deep Learning Meetup-Deep Reinforcement Learning
Hangzhou Deep Learning Meetup-Deep Reinforcement LearningXiaohu ZHU
 
Sci2中文指南
Sci2中文指南Sci2中文指南
Sci2中文指南cueb
 
探索性分析:分群與異常偵測 - 2020 - blog.pptx
探索性分析:分群與異常偵測 - 2020 - blog.pptx探索性分析:分群與異常偵測 - 2020 - blog.pptx
探索性分析:分群與異常偵測 - 2020 - blog.pptxYung-Ting Chen
 
Programming python - part 2
Programming python - part 2Programming python - part 2
Programming python - part 2Che-Cheng Hsu
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享Chong-Kuan Chen
 
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)Jian-Kai Wang
 
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務台灣資料科學年會
 
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Chun-Min Chang
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in RChun-Ming Chang
 

Similaire à Sklearn basic - v01 (20)

Hands on data analysis 101
Hands on data analysis 101Hands on data analysis 101
Hands on data analysis 101
 
Master Thesis 2010 - Pattern Discovery Algorithms for Classification
Master Thesis 2010 - Pattern Discovery Algorithms for ClassificationMaster Thesis 2010 - Pattern Discovery Algorithms for Classification
Master Thesis 2010 - Pattern Discovery Algorithms for Classification
 
用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門
 
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
 
Data mining 1
Data mining 1Data mining 1
Data mining 1
 
Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)
 
Hangzhou Deep Learning Meetup-Deep Reinforcement Learning
Hangzhou Deep Learning Meetup-Deep Reinforcement LearningHangzhou Deep Learning Meetup-Deep Reinforcement Learning
Hangzhou Deep Learning Meetup-Deep Reinforcement Learning
 
Sci2中文指南
Sci2中文指南Sci2中文指南
Sci2中文指南
 
探索性分析:分群與異常偵測 - 2020 - blog.pptx
探索性分析:分群與異常偵測 - 2020 - blog.pptx探索性分析:分群與異常偵測 - 2020 - blog.pptx
探索性分析:分群與異常偵測 - 2020 - blog.pptx
 
Programming python - part 2
Programming python - part 2Programming python - part 2
Programming python - part 2
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Jvm内存管理基础
Jvm内存管理基础Jvm内存管理基础
Jvm内存管理基础
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
 
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
 
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in R
 

Plus de ssuser5e7722

Wmi computer system hardware classes(2) - v01
Wmi computer system hardware classes(2) - v01Wmi computer system hardware classes(2) - v01
Wmi computer system hardware classes(2) - v01ssuser5e7722
 
Wmi computer system hardware classes(1) - v01
Wmi computer system hardware classes(1) - v01Wmi computer system hardware classes(1) - v01
Wmi computer system hardware classes(1) - v01ssuser5e7722
 
Linear regression vs polynomial regression v01
Linear regression vs polynomial regression v01Linear regression vs polynomial regression v01
Linear regression vs polynomial regression v01ssuser5e7722
 
Python - Matplotlib basic - v01
Python - Matplotlib basic - v01Python - Matplotlib basic - v01
Python - Matplotlib basic - v01ssuser5e7722
 
Python basic - v01
Python   basic - v01Python   basic - v01
Python basic - v01ssuser5e7722
 

Plus de ssuser5e7722 (6)

Wmi computer system hardware classes(2) - v01
Wmi computer system hardware classes(2) - v01Wmi computer system hardware classes(2) - v01
Wmi computer system hardware classes(2) - v01
 
Wmi computer system hardware classes(1) - v01
Wmi computer system hardware classes(1) - v01Wmi computer system hardware classes(1) - v01
Wmi computer system hardware classes(1) - v01
 
Linear regression vs polynomial regression v01
Linear regression vs polynomial regression v01Linear regression vs polynomial regression v01
Linear regression vs polynomial regression v01
 
Math basic - v01
Math   basic - v01Math   basic - v01
Math basic - v01
 
Python - Matplotlib basic - v01
Python - Matplotlib basic - v01Python - Matplotlib basic - v01
Python - Matplotlib basic - v01
 
Python basic - v01
Python   basic - v01Python   basic - v01
Python basic - v01
 

Sklearn basic - v01

  • 2. sklearn: Scikit-learn ★屬 Python 在機器學習中最知名的套件 ★提供分類(classification),回歸(regression),聚類(clustering) 數據降維(dimensionality reduction),模型選擇和數據預處理等功能 ★分類(classification)和回歸(regression)屬監督式學習 (Supervised Learning) ★聚類(clustering)和數據降維(dimensionality reduction),屬非監 督式學習(UnSupervised Learning) ★不支援深度學習和 GPU 加速
  • 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. sklearn: Scikit-learn (三)回歸(Regression) (三)回歸-簡單線性回歸(Simple Linear Regression) (三)回歸-多元線性回歸(Multiple Linear Regression) (三)回歸-多項式回歸(Polynomial Regression) (四)聚類(Clustering) (四)聚類-K 平均聚類(K-Means) (四)聚類-均值轉移聚類(Mean-shift) (四)聚類-密度的聚類方法(DBSCAN)
  • 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. 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. 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')
  • 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. 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. 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. 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. 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)
  • 18. sklearn: Scikit-learn (三)回歸(Regression) ★介紹常用的分類方法,例如: 簡單線性回歸(Simple Linear Regression) 多元線性回歸(Multiple Linear Regression) 多項式回歸(Polynomial Regression)
  • 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)
  • 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)
  • 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)
  • 29. sklearn: Scikit-learn (五)數據降維(Dimensionality Reduction) ★介紹常用的分類方法,例如: 主成分分析(PCA, Principal component analysis) 核函數主成分分析(Kernel PCA, Principal component analysis)
  • 30. sklearn: Scikit-learn (五)數據降維-主成分分析(PCA) ★使用 sklearn.decomposition 中的 PCA 去建構模型.其中, n_components = n 參數為保留多少數量的組件,並用 fit 方法基於訓練的輸 入(X_train)來調整模型.最後,透過兩個重要的 PCA 參數來確認各組件的重要 程度,1)explained_variance: 降維後的各成分的標準差,其值越大,則表 示其成分越重要. 2)explained_variance_ratio: 降維後的各成分的標準 差佔總標準差值的比例,其值越大,則表示其成分越重要.步驟如下:
  • 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. 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)