分类模型 第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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest报错_pycharm git使用

    pytest报错_pycharm git使用前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年8月6日
    7
  • idea20212.3的安装和激活教程破解方法

    idea20212.3的安装和激活教程破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    49
  • linux tar.gz zip 解压缩 压缩命令

    linux tar.gz zip 解压缩 压缩命令

    2021年12月10日
    38
  • java中sqrt函数的详解[通俗易懂]

    java中sqrt函数的详解[通俗易懂]一、原理:牛顿迭代法具体解释:牛顿迭代法求平方根那我们怎么用牛顿迭代法呢?首先要明白,牛顿迭代法求的是函数和X轴的交点的横坐标,也就是我们说的根1)那么第一步就是构建曲线了。假设有一个数c,我们求它的平方根x,那么有一个等式,x^2=c;挪到一边就是求f= x^2-c的根x2)带入上面的公式也就是 3)既然是个迭代,那么

    2022年5月7日
    76
  • eclipse添加git插件(eclipse git使用教程)

    想必现在搞互联网编程的人没有人没有听过编程协作工具git了吧,命令行下面操作非常方便,功能也非常的强大。但是对于java编程的人员,eclipse肯定是他们编程的神器(肯定是首选),那么如何在eclipse里面使用git了?今天就来念叨念叨这事。

    2022年4月10日
    76
  • linux vlc乱码,一劳永逸解决VLC播放中文字幕乱码问题

    linux vlc乱码,一劳永逸解决VLC播放中文字幕乱码问题VLC对于Mac/Ubuntu用户来说算得上是必备软件。其相当于PC机上的“暴风影音”,但Mac/Ubuntu的新手使用VLC播放avi时都会碰到字幕乱码的问题。avi字幕的格式有多种,这里假设你使用常见的.srt字幕。VLC默认支持的字幕内码为utf-8,而网上提供的.srt字幕基本上都是GBK码,所以在初装VLC后的默认状态下,加载.srt字幕都会出现乱码。本教程以当前最新的VLC1.1…

    2022年7月11日
    35

发表回复

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

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