定义
分类算法的本意就是对我们的数据分进行分类。把它们分到已知的每一个类别。就像一个篮子里面有很多橙子和苹果,机器会通过我们训练出来的模型,对篮子里的水果进行分类。比如:红色 = 苹果,橙色 = 橙子。若要让机器直到这种规则,我们就需要一定量的带标签的“红/橙”标签的数据。然后让模型学习,噢,原来是这种分类规则。
所以分类算法往往需要“带标签”的数据。它是一个监督学习的过程。目标数据都有哪些特征以及这些特征对应什么标签都必须是已知的。然后模型会遍历每一笔数据,最终得到我们我们所认为的规则。所以分类算法往往拥有更精确的计算结果。只是数据的局限性更高,若无法满足的话,我们则需要考虑聚类分析。
分类与聚类
这里的对比其实是复制我的另外一篇文章。(【聚类算法】什么是聚类)
对比项 | 分类 | 聚类 |
---|---|---|
基础 | 将数据分类为众多已定义的确定类之一 | 此函数将数据映射到多个集群中的一个集群,其中数据项的排列依赖于它们之间的相似性。 |
类型 | 监督学习 | 非监督学习 |
训练集 | 需要 | 不需要 |
分类过程
- 数据准备 - 准备你要分类的数据。这些数据必须要带标签的
- 数据分类 - 把数据划分成训练集和测试集。这里有很多种划分规则。(后续我就训练集与测试集的划分分享一篇文章,敬请期待)
- 训练模型 - 把训练集数据传进模型当中,让模型直到我们需要的规则。
- 测试模型 - 使用测试集测试模型的效果,并调整模型
- 输出模型 - 把训练好的模型打包并输出
方法
分类的方法有很多。但很多都是从线性回归为基础拓展出来的,比如逻辑回归。这里稍微预告一下我会分享的分类算法:
- 逻辑回归
- 支持向量机(SVM)
- KNN
- 决策树
- 随机森林
- Xgboots
- 贝叶斯
- 神经网络(这个有难度,希望能分享)
点我阅读更多算法分享