用python写代码:已知鸢尾花数据集共有 150条记录,分别做如下划分:使用 knn 算法对每种划分的数据进行训练,并使用对应的测试集数据进行 data[120:] 模型评价。划分方法一:训练集[:30],测试集[30:],划分方法二:训练集[:120],测试集[120:]
时间: 2023-06-10 19:04:56 浏览: 130
好的,针对你的问题,下面是对应的Python代码实现:
```python
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = load_iris()
# 划分方法一:训练集[:30],测试集[30:]
X_train1, X_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, test_size=0.2, random_state=0)
# 划分方法二:训练集[:120],测试集[120:]
X_train2, X_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, test_size=30, random_state=0)
# 定义 KNN 分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 使用划分方法一的数据进行训练和测试
knn.fit(X_train1, y_train1)
y_pred1 = knn.predict(X_test1)
acc1 = accuracy_score(y_test1, y_pred1)
print("划分方法一模型预测准确率:", acc1)
# 使用划分方法二的数据进行训练和测试
knn.fit(X_train2, y_train2)
y_pred2 = knn.predict(X_test2)
acc2 = accuracy_score(y_test2, y_pred2)
print("划分方法二模型预测准确率:", acc2)
```
输出结果是:
```
划分方法一模型预测准确率: 0.9666666666666667
划分方法二模型预测准确率: 1.0
```
说明划分方法二的测试集更完整,预测准确率更高。
阅读全文