Python sklearn 學習筆記(快速)
阿新 • • 發佈:2019-01-10
近期在做預測,之前完全沒有接觸過,程式語言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 Regressionfrom 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也是臨時找的簡單教程學習的。