编程要求 补充代码,编写一个手写数字识别的程序,并对模型进行评估 预期输出: 0.9888888888888889 from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split from sklearn.datasets import load_digits import numpy as np np.random.seed(10) def model_train(x, y): """ x : 特征值 y : 目标值 """ # 请根据注释正确补充代码,让程序能够输出正确答案 # ********** Begin ********** # # 将给出的特征向量中分出80%作为模型训练数据,剩下作为测试数据 # 实例化一个knn的分类器 # 传入训练数据进行模型训练 # 传入测试数据对模型得分进行评估 # ********** End ********** # return score if __name__ == '__main__': digit = load_digits() x = digit.data y = digit.target model_score = model_train(x, y) print(model_score)
时间: 2023-07-06 22:40:02 浏览: 111
根据注释,可以补充以下代码来完成手写数字识别的程序,并对模型进行评估:
```
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
import numpy as np
np.random.seed(10)
def model_train(x, y):
"""
x : 特征值
y : 目标值
"""
# 将给出的特征向量中分出80%作为模型训练数据,剩下作为测试数据
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
# 实例化一个knn的分类器
knn = KNeighborsClassifier()
# 传入训练数据进行模型训练
knn.fit(x_train, y_train)
# 传入测试数据对模型得分进行评估
score = knn.score(x_test, y_test)
return score
if __name__ == '__main__':
digit = load_digits()
x = digit.data
y = digit.target
model_score = model_train(x, y)
print(model_score)
```
运行该程序,将会输出类似如下的结果:
```
0.9888888888888889
```
这说明模型的准确率为 98.89%。