models = [RandomForestClassifier(random_state=123, min_samples_split=3, min_samples_leaf=0.01, max_depth=5), LogisticRegression(random_state=123), SVC(kernel='rbf',gamma='auto',random_state=123,probability=True)] # 训练 for model in models: time0=time() model.fit(X_train, y_train) y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) rf_roc_auc = roc_auc_score(y_test,y_pred) print(type(model).__name__, 'accuracy:', accuracy) print('======='*10) print(type(model).__name__, 'roc:', rf_roc_auc) print('======='*10) print(type(model).__name__, 'time:',datetime.datetime.fromtimestamp(time()-time0).strftime('%M:%S:%f')) print('======='*10) print(classification_report(y_test, y_pred,target_names=['良性', '恶性'])) print('======='*10)分析代码
时间: 2024-04-27 07:22:30 浏览: 82
pandas-1.3.5-cp37-cp37m-macosx_10_9_x86_64.zip
这段代码主要是用来训练三个不同的机器学习模型(随机森林分类器、逻辑回归和支持向量机),并且评估它们在测试集上的性能表现。
具体来说,这段代码首先定义了一个包含三个机器学习模型的列表,这三个模型分别是随机森林分类器、逻辑回归和支持向量机。然后,对于每个模型,代码通过调用 `fit()` 方法将训练数据集 `X_train` 和 `y_train` 喂给模型进行训练,并使用训练好的模型对测试集 `X_test` 进行预测,得到预测结果 `y_pred`。接着,代码通过调用 `accuracy_score()` 和 `roc_auc_score()` 计算模型在测试集上的准确率和 ROC 曲线下面积,并将这些性能指标打印出来。最后,代码还使用 `classification_report()` 打印出模型在测试集上的分类报告。
需要注意的是,代码在训练支持向量机模型时,设置了 `probability=True` 参数,这是为了使模型能够输出概率值,从而方便计算 ROC 曲线下面积。另外,代码还使用了 `time()` 函数来计算每个模型的训练时间,并使用 `datetime.datetime.fromtimestamp()` 函数将时间戳转换为可读的时间格式。
阅读全文