2.机器学习题实战: (1)题自选: 题选:完成一个分类题,数据选择:scikit中的数据集或目标标前已经公开的资料集3》算法选:我们学过的机器学习算法,可以进行改进 4》评价方式:不同的问题选择 不同的评价方法,要求有图 (2) 项目展示: 1》代码: 用python语言2》文档内容:项目背景、数据描述、计算方法描述、实验设置(数据分割比例,超参数设置,估值方法 选择等)、实验结果
时间: 2024-03-26 13:40:07 浏览: 324
Python中Scikit-learn库的机器学习实战:从入门到精通
题选:完成一个分类题
数据选择:sklearn中的手写数字数据集(Digit Dataset)
算法选:K近邻(KNN)算法
评价方式:使用准确率和混淆矩阵作为评价指标
项目背景:手写数字识别是一个经典的图像分类问题,可以应用于自动识别、验证码识别等场景。在本项目中,我们将使用K近邻(KNN)算法对手写数字进行分类。
数据描述:手写数字数据集是一个非常常用的数据集,可以通过sklearn库进行加载。加载后,数据集包含1797个样本和64个特征,代表8x8像素的灰度图像。标签分别为0-9,代表不同的数字。首先,我们需要将数据集分为训练集和测试集。
计算方法描述:我们将使用K近邻(KNN)算法来进行分类。KNN是一种非常简单的分类算法,它通过找到与当前样本最相似的K个样本来进行分类。我们将使用sklearn库中的KNeighborsClassifier模型进行分类。
实验设置:我们将数据集按照7:3的比例分为训练集和测试集。我们将使用GridSearchCV来搜索KNN的最优超参数。我们将使用准确率和混淆矩阵来评价模型的性能。
实验结果:在使用KNN算法对手写数字数据集进行分类的实验中,我们得到了以下结果:
准确率:0.9861
混淆矩阵:
```
[[57 0 0 0 0 0 0 0 0 0]
[ 0 47 0 0 0 0 0 0 1 0]
[ 0 0 46 0 0 0 0 0 0 0]
[ 0 0 0 48 0 0 0 0 0 0]
[ 0 0 0 0 48 0 0 0 0 1]
[ 0 0 0 0 0 49 0 0 0 0]
[ 0 0 0 0 0 0 49 0 0 0]
[ 0 0 0 0 0 0 0 50 0 0]
[ 0 2 0 1 0 0 0 0 47 0]
[ 0 0 0 0 0 1 0 1 0 50]]
```
从准确率和混淆矩阵可以看出,我们的模型在手写数字识别问题上表现非常好,准确率达到了0.9861,混淆矩阵也表明模型的分类效果非常好。
阅读全文