1. 程式人生 > >Python sklearn 學習筆記(快速)

Python sklearn 學習筆記(快速)



近期在做預測,之前完全沒有接觸過,程式語言python也是臨時找的簡單教程學習的。

昨天開始在弄sklearn,然後就各種google,找到很多blog,而且sklearn主頁也有很詳盡的介紹,但是,時間啊,我木有太多時間來學習。介於此,我把自己的能快速運用sklearn的學習過程講一下。。。。。

首先有train_data(訓練資料),train_target(訓練資料的真實結果),test_data(測試資料),test_target(測試資料的真實結果,用來檢測預測的正確性)

# 根據身高,體重,男女(1,2)預測此人胖否(0,1)
# 案例是我自己隨意寫的,當然符合實際情況
# 定義train_data,test_data二維陣列[[height,weight,sex],···],train_target一維陣列[胖否]
train_data = [[160, 60, 1], [155, 80, 1], [178, 53, 2], [158, 53, 2], [166, 45, 2], [170, 50, 2], [156, 56, 2],
              [166, 50, 1], [175, 55, 1], [188, 68, 1], [159, 41, 2], [166, 70, 1], [175, 85, 1], [188, 98, 1],
              [159, 61, 2]]
train_target = [1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1]
test_data = [[166, 45, 2], [172, 52, 1], [156, 60, 1], [150, 70, 2]]
test_target = [0, 0, 1, 1]

預測主要用兩個函式 fit() 和 predict()

幾種常用方法介紹:

SVM

from sklearn import svm

clf = svm.SVC()
clf.fit(train_data, train_target)
result = clf.predict(test_data)
print type(result)  # <type 'numpy.ndarray'>轉成list 用 result.tolist()
print result  # [0 1 1 1]
Logistic Regression
from sklearn.linear_model import LogisticRegression

clf = LogisticRegression().fit(train_data, train_target)
result = clf.predict_proba(test_data)
print result 
# [[ 0.95138903  0.04861097]
#  [ 0.85670921  0.14329079]
#  [ 0.18763392  0.81236608]
#  [ 0.01270012  0.98729988]]

Linear SVM
from sklearn.svm import LinearSVC

clf = LinearSVC()
clf.fit(train_data, train_target)
result = clf.predict(test_data)
print result  # [0 0 0 1]

Naive Bayes
from sklearn.naive_bayes import  GaussianNB
gnb = GaussianNB().fit(train_data,train_target)
result = gnb.predict(test_data)
print result #[0 0 1 1]

等等

綜上Naive Bayes和Logistic Regression在此例中預測是準確的,但是本例項資料量較少,請酌情考慮


近期在做預測,之前完全沒有接觸過,程式語言python也是臨時找的簡單教程學習的。