无涯教程-分类算法 - 简介

分类可以定义为根据观测值或给定数据点预测类别的过程。分类的输出可以采用"黑色"或"白色"或"垃圾邮件"或"非垃圾邮件"的形式。

在数学上,分类是从输入变量(X)到输出变量(Y)近似映射函数(f)的任务,它属于有监督的机器学习,在该机器学习中,还提供了目标以及输入数据集。

分类问题的一个示例可以是电子邮件中的垃圾邮件检测,只能有两类输出:"垃圾邮件"和"非垃圾邮件";因此,这是一个二进制类型分类。

要实现此分类,无涯教程首先需要训练分类器,在此示例中,"垃圾邮件"和"非垃圾邮件"电子邮件将用作培训数据,成功训练分类器后,可以将其用于检测未知电子邮件。

对于分类问题,有两种类型的学习者-

懒惰学习

顾名思义,这类学习者在存储训练数据后等待测试数据出现,仅在获取测试数据后才进行分类。他们花在培训上的时间更少,但花在预测上的时间却更多。懒惰学习者的示例有K近邻和基于案例的推理。

渴望学习

与懒惰的学习者相反,热心的学习者在存储训练数据后无需等待测试数据出现就构造分类模型,他们花更多的时间在训练上,而花更少的时间在预测上。渴望学习的人的示例有决策树,朴素贝叶斯和人工神经网络(ANN)。

构建分类器

Scikit-learn是用于机器学习的Python库,可用于在Python中构建分类器。在Python中构建分类器的步骤如下-

第1步  -  导入包

为了使用scikit-learn构建分类器,无涯教程需要将其导入。可以使用以下脚本导入它-

import sklearn

第2步  -  导入数据集

导入必要的包后,需要一个数据集来创建分类预测模型,可以从sklearn数据集中导入它,也可以根据需要使用其他一个,将使用sklearn的乳腺癌威斯康星州诊断数据库。可以在以下脚本的帮助下导入它-

from sklearn.datasets import load_breast_cancer

以下脚本将加载数据集;

data=load_breast_cancer()

还需要组织数据,可以在以下脚本的帮助下完成数据-

label_names=data[target_names]
labels=data[target]
feature_names=data[feature_names]
features=data[data]

对于数据库,以下命令将打印标签的名称"malignant(恶性)" 和"benign(良性)" 。

print(label_names)

上面命令的输出是标签的名称-

[malignant benign]

这些标签分别映射为二进制值0和1。恶性癌由0表示,良性癌由1表示。

这些标签的特征名称和特征值可以通过以下命令查看-

print(feature_names[0])

上面命令的输出是标签0的特征的名称,即恶性癌症-

mean radius

类似地,标签的特征名称可以如下产生:

print(feature_names[1])

上面命令的输出是标签1的特征的名称,即良性癌症-

mean texture

可以在以下命令的帮助下为这些标签打印函数-

print(features[0])

这将给出以下输出-

[1.799e+01 1.038e+01 1.228e+02 1.001e+03 1.184e-01 2.776e-01 3.001e-011.471e-01 2.419e-01 7.871e-02 1.095e+00 9.053e-01 8.589e+00 1.534e+026.399e-03 4.904e-02 5.373e-02 1.587e-02 3.003e-02 6.193e-03 2.538e+011.733e+01 1.846e+02 2.019e+03 1.622e-01 6.656e-01 7.119e-01 2.654e-014.601e-01 1.189e-01]

可以在以下命令的帮助下为这些标签打印函数-

print(features[1])

这将给出以下输出-

[2.057e+01 1.777e+01 1.329e+02 1.326e+03 8.474e-02 7.864e-02 8.690e-02
7.017e-02  1.812e-01 5.667e-02 5.435e-01 7.339e-01 3.398e+00 7.408e+01
5.225e-03  1.308e-02 1.860e-02 1.340e-02 1.389e-02 3.532e-03 2.499e+01
2.341e+01  1.588e+02 1.956e+03 1.238e-01 1.866e-01 2.416e-01 1.860e-01
2.750e-01  8.902e-02]

第3步  -  数据整理

由于需要在看不见的数据上测试模型,因此将数据集分为两部分:训练集和测试集,可以使用 sklearn python包的 train_test_split()函数将数据拆分为集合。以下命令将导入函数-

from sklearn.model_selection import train_test_split

现在,下一条命令会将数据分为训练和测试数据。在此示例中,无涯教程将40%的数据用于测试目的,将60%的数据用于培训目的-

train, test, train_labels, test_labels=train_test_split(features,labels,test_size=0.40, random_state=42)

第4步  -  模型判断

将数据划分为训练和测试后,程需要构建模型,为此,将使用朴素贝叶斯(Bayes)算法,以下命令将导入 GaussianNB 模块-

from sklearn.naive_bayes import GaussianNB

现在,按如下所示初始化模型-

gnb=GaussianNB()

接下来,在以下命令的帮助下,无涯教程可以训练模型-

model=gnb.fit(train, train_labels)

现在,出于判断目的,需要进行预测。可以通过如下方式使用predict()函数来完成:

preds=gnb.predict(test)
print(preds)

这将给出以下输出-

[1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 01 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 01 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 01 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0 01 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 00 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 10 0 1 1 0 1]

上面输出的0和1系列是恶性和良性肿瘤类别的预测值。

第5步  -  寻找准确性

通过比较两个数组 test_labels 和 preds ,无涯教程可以找到上一步中模型构建的准确性。将使用 accuracy_score()函数确定准确性。

from sklearn.metrics import accuracy_score
print(accuracy_score(test_labels,preds))
0.951754385965

上面的输出显示NaïveBayes分类器的准确度为95.17%。

分类算法 - 入门教程 - 无涯教程网无涯教程网提供分类可以定义为根据观测值或给定数据点预测类别的过程。分类的输出可以采用"黑色"或"...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-classification-algorithms-introduction.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/58163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB算法实战应用案例精讲-【自然语言处理】语义分割模型-DeepLabV3

目录 1、DeepLab系列简介 1.1.DeepLabV1 1.1.1创新点: 1.1.2. 动机: 1.1.3. 应对策略: 1.2.DeepLabV2 1.2.1.创新点: 1.2.2.动机 1.2.3. 应对策略: 1.3.DeepLabV3 1.3.1创新点: 1.3.2. 动机&am…

5G NR:RACH流程-- Msg1之生成PRACH Preamble

随机接入流程中的Msg1,即在PRACH信道上发送random access preamble。涉及到两个问题: 一个是如何产生preamble?一个是如何选择正确的PRACH时频资源发送所选的preamble? 一、PRACH Preamble是什么 PRACH Preamble从数学上来讲是一个长度为…

马斯克遭冷遇,Twitter更名近一个月,许多品牌仍未删除蓝鸟标志

根据报道,Twitter更名为X已经近一个月了,但许多主要品牌仍然没有完全删除其营销中的蓝鸟标志。只有宝洁这一家美国广告支出最高的公司在其网站的社交媒体联系信息中将蓝鸟换成了新的X标志。 另外,Expedia和IBM这两家公司在其网站上甚至没有显…

[C++ 网络协议] 套接字的多种可选项

目录 1. 套接字的可选项 2. 获取/设置套接字可选项 2.1 getsockopt函数(获取套接字可选项) 2.2 setsockopt函数(设置套接字可选项) 3. 常用套接字可选项 3.1 SOL_SOCKET协议层的SO_TYPE可选项 3.2 SOL_SOCKET协议层的SO_SN…

Matlab(变量与文本读取)

目录 1.变量(数据)类型转换 1.1 字符 1.2 字符串 1.3 逻辑操作与赋值 2.Struct结构体数组 2.1函数的详细介绍: 2.1.1 cell2struct 2.1.1.1 垂直维度转换 2.1.1.2 水平维度转换 2.1.1.3 部分进行转换 2.1.2 rmfield 2.1.3 fieldnames(查…

【真题解析】系统集成项目管理工程师 2022 年上半年真题卷(案例分析)

本文为系统集成项目管理工程师考试(软考) 2022 年上半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析&#x…

使用MATLAB解算炼油厂的选址

背景 记得有一年的数据建模大赛,试题是炼油厂的选址,最后我们采用MATLAB编写(复制)蒙特卡洛算法,还到了省级一等奖,这里把仅有一些记忆和材料,放到这里来,用来纪念消失的青春。 本…

curl请求https|http网站时出现Binary output can mess up your terminal

请求网站时出现​ 那么这里有几种情况 文件本身为二进制文件内容压缩 如果是第一种情况,那么直接保存你要下载的二进制文件,使用 curl https://a.com -o 文件名保存在一个文件中 或者使用 -o -直接输出在终端 curl https://a.com -o -如果你本来访问…

UE4/5的Custom节点:在VScode使用HLSL(新手入门用)

目录 custom节点 VSCode环境安装 将VSCode里面的代码放入Custom中 custom节点 可以看到这是一个简单的Custom节点: 而里面是可以填写代码的: 但是在这里面去写代码会发现十分的繁琐【按下enter后,不会换行,也不会自动缩进】 …

火山引擎发布自研视频编解码芯片

2023年8月22日,火山引擎视频云宣布其自研的视频编解码芯片已成功出片。经验证,该芯片的视频压缩效率相比行业主流硬件编码器可提升30%以上,未来将服务于抖音、西瓜视频等视频业务,并将通过火山引擎视频云开放给企业客户。 火山引…

【网络】多路转接——五种IO模型 | select

🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! 五种IO模型 | select 🍧五种IO模型🍧select🧁认识接口&#x1f9c1…

视频中的声音怎么提取出来?这样做提取出来很简单

提取视频中的声音可以有多种用途。例如,我们可能希望从视频中提取音乐或音效,以在其他项目中使用。或者,可能需要将视频中的对话转录为文本,以便更轻松地编辑和共享内容。无论目的是什么,提取视频中的声音都可以帮助我…

调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件

写文件如下 #include <iostream> #include <Windows.h>typedef HANDLE(WINAPI* CreateFileAFunc)(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);DWORD MyGetProcAddress(_In_ HMODULE hModule,_In_ LPCSTR lpProcName ){PIMAGE_DOS_HEADE…

Mycat教程+面试+linux搭建

目录 一 MyCAT介绍 二 常见的面试题总结 三 linux下搭建Mycat 一 MyCAT介绍 1.1. 什么是MyCAT&#xff1f; 简单的说&#xff0c;MyCAT就是&#xff1a; 一个彻底开源的&#xff0c;面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 一个可…

uni-app里使用webscoket

实现思路和vue中是一样的。如果想看思路可以看这篇文章&#xff1a;websocket 直接上可以运行的代码&#xff1a; 一、后端nodeJS代码&#xff1a; 1、新建项目文件夹 2、初始化项目&#xff1a; npm init -y 3、项目里安装ws npm i ws --save 4、nodeJS代码&#xff1…

SmartInspect Professional .Net Delphi Crack

SmartInspect Professional .Net & Delphi Crack SmartInspect Professional是一个用于调试和跟踪.NET、Java和Delphi软件的高级日志记录工具。它使您能够识别错误&#xff0c;找到客户问题的解决方案&#xff0c;并让您清楚地了解软件在不同环境和条件下的工作方式。可以轻…

Redis 7 第三讲 数据类型 进阶篇

⑥ *位图 bitmap 1. 理论 由0和1 状态表现的二进制位的bit 数组。 说明:用String 类型作为底层数据结构实现的一种统计二值状态的数据类型 位图本质是数组,它是基于String 数据类型的按位操作。该数组由多个二进制位组成,每个二进制位都对应一个偏…

3、监测数据采集物联网应用开发步骤(3)

监测数据采集物联网应用开发步骤(2) 系统整体结构搭建 新建项目 输入项目名称&#xff1a;MonitorData 所谓兵马未动粮草先行&#xff0c;按下图创建好对应的模块备用&#xff1a; com.plugins 业务插件模块 com.zxy.adminlog 日志或文本文…

基于python+pyqt的opencv汽车分割系统

目录 一、实现和完整UI视频效果展示 主界面&#xff1a; 识别结果界面&#xff1a; 查看分割处理过程图片界面&#xff1a; 二、原理介绍&#xff1a; 加权灰度化 ​编辑 二值化 滤波降噪处理 锐化处理 边缘特征提取 图像分割 完整演示视频&#xff1a; 完整代码链…

计算机竞赛 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xf…