实验四、数据挖掘之KNN,Naive Bayes

一、实验目的

1. 掌握KNN的原理

2. 掌握Naive Bayes的原理

3. 学会利用KNN与Navie Bayes解决分类问题

二、实验工具

1. Anaconda

2. sklearn

三、实验简介

1. KNN

KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类对应的关系。输入没有标签的数据后,将新数据中的每个特征与样本集中数据对应的特征进行比较,提取出样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k近邻算法中k的出处,通常k是不大于20的整数。最后选择k个最相似数据中出现次数最多的分类作为新数据的分类。

说明:KNN没有显示的训练过程,它是“懒惰学习”的代表,它在训练阶段只是把数据保存下来,训练时间开销为0,等收到测试样本后进行处理。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2. Navie Bayes

朴素贝叶斯分类器中最核心的便是贝叶斯准则,他用如下的公式表示:

p(c|x)= \frac{p(x|c)p(c)}{p(x)}p(cx)=p(x)p(xc)p(c)

在机器学习中,朴素贝叶斯分类器是一个基于贝叶斯定理的比较简单的概率分类器,其中 naive(朴素)是指的对于模型中各个 feature(特征) 有强独立性的假设,并未将 feature 间的相关性纳入考虑中。

朴素贝叶斯分类器一个比较著名的应用是用于对垃圾邮件分类,通常用文字特征来识别垃圾邮件,是文本分类中比较常用的一种方法。朴素贝叶斯分类通过选择 token(通常是邮件中的单词)来得到垃圾邮件和非垃圾邮件间的关联,再通过贝叶斯定理来计算概率从而对邮件进行分类。

四、实验内容

1. 利用KNN对鸢尾花数据进行分类。

(1) 调用数据的方法如下:

from sklearn.datasets import load_iris iris = load_iris()# 从sklearn 数据集中获取鸢尾花数据。

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第1张
(2)数据进行KNN分类

首先导入鸢尾花数据集

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第2张

获取并划分数据集

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第3张

声明训练并评价模型

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第4张

进行样本测试

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第5张

2. 利用Navie Bayes对鸢尾花数据建模

《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第6张
输出测试样本在各个类标记上预测概率值对应对数值,
返回测试样本映射到指定类标记上的得分(准确率).
《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes 人工智能 第7张

3. 不使用sklearn中的分类方法,自己编写KNN程序(建议用python语言),并对鸢尾花数据进行分类。

4. (选做) 不使用sklearn中的分类方法,自己编写Navie Bayes程序(建议用python语言),并对鸢尾花数据进行分类。

五、实验总结(写出本次实验的收获,遇到的问题等)

本次实验自主学习探索了sklearn中GaussianNB建模和KNeighborsClassifier分类。调用封装的方法实现了模型的训练以及测试。
但是对knn理解程度不够,已经Python语言掌握不熟,未能自行实现knn程序的编写对鸢尾花进行分类,需要加强学习!

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄