scikit-learn中的資料
資料格式:2維陣列或者矩陣,[n_samples, n_features]
包含資料集:iris data ,digits data, boston data(housing price), diabetes data例如:
from我們可以通過print(data.descr)去檢視關於資料集的詳細資訊sklearn.datasets
import
load_iris
>>>
iris
=load_iris
() -->其中含有iris.data和iris.target
scikit-learn中的機器學習基本原理
線性回歸:
from模型中的引數是可以初始化的,如:sklearn.linear_model
import
linearregression
model當給定訓練資料x和y時,模型擬合只需要呼叫:=linearregression
(normalize
=true
)
model另外,可以通過呼叫model的coef_值來檢視訓練得到的係數.fit(x
,y)
最近鄰演算法:
fromneighbors中包含了knn演算法模型,通過以下呼叫(引數設定最近鄰n的個數):sklearn
import
neighbors
knn由於knn演算法是不需要訓練的,待**樣本直接通過給定的樣本找到最近的樣本進行相應分類即可:=neighbors
.kneighborsclassifier
(n_neighbors=1
)knn
.fit(x
,y)
knn.predict
(x),例如x = [[3, 5, 4, 2]]
線性svm分類:
fromlinearsvc(loss='l1')或l2sklearn.svm
import
linearsvc
從以上兩個例子可以看到,我們將不同型別演算法的「估算器」賦予給model變數,model在對訓練樣本學習時,只需要呼叫model.fit(x, y)
;對於監督式的評估器,**新資料的方式為:model.predict(x_new)
對於分類問題,有些評估器提供model.predict_proba()方法,返回的是每種類別的概率,概率最大的類別對應了model.predict()
對於非監督式的評估器,可以對特徵進行轉換,無監督轉換指只利用特徵的統計資訊的轉換,統計資訊包括均值、標準差、邊界等等,比如標準化、pca法降維等。
例如model.transform()和model.fit_transform(x, y = none)這二者的區別在於
fit_transform需要先擬合資料,這裡所說的擬合,不是指含有目標y的那種擬合,而是根據給定資料找到相應的統計資訊,如均值和標準差;
而transform一般用於測試資料,不需要再擬合,而是直接使用訓練資料擬合好的統計資訊,如均值和標準差,對測試資料進行處理;
其它的模型方法,需要使用時再查閱即可。
資料降維pca
pca,主成分分析,可以對資料進行降維,以手寫字元為例:
fromsklearn.decomposition
import
pca>>>
pca=
pca(
n_components=2
) ##降至2個維度
>>>
proj
=pca
.fit_transform
(digits
.data
) ##
>>>
plt.
scatter
(proj
[:,0
],proj
[:,1],c
=digits
.target
)
高斯樸素貝葉斯分類
高斯樸素貝葉斯分類方法是種簡單快速的方法,如果簡單且快速的方法足以使結果滿意,則無需浪費過多cpu資源設計複雜演算法-->sklearn.*****_bayes.gaussiannb
高斯樸素貝葉斯對每個相同label的資料進行高斯擬合,然後對測試資料進行大致的分類,儘管對於現實世界的擬合不是很準確,但也很不錯,特別對於文字資料
fromsklearn.*****_bayes
import
gaussiannb
fromtrain_test_split可以自動把資料隨機分成訓練集和測試集:sklearn.model_selection
import
train_test_split
x_train,x_test
,y_train
,y_test
=train_test_split
(digits
.data
,digits
.target
)
clf=gaussiannb
()
clf測試時.fit
(x_train
,y_train
)
predicted=clf
.predict
(x_test
)
結果的量化分析
在模組sklearn.metrics中有許多成熟的度量方法:
from對於分類的評判,會返回精度precision、召回率recall、f1-score和supportsklearn
import
metrics
>>>
(metrics
.classification_report
(expected
,predicted
))
另一種是混淆矩陣,呼叫方式如下:
metrics可以幫助我們看到每一類的誤分情況.confusion_matrix
(expected
,predicted
)
有時候我們可以將每一維特徵和結果的關係畫圖,手工選擇有用的特徵
gradient boosting tree regression
gbt是一種很強大的回歸樹
fromsklearn.ensemble
import
gradientboostingregressor
clf=gradientboostingregressor
()clf
.fit
(x_train
,y_train
)predicted
=clf
.predict
(x_test
)
另外:
(回歸)決策樹decision tree
fromsklearn.tree
import
decisiontreeregressor
待續……
scikit learn機器學習簡介
目錄 機器學習 問題設定 載入示例資料集 學習和 模型永續性 約定拓展知識鏈結 在本節中,我們介紹整個scikit learn中使用的機器學習詞彙,並給出了乙個簡單的學習示例。機器學習 問題設定 通常,學習問題會考慮一組n個資料樣本,然後嘗試 未知資料的屬性。如果每個樣本都大於乙個數字,例如是多維條...
機器學習及scikit learn
1.機器學習基本步驟 1 定義一系列函式 2 定義函式的優劣 3 選擇最優函式 2.什麼是scikit learn?1 面向python的免費機器學習庫 2 包含分類 回歸 聚類演算法,比如 svm 隨機森林 k means等 3 包含降維 模型選擇 預處理等演算法 4 支援numpy和scipy資...
機器學習 scikit learn(1)
1.通過樣本來 未知的資料 通過學習資料集的特徵 訓練集 training set 來應用到新的資料上。2.監督學習 分類 樣本屬於多於兩個類,我們想要從已經標記過的資料來 未標記資料的類 digits 回歸 如果想要的輸出包括多餘乙個連續的變數 無監督 訓練集包括一系列的向量x而沒有相對應的y 目...