1.
分类与聚类的本质区别?
二者的本质区别是:对受众的标签类别是已知还是未知!
具体解释就是,分类对受众标签类别是已知的。即事先定义的类别,类别数量,甚至类别间的层级关系都是已知的。然后利用训练和学习完的模型把数据库中的未分类数据项,根据特征或属性映射到给定类别中的某一类中;而聚类则对受众标签类别是未知的。即没有事先预定的类别,类别数也不确定。只是根据“物以类聚”的原理,通过对算法判断规则的调整将具有相似特征的数据聚成一类。
简单地说,分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。
简单地说,聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。
区别是,分类是事先定义好类别 ,类别数不变 。分类器需要由人工标注的分类训练语料训练得到,属于有指导学习范畴。聚类则没有事先预定的类别,类别数不确定。 聚类不需要人工标注和预先训练分类器,类别在聚类过程中自动生成 。分类适合类别或分类体系已经确定的场合,比如按照国图分类法分类图书;聚类则适合不存在分类体系、类别数不确定的场合,一般作为某些应用的前端,比如多文档文摘、搜索引擎结果后聚类(元搜索)等。
什么是监督学习与无监督学习?
监督学习(supervised learning):通过已有的训练样本(即已知数据以及其对应的输出)来训练,从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果,对输出结果进行简单的判断从而实现分类的目的。
无监督学习(unsupervised learning):我们事先没有任何训练数据样本,需要直接对数据进行建模。
2.朴素贝叶斯分类算法
3.编程实现朴素贝叶斯分类算法
from sklearn.datasets import load_iris iris = load_iris() iris.data[55] iris.target[55] from sklearn.naive_bayes import GaussianNB gnb = GaussianNB() gnb.fit(iris.data,iris.target) gnb.predict([[5.5,2.0,4.5,1.3]])