機器學習python演算法評估矩陣

2021-08-14 20:38:09 字數 2419 閱讀 1580

#分類演算法矩陣!!

from pandas import read_csv

from sklearn.model_selection import kfold

from sklearn.model_selection import cross_val_score

from sklearn.linear_model import logisticregression

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.metrics import confusion_matrix

from sklearn.metrics import classification_report

filename = 'pima_data.csv'

names = ['preg','plas','pres','skin','test','mass','pedi','age','class']

data = read_csv(filename,names = names)

array = data.values

x = array[:,0:8]

y = array[:,8]

num_folds = 10

seed = 7

model = logisticregression()

kfold = kfold(n_splits=num_folds,random_state=seed)

#分類準確度

# result = cross_val_score(model,x,y,cv=kfold)

# print("演算法評價結果準確度:%.3f (%.3f)" %(result.mean(),result.std()))

#對數損失函式

# kfold = kfold(n_splits=num_folds,random_state=seed)

# model = logisticregression()

# scoring = 'neg_log_loss'

# result = cross_val_score(model,x,y,cv=kfold,scoring=scoring)

# print("logless:%.3f (%.3f)" %(result.mean(),result.std()))

#auc

# scoring = 'roc_auc'

# result = cross_val_score(model,x,y,cv=kfold,scoring=scoring)

# print("auc:%.3f (%.3f)" %(result.mean(),result.std()))

#混淆矩陣

'''用於比較分類結果和實際測得值,可以把分類結果的精度顯示在乙個混淆矩陣裡'''

# test_size = 0.33

# seed = 4

# x_train,x_test,y_traing,y_test = train_test_split(x,y,test_size=test_size,random_state=seed)

# model = logisticregression()

# model.fit(x_train,y_traing)

# predicted = model.predict(x_test)

# matrix = confusion_matrix(y_test,predicted) #混淆矩陣

# classes = ['0','1']

# dataframe = pd.dataframe(data = matrix,index=classes,columns=classes)

# print(dataframe)

#分類報告

'''給出精確率、召回率、f1值和樣本數目

精確率p = tp/(tp+fp),所有被檢索到的專案中應該被檢索到的專案佔的比例

召回率r = tp/(tp+fn),所有檢索到的專案佔所有應該檢索到的專案的比例

f1值就是精確率和召回率的調和均值'''

test_size = 0.33

seed = 4

x_train,x_test,y_traing,y_test = train_test_split(x,y,test_size=test_size,random_state=seed)

model = logisticregression()

model.fit(x_train,y_traing)

predicted = model.predict(x_test)

report = classification_report(y_test,predicted)

print(report)

機器學習演算法評估與優化策略

2 策略 3 查全率和查準率 precision recall 使用訓練集訓練出10個模型 用10個模型分別對交叉驗證集計算得出交叉驗證誤差 選取代價函式值最小的模型 用步驟3中選出的模型對測試集計算得出推廣誤差 對於回歸模型,我們可以計算代價函式j jj 未正則化 對於分類模型,我們除了可以計算代...

機器學習 評估指標

2.1 錯誤率與精度 m個樣本,有a個分錯。錯誤率 e a m 精度 acc 1 a m 2.2 查準率 查全率和f1 tp 真正例 tn 真反例 fp 假正例 fn 假反例 查準率 p tptp fp 查全率 r tptp fn f1是查準率和查全率的調和平均數 1f 1 12 1p 1r 即 f...

機器學習評估方法

訓練 測試集的劃分要盡可能保持資料分布的一致性,避免因資料劃分過程引入額外的偏差而對最終結果產生影響,例如 在分類任務中,至少要保持樣本的類別比例類似。如果從取樣的角度來看待資料集的劃分過程,則保留類別比例的取樣方式稱為 分層取樣 單詞使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法,一般要採...