除了 SVM 之外,选用一种机器学习算法建立iris数据集的模型,并用混淆矩阵和 ROC 曲线评估其预测能力。
时间: 2024-02-22 13:01:49 浏览: 119
基于iris数据集进行四种机器学习算法(决策树、朴素贝叶斯、随机森林、支持向量机SVM)的训练,使用交叉检验(Cross-val
可以使用随机森林算法建立iris数据集的模型。以下是使用Python中scikit-learn库实现的代码:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, roc_curve, auc
import matplotlib.pyplot as plt
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 建立随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 预测测试集
y_pred = rf.predict(X_test)
# 混淆矩阵
cm = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(cm)
# ROC曲线
y_prob = rf.predict_proba(X_test)
fpr, tpr, thresholds = roc_curve(y_test, y_prob[:, 1], pos_label=2)
roc_auc = auc(fpr, tpr)
print("AUC score:", roc_auc)
plt.plot(fpr, tpr, color='darkorange', label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.legend(loc="lower right")
plt.show()
```
运行以上代码,会输出混淆矩阵和AUC得分,并绘制出ROC曲线。可以通过混淆矩阵和ROC曲线评估随机森林模型的预测能力。
阅读全文