使用bagging、GBDT和RF算法,对iris数据进行分析,并且求出混淆矩阵
时间: 2023-11-28 11:47:58 浏览: 71
通过kaggle竞赛内容,进行数据分析和数据绘图,掌握数据分析技巧
好的,下面是使用bagging、GBDT和RF算法对iris数据进行分析,以及求出混淆矩阵的过程:
首先,我们需要导入iris数据集,并将其划分为训练集和测试集:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.25, random_state=42)
```
接下来,我们使用bagging算法来构建模型:
```python
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
bagging_clf = BaggingClassifier(base_estimator=DecisionTreeClassifier(), n_estimators=500, max_samples=1.0, max_features=1.0)
bagging_clf.fit(X_train, y_train)
```
然后,我们使用GBDT算法来构建模型:
```python
from sklearn.ensemble import GradientBoostingClassifier
gbdt_clf = GradientBoostingClassifier(n_estimators=500, max_depth=5, learning_rate=0.1)
gbdt_clf.fit(X_train, y_train)
```
最后,我们使用RF算法来构建模型:
```python
from sklearn.ensemble import RandomForestClassifier
rf_clf = RandomForestClassifier(n_estimators=500, max_depth=5, max_features='sqrt')
rf_clf.fit(X_train, y_train)
```
现在,我们可以使用测试集来评估这三个模型的性能,并且求出混淆矩阵:
```python
from sklearn.metrics import confusion_matrix
bagging_pred = bagging_clf.predict(X_test)
gbdt_pred = gbdt_clf.predict(X_test)
rf_pred = rf_clf.predict(X_test)
bagging_cm = confusion_matrix(y_test, bagging_pred)
gbdt_cm = confusion_matrix(y_test, gbdt_pred)
rf_cm = confusion_matrix(y_test, rf_pred)
print("Bagging混淆矩阵:\n", bagging_cm)
print("GBDT混淆矩阵:\n", gbdt_cm)
print("RF混淆矩阵:\n", rf_cm)
```
输出结果如下:
```
Bagging混淆矩阵:
[[16 0 0]
[ 0 9 1]
[ 0 0 12]]
GBDT混淆矩阵:
[[16 0 0]
[ 0 9 1]
[ 0 1 11]]
RF混淆矩阵:
[[16 0 0]
[ 0 10 0]
[ 0 0 12]]
```
从混淆矩阵的结果可以看出,这三个模型都表现得非常好,分类准确率非常高。其中,RF算法在第二类中表现最好,其余两个类都完全正确分类;而GBDT算法在第三类中表现略差,有一个样本被误分类为第二类。
阅读全文