前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >测试集的分类准确率

测试集的分类准确率

作者头像
Hsinyan
发布于 2022-06-19 09:26:43
发布于 2022-06-19 09:26:43
56900
代码可运行
举报
运行总次数:0
代码可运行

导入测试数据集

这里使用的是手写体数字识别的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from sklearn import datasets

digits = datasets.load_digits()
digits.keys()
# dict_keys(['data', 'target', 'target_names', 'images', 'DESCR'])

X = digits.data
X.shape
# (1797, 64)

y = digits.target
y.shape
# (1797,)

digits.target_names
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 可以看到这个数据集是乱序的,所以可以不进行打乱操作
y[:100]
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
#       2, 3, 4, 5, 6, 7, 8, 9, 0, 9, 5, 5, 6, 5, 0, 9, 8, 9, 8, 4, 1, 7,
#       7, 3, 5, 1, 0, 0, 2, 2, 7, 8, 2, 0, 1, 2, 6, 3, 3, 7, 3, 3, 4, 6,
#       6, 6, 4, 9, 1, 5, 0, 9, 5, 2, 8, 2, 0, 0, 1, 7, 6, 3, 2, 1, 7, 4,
#       6, 3, 1, 3, 9, 1, 7, 6, 8, 4, 3, 1])

# 查看一下第666个数据
some_digit = X[666]
y[666]
# 0

# 将这张图打印出来
some_digit_image = some_digit.reshape(8,8)
plt.imshow(some_digit_image,cmap=matplotlib.cm.binary)
plt.show()

可以看到这是数字0,之后我们使用自己封装的函数对数据集进行测试

使用kNN算法进行测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 以下两个都是自己封装的函数
from model_selection import train_test_split
from kNN import KNNClassifier

X_train,X_test,y_train,y_test = train_test_split(X,y,test_ratio = 0.2)
my_knn_clf = KNNClassifier(k=3)

my_knn_clf.fit(X_train,y_train)
y_predict= my_knn_clf.predict(X_test)

# 计算准确率
sum(y_predict == y_test) / len(y_test)
# 0.9916434540389972

使用上述过程即可使用kNN算法(k取3),且对测试集进行预测的准确率达到99.16%以上

封装自己的准确率函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def accuracy_score(y_true, y_predict):
    """计算y_true和y_predict之间的准确率"""
    assert len(y_true) == len(y_predict), \
        "the size of y_true must be equal to the size of y_predict"
    return np.sum(y_true == y_predict) / len(y_true)

测试一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from metrics import accuracy_score
accuracy_score(y_test,y_predict)
# 0.9916434540389972

使用scikit-learn封装的accuracy_score

scikit-learn中也为我们封装好了计算准确率的函数,可以直接调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 得到训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, random_state = 666)

# 得到knn分类器
knn_clf = KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train,y_train)
# KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
#                     metric_params=None, n_jobs=None, n_neighbors=3, p=2,
#                     weights='uniform')

y_predict = knn_clf.predict(X_test)
accuracy_score(y_test,y_predict)
# 0.9888888888888889
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
文章链接:https://cloud.tencent.com/developer/article/2472164
远方2.0
2024/11/30
1450
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
机器学习的敲门砖:kNN算法(中)
关于作者:Japson。某人工智能公司AI平台研发工程师,专注于AI工程化及场景落地。持续学习中,期望与大家多多交流技术以及职业规划。
木东居士
2019/09/17
7950
机器学习的敲门砖:kNN算法(中)
机器学习(二十)贪心学院ML训练营学习1 -KNN算法
K-邻近算法采用测量不同特征值之间的距离方法进行分类,工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,意思是我们知道样本集中的每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据的分类标签。选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
致Great
2019/07/04
1.2K0
机器学习(二十)贪心学院ML训练营学习1 -KNN算法
分类模型评估方法
为了能够评估模型的泛化能力,可以通过实验测试对学习器的泛化能力进行评估,进而做出选择。因此需要使用一个 "测试集" 来测试学习器对新样本的判别能力,以测试集上的 "测试误差" 作为泛化误差的近似。
@小森
2024/03/15
1330
分类模型评估方法
Python3入门机器学习(四)- kNN算法的学习与使用
先基于原有的肿瘤病人的发现时间和肿瘤大小(特征)对应的良性/恶性(值)建立了一张散点图,横坐标是肿瘤大小,纵坐标是发现时间,红色代表良性,蓝色代表恶性,现在要预测的病人的颜色为绿色
Meet相识
2018/09/12
2K0
Python3入门机器学习(四)- kNN算法的学习与使用
KNN算法API
💡💡为什么要划分数据集呢? 结论:不能将所有数据集全部用于训练,为了能够评估模型的泛化能力,可以通过实验测试对学习器的泛化能力进行评估,进而做出选择。因此需要使用一个 "测试集" 来测试学习器对新样本的判别能力,以测试集上的 "测试误差" 作为泛化误差的近似。
用户10950404
2024/07/30
1100
KNN算法API
kaggle示例1—研究生录取判断问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/78767380
bear_fish
2018/09/14
9850
kaggle示例1—研究生录取判断问题
不要太强!全面总结 KNN !!
今儿准备了 KNN 的文章给到大家,因为后台很多人问到了关于KNN相关的内容细节!
Python编程爱好者
2023/11/29
6330
不要太强!全面总结 KNN !!
数据分析入门系列教程-KNN实战
上一节我们完成了 KNN 算法理论的学习,同时还手动写了一个简易版的 KNN 分类器。今天我们来进行 KNN 的实战,看看如何通过 KNN 算法来解决生活中的问题。
周萝卜
2020/10/30
8701
数据分析入门系列教程-KNN实战
kNN分类算法
KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。
Hsinyan
2022/06/19
8650
kNN分类算法
使用KNN和SVM算法实现手写字体识别分类
支持向量机,有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。样本量不是海量数据的时候,分类准确率高,泛化能力强。
北山啦
2022/11/27
2.1K0
使用KNN和SVM算法实现手写字体识别分类
Python3入门机器学习(四)(补)- sklearn 中使用knn算法的总结整理
1.将数据集分成训练数据集合测试数据集 2.将训练数据集进行归一化 3.使用训练数据集的均值和方差将测试数据集归一化 4.使用训练数集训练处模型 5.使用归一化后的测试数据集测试分类的准确度(accuracy) 6.使用网格搜索寻找最好的超参数,然后回到1-5
Meet相识
2018/09/12
3.3K0
Python3入门机器学习(四)(补)- sklearn 中使用knn算法的总结整理
ML算法——KNN随笔【全国科技工作者日创作】【机器学习】
它是机器学习中唯一一个不需要训练过程的算法,它在训练阶段只是把数据保存下来,训练时间开销为 0,等收到测试样本后进行处理。
来杯Sherry
2023/05/31
4490
ML算法——KNN随笔【全国科技工作者日创作】【机器学习】
使用KNN算法认识Machine Learning
应该是第一次跟周老师见面过后,周老师就建议我先开始学学Deep Learning相关的知识,为开学后进入正式的研究打个基础。回来之后自己信心满怀地买了李沐大神的《动手学深度学习(PyTorch版)》,然后便开始了自己的学习DL之路。
曼亚灿
2023/05/19
7051
使用KNN算法认识Machine Learning
机器学习算法整理(二)
现在我们用真实的数据来看一下scikit-learn中的PCA的使用,我们要处理的是一组手写识别的数据分类。
算法之名
2021/09/06
2230
1.6w字超全汇总!56个sklearn核心操作!!!
其中,X是特征数据,y是目标数据,test_size是测试集的比例(可以是0到1之间的值),random_state是随机种子,用于保证每次划分的结果一致。
Python编程爱好者
2024/05/13
4160
1.6w字超全汇总!56个sklearn核心操作!!!
分类-KNN算法(代码复现和可视化)
K近邻(K Nearest Neighbors,KNN)算法是最简单的分类算法之一,也就是根据现有训练数据判断输入样本是属于哪一个类别。
唔仄lo咚锵
2022/10/04
9220
分类-KNN算法(代码复现和可视化)
快乐学AI系列——计算机视觉(5)图像分类和识别
传统图像分类算法的两种方法:SIFT特征+KNN分类器和HOG特征+SVM分类器。
MATRIX.矩阵之芯
2023/04/06
7120
快乐学AI系列——计算机视觉(5)图像分类和识别
KNN近邻算法 详解
通过本文,你将了解并深刻理解什么是 KNN算法。 当然,阅读本文前,你最好会点python, 这样阅读起来才会没有障碍噢
solve
2019/10/30
8720
通过一个 kaggle 实例学习解决机器学习问题
本文通过实例介绍了如何利用机器学习算法对数据集进行分类,并采用投票方式集成分类器。首先介绍了数据集的特点,然后根据数据集的特点选择了合适的特征工程方法,接下来介绍了多种分类器,并通过交叉验证和投票的方式确定最佳分类器。最后通过预测结果,实现了对数据集的分类。
杨熹
2017/10/18
2.8K0
通过一个 kaggle 实例学习解决机器学习问题
推荐阅读
相关推荐
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档