采用KNN, SVM,决策树,集成学习方法实现鸢尾花数据集分类,挑选准确率最高的模型,具体代码如何实现
时间: 2024-02-23 11:00:29 浏览: 29
好的,下面给出使用KNN、SVM、决策树和集成学习方法(随机森林)对鸢尾花数据集进行分类的代码实现:
1. 加载鸢尾花数据集
```python
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
```
2. 将数据集分为训练集和测试集
```python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
3. 进行KNN模型训练和测试
```python
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
acc_knn = accuracy_score(y_test, y_pred)
print("KNN准确率:", acc_knn)
```
4. 进行SVM模型训练和测试
```python
from sklearn.svm import SVC
svm = SVC()
svm.fit(X_train, y_train)
y_pred = svm.predict(X_test)
acc_svm = accuracy_score(y_test, y_pred)
print("SVM准确率:", acc_svm)
```
5. 进行决策树模型训练和测试
```python
from sklearn.tree import DecisionTreeClassifier
dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)
y_pred = dt.predict(X_test)
acc_dt = accuracy_score(y_test, y_pred)
print("决策树准确率:", acc_dt)
```
6. 进行随机森林模型训练和测试
```python
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_train, y_train)
y_pred = rf.predict(X_test)
acc_rf = accuracy_score(y_test, y_pred)
print("随机森林准确率:", acc_rf)
```
7. 比较准确率并选择最高的模型
```python
accuracies = {"KNN": acc_knn, "SVM": acc_svm, "决策树": acc_dt, "随机森林": acc_rf}
best_model = max(accuracies, key=accuracies.get)
print("准确率最高的模型是:", best_model)
```
这样就可以使用KNN、SVM、决策树和随机森林四个模型对鸢尾花数据集进行分类,并选择准确率最高的模型作为最终模型。需要注意的是,这只是一种解决方案,具体实现可能需要根据您的具体需求进行微调。