当要使用很多模型并比较结果的时候,可以采用函数方式,可以直接调用函数进行,同时输出模型评价
def Model(model, X_train, X_test, y_train, y_test, title):#trainmodel.fit(X_train, y_train)#predicty_train_pred = model.predict(X_train)y_test_pred = model.predict(X_test)#evaluateprint(title + ' - training set - accuracy score: ', accuracy_score(y_train, y_train_pred))print(title + ' - test set - accuracy score: ' , accuracy_score(y_test, y_test_pred))print(title + ' - training set - confusion matrix: \n' , confusion_matrix(y_train, y_train_pred))print(title + ' - test set - confusion matrix: \n' ,confusion_matrix(y_test, y_test_pred))models = [DecisionTreeClassifier(random_state=42),RandomForestClassifier(random_state=42),LinearSVC(random_state=42),XGBClassifier(random_state=42)]
- 通过定义一个函数对所有模型输入的参数作出规定
指定了输出的模型评价
model_score = []for i in models:model = imodel.fit(cv_trans,y_train)model_score.append(accuracy_score(y_test,model.predict(cv_trans_test)))model_score
在进行训练的时候如果需要多种机器学习方法,可以先建立一个字典,方便我们后续调用
models = {'LogisticRegression': LogisticRegression(random_state=42),'KNeighborsClassifier': KNeighborsClassifier(),'SVC': SVC(random_state=42),'DecisionTreeClassifier': DecisionTreeClassifier(max_depth=1, random_state=42)}
