分类模型 第1篇:分类模型概述[通俗易懂]

分类模型 第1篇:分类模型概述[通俗易懂]机器学习主要用于解决分类、回归和聚类问题,分类属于监督学习算法,是指根据已有的数据和标签(分类的类别)进行学习,预测未知数据的标签。分类问题的目标是预测数据的类别标签(classlabel),可以把

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

机器学习主要用于解决分类、回归和聚类问题,分类属于监督学习算法,是指根据已有的数据和标签(分类的类别)进行学习,预测未知数据的标签。分类问题的目标是预测数据的类别标签(class label),可以把分类问题划分为二分类和多分类问题。二分类是指在两个类别中选择一个类别,在二分类问题中,其中一个类别称作正类(positive class),另一个类别称作负类(negative class),比如判断垃圾邮件。多分类问题是指从多个分类中选择一个类别。

一,分类的一般步骤

总体来说,数据分类是一个二阶段的过程,第一个阶段是学习阶段,用于训练分类模型,第二个阶段是预测阶段,使用模型预测新数据的类标签。此外,由于现实生活中的数据不是完美的,在开始训练模型之前,需要对数据进行预处理。在模型构建之后,还需要对模型进行评估和调参,选择最优的参数,达到最优的分类效果。

举个例子,下面的代码实现了一个最简单的knn分类器,没有对数据进行预处理,也没有对模型进行评估和调参。从代码中可以看出,knn分类模型是由两部分构成的:第一部分是拟合数据(fit),也就是训练模型,第二部分是预测数据(predict)。

from sklearn.neighbors import KNeighborsClassifier

x_train = [[0], [1], [2], [3]]
y_train = [0, 0, 1, 1]

#train the model
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(x_train,y_train)

#predict a new data point
x_new=[[1.1]]
y_pred=knn.predict(x_new)
print('predict:{0}'.format(y_pred))

二,训练数据

训练数据是已标记的数据,由数据元组和其关联的类标签构成,训练集的一个数组元组可以表示为:[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]],其类标签表示为:[‘a’,’b’,’c’]。元组中的每个字段叫做数据的特征,或属性;类标号是指该数据元组的类别。

其实分类问题,可以看作一个公式 y=f(x),分类模型通过从训练集中学习来构造分类器,即从训练集中学习,获得y=f(x)这个公式(模型),对于新的数据a,f(a)就是预测的结果。

在机器学习中,数据元组也称为样本、数据点或对象。数据在应用到模型之前,需要对数据进行预处理,数据预处理主要是指特征选择、数值处理等。

三,分类的算法模型

sklearn中的分类估计器(Estimator)指的是分类的算法模型,用于对数据进行分类,sklearn的分类算法有:knn、贝叶斯、决策树等算法。

估计器主要由拟合(fit)和预测(predict)构成:

  • fit(x,y):拟合,传入数据以及标签用于训练模型,训练的时间跟算法的参数设置、数据集的大小以及数据本身的特点有关
  • predict(x):预测,用于对新数据进行预测,该方法接受一个数据点,输出该数据点的预测标签。通常使用该方法返回测试的结果,再将这个结果用于评估模型。

四,分类模型的评估

分类模型的评估由模型的正确率和预测的不确定度构成:

  • score(x,y):模型的正确率,用于对模型的正确率进行评分(范围0-1),计算公式是:count(预测正确的数据点)/总的数据点数量
  • predict_prob(x):每个类别的概率,表示预测的置信度。

在评估模型时,不能仅仅限于模型的正确率(score),由于在不同的问题下,评判模型优劣的的标准不限于简单的正确率,可能还包括召回率或者是查准率等其他的指标,特别是对于类别失衡的样本,准确率并不能很好的评估模型的优劣,因此在对模型进行评估时,不要轻易的被score的得分蒙蔽。

关于分类模型评估的详细信息,请阅读sklearn的官方文档:《3.3. Model evaluation: quantifying the quality of predictions

 

参考文档:

1. Supervised learning

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167691.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 你的windows许可证即将过期需要在设置中激活windows_windows10许可证即将过期

    你的windows许可证即将过期需要在设置中激活windows_windows10许可证即将过期首先:按Win+R,输入slmgr.vbs-dlv或 slmgr/xpr ,回车,查询Windows的激活信息方法一:KMS激活(工具百度一下,自己找)方法二:通过kms

    2022年8月4日
    8
  • HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    2021年10月14日
    56
  • Lamp架构_lamp服务器

    Lamp架构_lamp服务器LAMP架构搭建1.LAMP架构简介所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建

    2022年10月17日
    3
  • php ora01017,使用dblink出现ORA-01017

    php ora01017,使用dblink出现ORA-01017本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明是对的。SQL>createdatabaselinkDBLINK_TESTconnecttotestidenti…

    2022年5月31日
    48
  • 敏捷软件开发 原则_敏捷方法论

    敏捷软件开发 原则_敏捷方法论《敏捷软件开发》读书分享由于书是由英文书籍翻译,读起来会难免拗口,本次分享是由《敏捷软件开发》结合网上相关资料总结而成。传统的瀑布式开发瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致…

    2025年6月28日
    2
  • choropleth map_Mapsource

    choropleth map_Mapsource简介MapStruct是满足JSR269规范的一个Java注解处理器,用于为JavaBean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。您所要做的就是定义一个mapper接口(@Mapper),该接口用于声明所有必须的映射方法。在编译期间MapStruct会为该接口自动生成实现类。该实现类使用简单的Java方法调用来映射source-target对象,在此过程中没有反射或类似的行为发生。性能优点与手工编..

    2025年7月24日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号