1. 程式人生 > 其它 >scikit基礎與機器學習入門(8) sklearn主要解決的三類問題——分類,迴歸和聚類

scikit基礎與機器學習入門(8) sklearn主要解決的三類問題——分類,迴歸和聚類

其實這篇沒啥內容,就是在熟悉一下程式碼\((*^_^*)\)

分類模型的訓練——以決策樹為例

匯入相關的庫

import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn import datasets

處理資料集

digits = datasets.load_digits()
#從樣本資料中選出2/3作為訓練集,1/3個作為測試集,並打亂資料集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target,
test_size = 1/3)

進行模型的匯入和預測

from sklearn.tree import DecisionTreeClassifier
treeclf = DecisionTreeClassifier()
treeclf.fit(X_train,y_train)

評估資料集

treeclf.score(X_test,y_test)

聚類模型的訓練

from sklearn.cluster import KMeans
clt = KMeans(n_clusters=3)
clt.fit(X)
# 得到每種元素的分類
print(clt.predict(X))
# 得到聚類的中心
print(clt.cluster_centers_)

降維模型的訓練

PCA主成分分析(Principal Components Analysis)是最常使用的降維演算法,其基本思想如下:將原先的n個特徵用數目更少的m個特徵取代,新特徵是舊特徵的線性組合,這些線性組合最大化樣本方差,從而保留樣本儘可能多的資訊,並且m個特徵互不相關。用幾何觀點來看,PCA主成分分析方法可以看成通過正交變換,對座標系進行旋轉和平移,並保留樣本點投影座標方差最大的前幾個新的座標。

通過PCA主成分分析,可以幫助去除樣本中的噪聲資訊,便於進一步做迴歸分析。

匯入相關的庫和資料集

import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn import datasets
boston = datasets.load_boston()
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(boston.data,boston.target,
test_size = 1/3,random_state = 0)
(len(X_train),len(X_test))

標準化

# 特徵極差標準化
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler(feature_range = (0,1))
scaler.fit(X_train)
X_train,X_test = scaler.transform(X_train),scaler.transform(X_test)

利用PCA進行降維

這裡explained_variance_衡量的是各維度的方差

# 應用PCA進行降維
from sklearn.decomposition import PCA
pca = PCA(n_components=6)
pca.fit(X_train)
pca.explained_variance_
X_train_pca,X_test_pca = pca.transform(X_train),pca.transform(X_test)

對新資料進行處理

# 對降維後的資料進行迴歸分析
from sklearn.linear_model import ElasticNetCV
netreg = ElasticNetCV()
netreg.fit(X_train_pca,y_train)
netreg.predict(X_test_pca)
netreg.score(X_test_pca,y_test)
很喜歡聽到一個老師說的“半年理論”,現在做出的努力,一般要在半年的沉澱之後,才能出結果,所以在遇到瓶頸之時,不妨再努力半年