大工20秋《数据挖掘》大作业.docx
- 文档编号:76735
- 上传时间:2022-10-02
- 格式:DOCX
- 页数:6
- 大小:18.61KB
大工20秋《数据挖掘》大作业.docx
《大工20秋《数据挖掘》大作业.docx》由会员分享,可在线阅读,更多相关《大工20秋《数据挖掘》大作业.docx(6页珍藏版)》请在冰豆网上搜索。
学习中心:
专业:
计算机科学与技术年级:
2020年秋季学号:
学生:
1.谈谈你对本课程学习过程中的心得体会与建议?
本学期数据挖掘的课程学习对我来说也是收获颇丰的,当今社会数据的价值不言而喻,通过数据的分析挖掘和处理建模,小到可以预测用户的购物行为和使用习惯为企业提供产品设计思路,分析用户心理从而创造出更加方便智能的产品,还可以极大的方便普通人的生活,大到可以为政府领导决策提供可靠的数据依据。
随着互联网技术的不断发展数据的价值也慢慢体现了出来,但是面对海量复杂的数据如何有效的进行分析汇总如何让数据能够创造价值,这就关联到了数据挖掘这门课程了,数据挖掘是基于Python这门语言来具体实现的,通过对这门编程语言的学习,从基本概念到具体的语法再到框架我们都经过了一个系统的学习,最终也通过具体的项目去融会贯通之前所学到的知识,数据挖掘课程是理论性和实践性都很强的一门学习,通过这门课程的学习让我对数据价值有了一个全新的认识。
相信以后肯定会更多的使用到的。
2.Knn 算法原理以及python实现
1.Knn 算法介绍:
KNN(K-NearestNeighbor)算法,KNN算法是一种有监督的分类算法,输
入同样为样本特征值向量以及对应的类标签,输出则为具有分类功能的模型,
能够根据输入的特征值预测分类结果。
核心原理就是,与待分类点最近的K个
邻居中,属于哪个类别的多,待分类点就属于那个类别。
2.Knn算法流程:
KNN算法模型主要有三要素构成:
距离度量,k值的选择和分类的决策规则。
KNN分类算法的思路很简洁,实现也很简洁,具体分三步:
1)找K个最近邻。
KNN分类算法的核心就是找最近的K个点,选定度量距离的方法之后,以待分类样本点为中心,分别测量它到其他点的距离,找出其中的距离最近的“TOPK”,这就是K个最近邻。
2)统计最近邻的类别占比。
确定了最近邻之后,统计出每种类别在最近邻中的
占比。
3)选取占比最多的类别作为待分类样本的类别。
3.Knn算法实现:
3.1手写数字识别
1)数据加载:
我们可以直接从sklearn中加载自带的手写数字数据集;
2)准备阶段:
通过可视化的方式来查看图像的呈现。
通过数据规范化可以让数据都在同一个数量级的维度。
将全部的图像数据作为特征值矩阵;3)分类阶段:
通过训练可以得到分类器,然后用测试集进行准确率的计算。
knn分类器的常用构造参数有:
1).n_neighbors代表邻居的数量。
2).weights:
代表所有邻居的权重,其中uniform代表所有邻居权重相同,
distance代表权重是距离的倒数。
还可以自定义。
3).algorithm:
计算邻居的方法,auto代表根据数据的情况自动选择,kd_tree是kd树,适用于维数不超过20的情况。
ball_tree是球树,可以用于维度更大的情况。
brute是暴力搜索。
4).leaf_size:
是kd树或者球树的叶子数量,默认是20.
3.2sklearn代码实现
fromsklearn.model_selectionimporttrain_test_splitfromsklearnimportpreprocessing
fromsklearn.metricsimportaccuracy_scorefromsklearn.datasetsimportload_digits
fromsklearn.neighborsimportKNeighborsClassifierimportmatplotlib.pyplotasplt
#加载数据
digits=load_digits()data=digits.data
#数据探索print(data.shape)
#查看第一幅图像print(digits.images[0])
[[0.0.5.13.9.1.0.0.][0.0.13.15.10.15.5.0.][0.3.15.2.0.11.8.0.][0.4.12.0.0.8.8.0.][0.5.8.0.0.9.8.0.][0.4.11.0.1.12.7.0.][0.2.14.5.10.12.0.0.][0.0.6.13.10.0.0.0.]]
#第一幅图像代表的数字含义print(digits.target[0])
0
#将第一幅图像显示出来plt.gray()plt.imshow(digits.images[0])plt.show()
#分割数据,将25%的数据作为测试集,其余作为训练集
train_x, test_x, train_y, test_y = train_test_split(data,digits.target,test_size=0.25,random_state=33)
#采用Z-Score规范化
ss=preprocessing.StandardScaler()train_ss_x=ss.fit_transform(train_x)test_ss_x=ss.transform(test_x)
#创建KNN分类器
knn=KNeighborsClassifier(n_neighbors=4)knn.fit(train_ss_x,train_y)
predict_y=knn.predict(test_ss_x)
print("KNN准确率:
%.4lf"%accuracy_score(test_y,predict_y))KNN准确率:
0.9733
代码中,我使用了train_test_split做数据集的拆分,使用matplotlib.pyplot工具包显示图像,使用accuracy_score进行分类器准确率的计算,使用preprocessing中的StandardScaler和MinMaxScaler做数据的规范化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据挖掘 大工 20 数据 挖掘 作业