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