当要使用很多模型并比较结果的时候,可以采用函数方式,可以直接调用函数进行,同时输出模型评价

    1. def Model(model, X_train, X_test, y_train, y_test, title):
    2. #train
    3. model.fit(X_train, y_train)
    4. #predict
    5. y_train_pred = model.predict(X_train)
    6. y_test_pred = model.predict(X_test)
    7. #evaluate
    8. print(title + ' - training set - accuracy score: ', accuracy_score(y_train, y_train_pred))
    9. print(title + ' - test set - accuracy score: ' , accuracy_score(y_test, y_test_pred))
    10. print(title + ' - training set - confusion matrix: \n' , confusion_matrix(y_train, y_train_pred))
    11. print(title + ' - test set - confusion matrix: \n' ,confusion_matrix(y_test, y_test_pred))
    12. models = [DecisionTreeClassifier(random_state=42),RandomForestClassifier(random_state=42),
    13. LinearSVC(random_state=42),XGBClassifier(random_state=42)]
    • 通过定义一个函数对所有模型输入的参数作出规定

    指定了输出的模型评价

    1. model_score = []
    2. for i in models:
    3. model = i
    4. model.fit(cv_trans,y_train)
    5. model_score.append(accuracy_score(y_test,model.predict(cv_trans_test)))
    6. model_score

    在进行训练的时候如果需要多种机器学习方法,可以先建立一个字典,方便我们后续调用

    1. models = {
    2. 'LogisticRegression': LogisticRegression(random_state=42),
    3. 'KNeighborsClassifier': KNeighborsClassifier(),
    4. 'SVC': SVC(random_state=42),
    5. 'DecisionTreeClassifier': DecisionTreeClassifier(max_depth=1, random_state=42)
    6. }