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

测试集的分类准确率

作者头像
Hsinyan
发布于 2022-06-19 09:26:43
发布于 2022-06-19 09:26:43
56910
代码可运行
举报
运行总次数: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 删除。

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

评论
登录后参与评论
1 条评论
热度
最新
大佬有没有遇到过,videoView 上方的其他元素黑色,显示不出的情况。上方元素放到videoView下方就是好的。
大佬有没有遇到过,videoView 上方的其他元素黑色,显示不出的情况。上方元素放到videoView下方就是好的。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
React Native之React速学教程(下)
React Native之React速学教程(下) 本文出自《React Native学习笔记》系列文章。 React Native是基于React的,在开发React Native过程中少不了的需要用到React方面的知识。虽然官方也有相应的Document,但篇幅比较多,学起来比较枯燥。 通过《React Native之React速学教程》你可以对React有更系统和更深入的认识。为了方便大家学习,我将《React Native之React速学教程》分为上、中、下三篇,大家可以根据需要进行阅读学习。 概
CrazyCodeBoy
2018/05/07
2.8K0
带着问题写React Native原生控件--Android视频直播控件
最近在做的采用React Native项目有一个需求,视频直播与直播流播放同一个布局中,带着问题去思考如何实现,能更容易找到问题关键点,下面分析这个控件解决方法: 现在条件:视频播放控件(开源的ijkplayer),直播控件(自定义控件继承自TextureView与SurfaceView) 1.两种控件切换方式? 讲到切换方式,那应该是从一个布局切换到另一个布局,那如何进行布局,可以是两种布局:嵌套布局(直播控件包括播放控件),单独布局(先移除容器的控件后添加所需控件),采用第二种方式进行实现。 2.如何实
用户1148881
2018/01/15
5.4K0
带着问题写React Native原生控件--Android视频直播控件
Android多媒体之视频播放器(基于MediaPlayer)
获取帧.png 基本上也就这么多了,最后讲一下视频封面帧图片的获取:数了一下这帧大概在15秒 测试了一下秒数越大,获取图片的速度越慢,也就是越卡,所以还是给0吧 如果在Adapter里实时加载会很卡,最好查询的时候就把bitmap放到实体类里,由于封面图不要很大 别把原图给放进去了,小心直接OOM。Bitmap的操作本文就不赘述了。
张风捷特烈
2019/03/15
5.6K0
Android多媒体之视频播放器(基于MediaPlayer)
Android VideoView播放视频
起初播放本地视频也是如此,但后来发现是因为权限的原因,所以需要在AndroidManifest.xml中加入
SingYi
2022/07/13
3.5K0
Android VideoView播放视频
React Native 与 OC 之间通信那些事儿
作者:朱灵子 React Native用IOS自带的JavaScriptCore作为JS的解析引擎,普通的JS-OC通信就是React Native在OC定义一个模块方法,JS可以直接调用这个模块方法
腾讯IVWEB团队
2017/05/02
2K0
React Native调用原生组件
在React Native开发过程中,有时候我们可能需要访问平台的API,但react Native还没有相应的实现,或者是React Native还不支持一些原生的属性,我们需要调用原生代码来实现,或者是我们需要复用一些原来的Java代码,这个时候我们就需要创建一个原生模块来自己实现对我们需要功能的封装。 相关文档可以参照官方的介绍。 #实例 下面我们就通过实现一个自定义模块,来熟悉编写原生模块需要用的一些知识。该模块主要实现调用一些Android原生的功能,比如弹Toast,启动Activity等。
xiangzhihong
2018/01/26
1.7K0
Android VideoView 视频播放完成例子(进度条,播放时间,暂停,拖动)
中国广东省深圳市望海路半岛城邦三期 518067 +86 13113668890 <netkiller@msn.com>
netkiller
2018/11/09
14.8K0
React Native与Android 原生通信
我们用React Native 做混合开发的时候免不了要原生和React Native 进行通信交互,这篇文章就是分享原生模块与JS传递数据的几种方式。
HelloJack
2018/08/28
2.4K0
Android TV 开发之 TV视频播放器
最近公司又给了一个新任务,说要做电视机顶盒开发,这个机顶盒开发之前也没有接触过啊,没经验,这使我走了很多坑,写这个日志就是帮助和自己一样的新手开发代码顺利一些,少走弯路,如果你是有经验的,请无视我的废话和文章,因为我将从创建项目开始写这篇日志,这意味着会比较无聊,你要有心理准备,当然如果你是一个新手的话,恰好最近又要做AndroidTV的开发,那么你就来对地方了,好了,话不多说了,进入正题吧。
晨曦_LLW
2020/09/25
6.9K5
React native和原生之间的通信
RN中文网关于原生模块(Android)的介绍可以看到,RN前端与原生模块之 间通信,主要有三种方法: 1)使用回调函数Callback,它提供了一个函数来把返回值传回给JavaScript。 2)使用Promise来实现。 3)原生模块向JavaScript发送事件。 关于使用回调,这是最简单的一种通信,这里可以看看官网的实现,今天要讲的是滴三种由原生模块向JavaScript发送事件。 (1)首先,你需要定义一个发送事件的方法。如下所示: /*原生模块可以在没有被调用的情况下往JavaScript发送事
xiangzhihong
2018/02/05
4.8K1
React native和原生之间的通信
实习杂记(22):仿照VideoView+MediaPlayerController做视频
主要是抽取出来,有些方法是hide,有些类是  internal层的,无法使用,所以需要自己去想办法弄,
wust小吴
2019/07/08
8970
React Native调用原生UI组件
在React Native 中,其已经将几个常用的原生组件进行了封装,但是并不是所有系统的原始组件都被封装了,因此有时候我们不得不自己动手封装一下,从而能够使用那些React Native没有为我们封装的原生组件。为了方便讲解,我们选择第一个第三方库kenburnsview来讲解,kenburnsview是一个可以让图片在在页面移动或者放大缩小的库。 Android原生组件封装 1,继承SimpleViewManager,返回UI组件实例 首先,需要继承 SimpleViewManager 这个泛型类,
xiangzhihong
2018/02/06
1.6K0
React Native调用Android相机图库
概述 在很多的React Native开发中,我们需要调用原生的api实现调用相机和图库的功能,网上用的最多的开源库如:react-native-image-picker。关于react-native-image-picker的用法大家请看相关的文档。我们今天手动实现一份。 调用Android图库相机 创建项目 执行命令 : react-native init HeadImage 创建一个名为HeadImage的工程,可以使用命令先运行下Demo项目。 然后照一张图片,放到放到工程的 HeadImage\A
xiangzhihong
2018/01/26
1.7K0
多媒体开发
纵观移动市场上的手机,特别是智能手机,大家一定会发现现在的手机已经不仅仅限接听电话、收发短信、浏览网页之类的简单功能了。手机已经发展成一个集照相机、音乐播放器、视频播放器、网页浏览器等功能于一体的智能设备。因此为手机提供音、视频的录制、播放以及照相等功能已经成为软件开发中必不可少的内容。Android原生提供了对MP3、WAV 、MP4和3GP等音频、视频格式支持的组件API,通过这些API和组件我们可以非常容易地实现强大的音频和视频功能。在本章节中我们就结合具体的案例针对Android中的多媒体开发相关的内容进行深入讲解,这部分内容包括音乐的播放、音效的播放、视频的播放、音频的录制以及拍照等功能的实现。
用户9184480
2024/12/17
1340
多媒体开发
Android MediaPlayer 播放音频
主要介绍使用MediaPlayer播放音频的方式。关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介。
AnRFDev
2021/02/01
2.2K0
React-Native WebView,实现RN代码与Html的简单交互
首先结合React-Native 高版本与低版本(0.41.2 与 0.25.1)分析其RN源码(偏向于Android方向)及api
conanma
2021/11/02
3K0
Android开发笔记(一百二十五)自定义视频播放器
在Android中播放视频的方式有两种: 1、使用MediaPlayer结合SurfaceView进行播放。其中通过SurfaceView显示视频的画面,通过MediaPlayer来设置播放参数、并控制视频的播放操作;该方式的具体说明参见《Android开发笔记(五十七)录像录音与播放》。 该方式的好处是灵活性强,可随意定制。缺点是编码复杂,连开始/暂停的按钮都要自己实现。 2、使用VideoView结合MediaController进行播放。VideoView其实是从SurfaceView扩展而来,并在内部集成了MediaPlayer,从而实现视频画面与视频操作的统一管理;而MediaController则是一个简单的播放控制条,它实现了基本的控制按钮,如开始/暂停按钮、上一个/下一个按钮、快进/快退按钮,以及进度条等控件;把VideoView与MediaController关联起来,便是一个类似于Window Media Player的精简版播放器。 该方式的好处是简单易用,编码容易。缺点是可定制差,难以扩展,想给按钮换个样式都不行。 但是不积跬步无以至千里,如果我们要定制一个好用好看的播放器,还是得先把笨拙的VideoView与MediaController搞清楚才行。就像穷国一开始没有汽车工业,那只能从研究拖拉机开始,没办法一蹴而就强行大跃进呀。
aqi00
2019/01/18
2.8K0
相关推荐
React Native之React速学教程(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档