svm的第一個實例


 用的數據集是uci機器學習庫的數據 ‘iris.data’

from sklearn import svm
import csv
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.preprocessing import StandardScaler
import numpy as np

def change(s):
    #就是這一句話。。。。哎,以后發現類型判斷錯誤,可以看看type的類別
    bs = str(s, encoding="utf8")

    if(bs=='Iris-virginica'):
        return 2
    elif (bs == 'Iris-setosa'):
        return 0
    elif (bs == 'Iris-versicolor'):
        return 1
tezheng=[]#用來存放特征的東西
cate=[]#用來存放結果
path = 'iris.data'
data=np.loadtxt(path, dtype=float, delimiter=',',converters={4: change})

#遍歷
for content in data:
    #這句話非常的重要,將content轉為list,才能正確放入到數據中
    content=list(content)
    #將前四個特征存入tezheng中,最后一列的=存入cate結果集中
    tezheng.append(content[0:4])
    cate.append(content[-1])


#建立xvm的模型
# 標准化sca轉換
scaler = StandardScaler()
# 訓練標准化對象
scaler.fit(tezheng)
# 轉換數據集,一般是歸一化處理
traffic_feature= scaler.transform(tezheng)
#分割測試集和訓練集
feature_train, feature_test, target_train, target_test = train_test_split(traffic_feature, cate, test_size=0.4,random_state=1)
#svc分類器進行一個參數的設置
clf = svm.SVC(C=1, kernel='rbf', gamma=20, decision_function_shape='ovr')
# clf = svm.SVC(C=0.1, kernel='linear', decision_function_shape='ovr')
#將訓練數據放到里面,到這一步的時候 suv已經完成了
clf.fit(feature_train,target_train)

#這邊是開始預測了,輸入的測試集
predict_results=clf.predict(feature_test)
#預測結果和原來結果進行的一個對比
print(accuracy_score(predict_results, target_test))
#參數結果 包括准確率 召回率 f1
print(classification_report(target_test, predict_results))

  

0.8
              precision    recall  f1-score   support

         0.0       1.00      0.68      0.81        19
         1.0       0.94      0.76      0.84        21
         2.0       0.63      0.95      0.76        20

   micro avg       0.80      0.80      0.80        60
   macro avg       0.86      0.80      0.80        60
weighted avg       0.86      0.80      0.81        60


Process finished with exit code 0

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM