人工稚能之sklearn分类

Sklearn工具包及模型评估 一、Sklearn工具包介绍   scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。   官网:https://scikit-learn.org/stable/index.html 1、常用模块   Skle... 阅读详情

640?wx_fmt=jpeg


分类算法和聚类比较类似,都是将输入数据赋予一个标签类别。区别是分类算法的分类是预先确定的,有明确含义的。而聚类的标签是从输入数据本身的分布中提取出来的一种抽象的类别。聚类是无监督算法,而分类是有监督的,除了输入数据x外,还有标签y。

640?wx_fmt=jpeg

分类算法和回归算法也有类似之处,它们都是有监督算法。区别是回归算法预测的是连续值,而分类算法预测的是离散的预定义的类别。

640?wx_fmt=jpeg

分类算法同样分为线性分类和非线性分类算法,线性可分是指可以用二维空间的直线或者多维空间的平面将输入数据分开,非线性就是线性不可分。

640?wx_fmt=jpeg

分类算法非常繁多,朴素贝叶斯分类是其中一种常见的分类算法,它是基于贝叶斯概率推导出来的算法。该算法在垃圾文本分类中使用非常广泛。虽然贝叶斯概率公式并不复杂,但是理解它也需要有一定的概率数学基础。本篇就不做详细推导解释。

sklearn的naive_bayes算法提供了三种实现,BernoulliNB、MultinormialNB和GaussianNB,BernoulliNB适合抛硬币这种0/1型布尔输入,MultinormialNB适合文章中的单词数量这种数量型输入,而最后一个GaussianNB适合本例中连续性数字输入。

接下来我们使用sklearn提供的GaussianNB模块体验一下朴素贝叶斯分类算法。

首先我们构造出一些随机数据点。

# -*- coding: utf-8 -*-
import random
import matplotlib.pyplot as plt k = 5
# 颜色标签
colors = ['green', 'red', 'blue', 'yellow', 'pink']
# 先随机出中心点
centers = []
for i in range(k):    x = 10 + 100 * random.random()    y = 10 + 100 * random.random()    centers.append((x, y))

points = []
# 然后在每个中心点的周围随机100个点
for ci, (x, y) in enumerate(centers):    ps = []    for i in range(100):        px = x + random.random() * 20 - 10        py = y + random.random() * 20 - 10        ps.append((px, py))        points.append(((px, py), ci))    # 显示数据点    plt.scatter(        [x for x, y in ps],        [y for x, y in ps],        c=colors[ci], marker='.')

640?wx_fmt=jpeg

然后我们使用模型来预测所有网格点的颜色

# -*- coding: utf-8 -*-
import random
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB k = 5
# 颜色标签
colors = ['green', 'red', 'blue', 'yellow', 'pink']
# 先随机出中心点centers = []
for i in range(k):    x = 10 + 100 * random.random()    y = 10 + 100 * random.random()    centers.append((x, y))

points = []
# 然后在每个中心点的周围随机100个点
for ci, (x, y) in enumerate(centers):    ps = []    for i in range(100):        px = x + random.random() * 20 - 10        py = y + random.random() * 20 - 10        ps.append((px, py))        points.append(((px, py), ci))    # 显示数据点    plt.scatter(        [x for x, y in ps],        [y for x, y in ps],        c=colors[ci], marker='.')

model = GaussianNB()
# 拟合输入
model.fit([p for p, ci in points], [ci for p, ci in points])

pcolors = []
# 网格点
grids = [(x, y) for x in range(0, 120, 5) for y in range(0, 120, 5)]
# 预测颜色
for i, ci in enumerate(model.predict(grids)):    pcolors.append((grids[i], ci))

# 显示带颜色的网格点
plt.scatter(    [x for (x, y), ci in pcolors],    [y for (x, y), ci in pcolors],    c=[colors[ci] for (x, y), ci in pcolors], marker='x')

plt.show()

640?wx_fmt=jpeg

640?wx_fmt=jpeg

可以看出分类的颜色块边界还是非常明细的。

如果换成BernoulliNB,就完全看不到边界。

640?wx_fmt=jpeg

再换成MultinomialNB,勉强也能接受,只是边界不够明细。

640?wx_fmt=jpeg

所以这三种算法有各自的使用场景,不能随便使用。

640?wx_fmt=png

阅读相关文章,关注公众号【码洞】

python进行文本分类,基于word2vec,sklearn-svm对微博垃圾评论分类 差不多一年前的第一个分类任务,记录一下 语料库是关于微博的垃圾用户评论,分为两类,分别在normal,和spam文件夹下。里面是很多个txt文件,一个txt是一条用户评论。 一、进行分词 利用Jieba分词和去除停用词(这里我用的是全模式分词),每一篇文档为一行 用换行拼接,得到result.txt。其中用到的停用词是在网上随便下载的。 # 对句子进行分词 def seg_senten... 阅读详情

相关推荐

基于单片机自行车码表控制系统设计

*单片机设计介绍,基于单片机自行车码表控制系统设计。

QQ2193276455的博客 1488

机器学习入门之分类算法--sklearn

【代码】机器学习入门之分类算法--sklearn。

weixin_43889121的博客 1276

【电磁场计算】磁偶极子在外磁场中的受力

最近在总结电磁场计算公式的时候发现,关于磁偶极子受力的计算公式,在不同文献中的说明有点出入,在此特地写一篇博客澄清一下。

sky4403的博客 7476

Python机器学习库sklearn几种分类算法建模可视化(实验)

sklearn官网API查询http://scikit-learn.org/stable/modules/classes.htmlscikit-learn中自带了一些数据集,比如说最著名的Iris数据集。 数据集中第3列和第4列数据表示花瓣的长度和宽度,类别标签列已经转成了数字,比如0=Iris-Setosa, 1=Iris-Versicolor, 2=Iris-Virginica.

公众号:瑞行AI 3万+

CMMI AIM 人工智能成熟度框架:31个过程域的157项AI实践集成

CMMI AIM人工智能成熟度框架为企业提供了系统化管理AI项目全生命周期的解决方案,包含31个过程域的157项AI实践。该框架通过四个演进阶段(混沌与风险、结构与凝聚、验证与信任、价值与增长),帮助组织建立可持续的AI能力成长路径,降低项目失败率并提升商业价值。

weixin_42613501的博客 355

机器学习Sklearn总结2——分类算法

一、转换器与估计器 二、分类算法 1、K-近邻算法 KNN算法总结: 优点: 简单、易于理解、易于实现、无需训练 缺点: 1)必须指定K值,K值选定不当则分类精度不能保证。 2)懒惰算法,对测试样本分类时的计算量大,内存开销大 使用场景: 小数据场景,几千~几万条样本,具体使用看业务场景。 案例代码: from sklearn.datasets import load_iris from sklearn.model_s...

qq_50909707的博客 4019

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1928

sklearn分类算法

如果一个样本在特征空间中的k个最相似(即最邻近)的样本中的大多数属于某一个类别,则该样本也属于这一个类别。PS:K值取得过小,容易受到异常点的影响K值取得过大,样本不均衡的影响标准化n_neighbors:K值"""用KNN算法对鸢尾花进行分类:return:"""# 获取数据# 划分数据集# 特征工程:标准化# KNN算法预估器# 模型评估# 直接比对真实值以及预测值print("直接比对真实值和预测值:\n",y_test == y_pretict)# 计算准确率。

weixin_49802037的博客 253

告别Win11睡眠假死:深入解析Modern Standby S0与S3冲突及注册表修复方案

本文深入解析了Windows 11中Modern Standby(S0)与传统睡眠(S3)模式的冲突,该冲突是导致电脑睡眠后出现假死、断网等问题的根源。文章提供了通过修改注册表键值(PlatformAoAcOverride)强制启用稳定S3睡眠的终极修复方案,并附有详细诊断步骤与避坑指南,帮助用户彻底解决睡眠故障。

ol789012的博客 823

云端办公文件存储与访问全攻略:选型、预算、实操一本通

随着远程办公、多设备协作成为常态,“文件云端存储、随时调用” 已成为提升办公效率的核心需求。本文从用户实际场景出发,系统拆解云端存储的选型逻辑、全场景费用预算,重点解答 “文件能否直接在线打开” 的核心疑问,并提供实操技巧与安全保障方案,覆盖个人、小团队(含兼职)、企业全维度需求,帮助不同规模用户快速搭建高效、低成本的云端办公体系。

hy行者勇哥的博客 1242

sklearn人工数据生成7大函数实战指南

人工数据生成是机器学习工程中应对数据稀缺、标注滞后与pipeline验证的关键技术,其本质是在真实数据就位前构建可控、可解释、可复现的仿真数据沙盒。核心原理在于通过参数化控制样本分布、特征结构、噪声模式与标签关系,从而模拟分类不平衡、非线性回归、流形聚类、多标签共现等典型建模挑战。该技术具备显著工程价值:加速特征工程调试、支撑算法选型对比、保障端到端pipeline正确性,并为AB测试提供基线参照。典型应用场景包括金融风控预研、工业缺陷检测冷启动、教育推荐系统冷启动及IoT设备早期算法验证。本文聚焦scik

weixin_33739523的博客 351

AI测试入门:基于 RAG 的 LLM 应用程序的测试方法「详细介绍」

一个典型的 RAG 架构包括一个检索器(对知识库进行矢量搜索检索上下文的组件)和一个生成器(从检索器中获取检索上下文以构建提示并生成自定义 LLM 响应作为最终输出的组件)。在大多数情况下, 知识库”由存储在向量数据库(如 ChromaDB)中的向量嵌入组成。

blues_C的博客 1872

人工稚能之sklearn数据降维

机器学习模型拟合的输入数据往往是多维数据,这个维度可能会非常庞大。比如统计一篇文章中的单词频率,就可以把文章看成单词的向量。而单词的数量又是非常庞大,每个单词都是一个维度...

codehole_的博客 176

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

sklearn中分类器的比较

简 介: 运行对比了 分类器的比较? 中的sklearn中的分类的性能对比。这为我们理解机器学习中的特性提供了理解基础。 关键词: sklearn,python #mermaid-svg-6CSlpnJ50BvkWRP4 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-6CSlpnJ50BvkWRP4 .l..

TSINGHUAJOKING 4853

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

机器学习:sklearn样本生成器,make_blob(), make_classification()

scikit-learn 包括各种随机样本的生成器,可以用来建立可控制的大小和复杂性人工数据集。 一、分类和聚类样本生成器 1.make_blob() 对于中心和各簇的标准偏差提供了更好的控制,可用于演示聚类。 sklearn.datasets.make_blobs(n_samples=100,n_features=2,centers=None,cluster_std=1.0,ce...

JacksonKim的博客 4580

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

多分类模型评估:混淆矩阵详解与sklearn实战避坑指南

多分类模型评估是机器学习落地的关键环节,其核心在于超越单一准确率,深入理解每个类别的精度、召回率与F1分数。混淆矩阵作为基础工具,本质是N个二分类问题的并行映射,需明确‘以谁为正类’的视角切换。在类别不均衡、标注噪声大、业务强约束的工业场景中,micro/macro/weighted平均策略直接影响模型可信度判断;sklearn的confusion_matrix与classification_report存在标签顺序错位、one-hot误用、缺失类别静默截断等高频陷阱。本文结合37个真实模型调优经验,系统解

congju3179的博客 462

人工分类和逻辑分类

人工分类 重要点: 分类的意义,什么样的业务属于分类,分类的意义是什么? 如何绘制分类均线? 特征1 特征2 输出 3 1 0 2 5 1 1 8 1 6 4 0 5 2 0 3 5 1 4 7 1 4 -1 0 … … … 6 8 1 5 1 0 分类均线的绘制: 将空间分为很多个小格子,然后通过样本去预测每个格子应该属于哪一类,然...

python_LC_nohtyp的博客 411

基于sklearn的分类器实战

已迁移到我新博客,阅读体验更佳基于sklearn的分类器实战 完整代码实现见github:click me 一、实验说明 1.1 任务描述 1.2 数据说明 一共有十个数据集,数据集中的数据属性有全部是离散型的,有全部是连续型的,也有离散与连续混合型的。通过对各个数据集的浏览,总结出各个数据集的一些基本信息如下: 连续型数据集: 1. diabets(4:8d-2c) 2. moz...

weixin_34380296的博客 847

sklearn.datasets.make_*系列全解析:人工数据集的生成与可视化

本文全面解析了sklearn.datasets模块中以make_*开头的人工数据集生成函数,包括make_blobs、make_classification、make_moons和make_circles等。这些函数能够创建具有特定特性的数据集,适用于算法测试和教学演示。文章详细介绍了每个函数的功能参数配置,并通过可视化示例展示了不同函数生成的数据集特征,如线性可分、非线性可分以及复杂分类数据集,为机器学习实践提供了丰富的数据生成工具。这些人工数据集特别适合算法性能测试、教学演示和快速原型开发等场景。

qq_37179440的博客 694

深入解析sklearn的make_classification:从参数调优到分类任务实战

本文深入解析了sklearn的make_classification函数,详细介绍了其核心参数如何控制分类样本数据的规模、难度与噪声,并通过实战案例演示了从生成定制化数据集到模型训练、评估的完整流程。掌握该工具能有效模拟真实数据场景,是算法测试与教学的利器。

l6m7n8的博客 431

【sklearn】多标签数据集-精讲篇

摘要:工欲善其事,必先利其器。本文介绍了scikit-learn中常用的数据生成方法,包括make_blobs、make_classification等单标签数据集生成工具。这些方法可以创建不同复杂度的人工数据集,用于分类、聚类等任务测试。并通过可视化展示不同生成器产生的数据分布特点。实际上scikit-learn内置了很多可以用于机器学习的数据,用于 回归任务,这些数据集-线性回归,逻辑回归,SVM支持向量机,随机森林,决策树等大模型等分类,识别和预测,适用于 机器学习算法测试和特征工程研究。

精益求精 1084
上一篇: 人工不智能之sklearn聚类
下一篇: 人工稚能之sklearn数据降维
codehole_
博客等级 码龄7年 34粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值