生活随笔
收集整理的這篇文章主要介紹了
机器学习实战之信用卡诈骗(二)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
模型評估標(biāo)準(zhǔn):
recall = TP/(TP+FN)
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import KFold, cross_val_score
from sklearn.metrics import confusion_matrix, recall_score, classification_reportdef printing_Kfold_scores(x_train_data,y_train_data):fold = KFold(len(y_train_data),5,shuffle=False)# 正則化懲罰,設(shè)置懲罰力度c_param_range = [0.01,0.1,1,10,100]results_table = pd.DataFrame(index = range(len(c_param_range),2),columns=['C_parameter','Mean recall score'])results_table['C_parameter'] = c_param_rangej = 0for c_param in c_param_range:print('==========')print('C parameter: ', c_param)print('==========')print(' ')recall_accs = []for iteration, indices in enumerate(fold,start=1):# 有C參數(shù)的邏輯回歸lr = LogisticRegression(C = c_param, penalty = '11')lr.fit(x_train_data.iloc[indices[0],:],y_train_data.iolc[indices[1],:].values.ravel())y_pred_undersample = lr.predict(x_train_data.iloc[indices[1],:].values)recall_acc = recall_score(y_train_data.iolc[indices[1],:].values,y_pred_undersample)recall_accs.append(recall_acc)print('Iteration', iteration, ': recall score = ', recall_acc)results_table.ix[j,'Mean recall score'] = np.mean(recall_accs)j += 1print('')print("Mean recall score ", np.mean(recall_accs))print()
混淆矩陣:
針對于下采樣的情況使用的
二分類問題的混淆矩陣,默認(rèn)情況下,行(左邊的兩行0和1)代表真實(shí)值,列(上邊的兩列0和1)代表預(yù)測值,且先是0后是1。**0用N(Negative)表示,1用P(positive)表示。**多分類問題依次類推。
TN表示真實(shí)值和預(yù)測值均為0,FP表示預(yù)測值為1而真實(shí)值為0,FN表示預(yù)測值為0而真實(shí)值為1,TP表示預(yù)測值和真實(shí)值均為1
***
邏輯回歸模型
總結(jié)
以上是生活随笔為你收集整理的机器学习实战之信用卡诈骗(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。