import pandas as pd
import warnings
from sklearn.preprocessing import scale
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
from xgboost.sklearn import XGBClassifier
import lightgbm as lgb
data_all = pd.read_csv('dealed_data.csv', encoding='gbk')
df_y=data_all['status']
df_X=data_all.drop(columns=['status'])
df_X=scale(df_X,axis=0) #将数据转化为标准数据
lr = LogisticRegression(random_state=2018,tol=1e-6) # 逻辑回归模型
tree = DecisionTreeClassifier(random_state=2018) #决策树模型
svm = SVC(probability=True,random_state=2018,tol=1e-6) # SVM模型
forest=RandomForestClassifier(n_estimators=100,random_state=2018) # 随机森林
Gbdt=GradientBoostingClassifier(random_state=2018) #CBDT
Xgbc=XGBClassifier(random_state=2018) #Xgbc
gbm=lgb.LGBMClassifier(random_state=2018) #lgb
def muti_score(model):
warnings.filterwarnings('ignore')
accuracy = cross_val_score(model, df_X, df_y, scoring='accuracy', cv=5)
precision = cross_val_score(model, df_X, df_y, scoring='precision', cv=5)
recall = cross_val_score(model, df_X, df_y, scoring='recall', cv=5)
f1_score = cross_val_score(model, df_X, df_y, scoring='f1', cv=5)
auc = cross_val_score(model, df_X, df_y, scoring='roc_auc', cv=5)
print("Accuracy:",accuracy.mean())
print("Precision:",precision.mean())
print("Recall:",recall.mean())
print("F1_score:",f1_score.mean())
print("AUC:",auc.mean())
model_name=["lr","tree","svm","forest","Gbdt","Xgbc","gbm"]
for name in model_name:
model=eval(name)
print(name)
muti_score(model)
输出:
lr
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.79091429259733115)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.66154748994282842)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.34120811504518123)
('F1_score:', 0.44967534215097088)
('AUC:', 0.78348245977067532)
tree
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.61288889648504263)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.35894618511236936)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.47037024014626772)
('F1_score:', 0.39031788915621635)
('AUC:', 0.56555253422760066)
svm
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.78944282119289677)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.75419320114928501)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.23810344221370555)
('F1_score:', 0.36142466195938755)
('AUC:', 0.770510765286195)
forest
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.75870089028472087)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.64072677732704619)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.33967160085791642)
('F1_score:', 0.4047365965635949)
('AUC:', 0.76476934052563972)
Gbdt
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.70902287077872816)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.62092423647642414)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.43543827572870153)
('F1_score:', 0.41902034379425918)
('AUC:', 0.77845692461470728)
Xgbc
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.70039659735718951)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.62062509748859918)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.42708413909496851)
('F1_score:', 0.39674264142245241)
('AUC:', 0.78667463795073056)
gbm
('\xe5\x87\x86\xe7\xa1\xae\xe7\x8e\x87:', 0.70314007834579961)
('\xe7\xb2\xbe\xe7\xa1\xae\xe7\x8e\x87:', 0.61024115132536416)
('\xe5\x8f\xac\xe5\x9b\x9e\xe7\x8e\x87:', 0.41873000246123554)
('F1_score:', 0.38272401446308602)
('AUC:', 0.78480829974869126)
数据分析集训营-第四次任务(模型评估)
最新推荐文章于 2023-10-10 23:05:23 发布