当要使用很多模型并比较结果的时候,可以采用函数方式,可以直接调用函数进行,同时输出模型评价
def Model(model, X_train, X_test, y_train, y_test, title):
#train
model.fit(X_train, y_train)
#predict
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)
#evaluate
print(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 = i
model.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)
}