分享
分销 收藏 举报 申诉 / 14
播放页_导航下方通栏广告

类型数据挖掘实训报告-.doc

  • 上传人:仙人****88
  • 文档编号:12023425
  • 上传时间:2025-08-29
  • 格式:DOC
  • 页数:14
  • 大小:274KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据 挖掘 报告
    资源描述:
    项目1:基于sklearn的数据分类挖掘 一、项目任务 ①熟悉sklearn数据挖掘的基本功能。 ②进行用朴素贝叶斯、KNN、决策树C4.5、SVM算法进行数据分类分析。 二、项目环境及条件 Ø sklearn-0.18.0 Ø python-2.7.13 Ø numpy-1.11.3+mkl-cp27-cp27m-win_amd64 Ø scipy-0.19.0-cp27-cp27m-win_amd64 Ø matplotlib-1.5.3-cp27-cp27m-win_amd64 三、实验数据 Iris数据集 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。 Digits数据集 美国著名数据集NIST的子集,模式识别常用实验数据集,图像属于灰度图像。分辨率为8x8 四、项目内容及过程 1.读取数据集 从sklearn中读取iris和digits数据集并测试打印 from sklearn import datasets iris = datasets.load_iris() digits = datasets.load_digits() print 'iris:',iris.data,'\ndigits:',digits.data 打印的数据集存在numpy.ndarray中,ndarray会自动省略较长矩阵的中间部分。 Iris数据集的样本数据为其花瓣的各项属性 Digits数据集的样本数据为手写数字图像的像素值 2.划分数据集 引入sklearn的model_selection使用train_test_split划分digits数据集,训练集和测试集比例为8:2 from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.2) print 'x_train:',x_train,'\nx_test:',x_test,'\ny_train:',y_train,'\ny_test:',y_test 3.使用KNN和SVM对digits测试集分类 引用sklearn的svm.SVC和neighbors.KNeighborsClassifier模块调用算法,使用classification_report查看预测结果的准确率和召回率 from sklearn.metrics import classification_report from sklearn import neighbors clf = neighbors.KNeighborsClassifier() clf.fit(x_train,y_train) y_pred=clf.predict(x_test) print classification_report(y_test, y_pred) from sklearn.svm import SVC clf = SVC() clf.fit(x_train,y_train) y_pred=clf.predict(x_test) print classification_report(y_test, y_pred) KNN的预测结果:所有数字的预测正确率几乎达到了100% SVM的预测结果:对部分数字的预测误差较大,基本情况不如KNN 考虑SVM分类器的特性,在分类前对特征值进行标准化后再分类: from sklearn import preprocessing min_max_scaler = preprocessing.MinMaxScaler() x_train = min_max_scaler.fit_transform(x_train) x_test = min_max_scaler.fit_transform(x_test) 标准化数据后SVM的预测结果达到了KNN的准度: 4.使用贝叶斯和决策树对iris数据集分类 from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4) from sklearn.metrics import classification_report from sklearn import naive_bayes clf = naive_bayes.GaussianNB() clf.fit(x_train,y_train) y_pred=clf.predict(x_test) print classification_report(y_test, y_pred) from sklearn import tree clf = tree.DecisionTreeClassifier() clf.fit(x_train,y_train) y_pred=clf.predict(x_test) print classification_report(y_test, y_pred) 决策树和贝叶斯都有较好的分类效果 五、实验结果分析 为什么用svm和knn处理digits数据集,用tree和bayes处理iris数据集,这是一个经验问题。 我们都知道digits数据集的每一个特征就是像素点的像素值,他们的维度都是在0~255以内;像素点之间的维度完全一致,互相没有优先级。这种情况下使用线性分类器如KNN、SVM、Logistic会有更好的效果。 而iris数据集虽然长度和宽度维度差不多相同,但是两者之间有优先级的区分,按照人脑分类的思维方式可能是先按照长度判断再按照宽度等思维方式,很接近决策树的算法原理,贝叶斯同样。所以概率性分类器有更好的效果。 实际情况也是使用SVM预测iris的结果和Bayes预测digits的结果不甚理想(虽然也有很高的准度了)。 当然,通过调整分类器的参数,能使各个分类器的预测结果都达到满意结果,综合表现还是KNN更抢眼,能在各种数据集面前都有出色表现,但KNN在训练样本数量达到一定程度后,有超高的计算复杂度。所以面对实际情况,选用什么分类器,如何调节参数都是值得深思的问题。 项目2:基于sklearn的数据聚类挖掘 一、实验任务 ①熟悉sklearn数据挖掘平台的基本功能。 ②用K-Means进行数据聚类分析。 二、实验环境及条件 Ø sklearn-0.18.0 Ø python-2.7.13 Ø matplotlib-1.5.3-cp27-cp27m-win_amd64 Ø numpy-1.11.3+mkl-cp27-cp27m-win_amd64 Ø scipy-0.19.0-cp27-cp27m-win_amd64 三、实验数据 随机产生的100个坐标点,范围为[0,100] 四、实验内容及过程 1.随机产生坐标值 产生的随机值在0-100,因为sklearn的k-means模块要求输入的坐标形式为[[x0,y0],…,[x…,y…],…,[xn,yn]],而实际产生的是[x0,…,xn]和[y0,…,yn],所以还需要对坐标进行一次转换 from sklearn.cluster import KMeans import numpy as np import matplotlib.pyplot as plt import random def create_coordinate(): x,y=[],[] for i in range(100): x.append(random.randint(0,100)) y.append(random.randint(0,100)) return x,y x,y=create_coordinate() old_coordinate=[[x[i],y[i]] for i in range(100)] coordinate=np.array(old_coordinate) print old_coordinate 产生的随机坐标值: 2.创建做图函数 使用k-means对坐标点分为3类,对0类标为红色,1类标为绿色,2类标为蓝色。并将三类坐标的中心点以‘*’表示在图中 def create_chart(x,y,label,center): x_0=[x[i] for i in range(len(x)) if label[i]==0] x_1=[x[i] for i in range(len(x)) if label[i]==1] x_2=[x[i] for i in range(len(x)) if label[i]==2] y_0=[y[i] for i in range(len(y)) if label[i]==0] y_1=[y[i] for i in range(len(y)) if label[i]==1] y_2=[y[i] for i in range(len(y)) if label[i]==2] plt.scatter(x_0,y_0,c='r') plt.scatter(x_1,y_1,c='g') plt.scatter(x_2,y_2,c='b') plt.scatter([i[0] for i in center],[i[1] for i in center],c='m',s=600,marker='*') plt.grid() plt.show() 3.使用k-means聚类并预测新增点的类别 kmeans = KMeans(n_clusters=3, random_state=0).fit(coordinate) print kmeans.predict([[0, 0], [50,50],[100, 100]]) create_chart(x,y,kmeans.labels_,kmeans.cluster_centers_) 对新点的预测: 2 2 1 点的聚类情况: 五、实验结果分析 这次试验,使用sklearn的k-means对100个坐标点聚类。K-means因为其本身算法的原因,点数越多聚类速度越慢。所以在20个点和100个点的聚类时间上有很大差距。 聚类问题不同于分类问题,没有明确的预测和分类结果,聚类时对数据的边界可能会各不相同,聚类问题在用户画像/个性化推荐等应用上有较好地发挥。 实验3:在Python程序中引用sklearn 一、实验任务 ①用Python开发一个综合部分挖掘算法的演示程序,核心算法来自sklearn类库。 ②演示程序界面友好。 二、实验环境及条件 Ø sklearn-0.18.0 Ø python-2.7.13 Ø matplotlib-1.5.3-cp27-cp27m-win_amd64 Ø numpy-1.11.3+mkl-cp27-cp27m-win_amd64 Ø scipy-0.19.0-cp27-cp27m-win_amd64 Ø PyQt4 三、实验数据 Iris数据集 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。 Digits数据集 美国著名数据集NIST的子集,模式识别常用实验数据集,图像属于灰度图像。分辨率为8x8 四、实验内容及过程 使用PyQt4创建windows窗体,并提供可选择的分类方式: Ø SVM——支持向量机算法 Ø KNN——K邻近算法 Ø Bayes——朴素贝叶斯算法 Ø Tree——C4.5决策树算法 Ø Logistic——Logistic回归算法 可选择的归一化方式: Ø Standard-标准归一化 Ø MaxAndMin-最大最小归一化 可选择的验证比例 Ø 可选范围——(0,1) 可调节的分类器参数 Ø 根据具体分类器设置参数 部分代码 Ø 确认按钮响应事件 def OKPushButton_OnClick(self): data_name = self.data_comboBox.currentText() classify_name = self.classify_comboBox.currentText() normalization_name = self.normalization_comboBox.currentText() parameter_string = self.parameter_text.toPlainText() validation_string = self.validation_text.text() y_test,y_pred=self.load_datasets_and_classify(data_name,classify_name,normalization_name,parameter_string,validation_string) from sklearn.metrics import classification_report self.descTextEdit.setText(classification_report(y_test, y_pred)) Ø 分类算法执行 def load_datasets_and_classify\ (self,data_name,classify_name,normalization_name,parameter_string,validation_string): from sklearn import datasets from sklearn.model_selection import train_test_split rate=0.2 if validation_string !='': try: rate=float(validation_string) except: self.alert_info(u"输入的数值必须是0~1的浮点数") return if data_name == 'iris': origin_data=datasets.load_iris() elif data_name == 'digits': origin_data=datasets.load_digits() else: self.alert_info(u"未知数据集") return data=origin_data.data target=origin_data.target if normalization_name=='standard': from sklearn import preprocessing scaler = preprocessing.StandardScaler().fit(x_train) scaler.transform(x_train) scaler.transform(x_test) elif normalization_name=='max_min': from sklearn import preprocessing min_max_scaler = preprocessing.MinMaxScaler() x_train = min_max_scaler.fit_transform(x_train) x_test = min_max_scaler.fit_transform(x_test) elif normalization_name=='none': pass else: self.alert_info(u"未知归一化方式") return Ø 程序演示结果 五、实验结果分析 使用PyQt4创建windows窗体,然后结合实验1和2的部分代码生成代码演示程序。 说句实话,不太清楚这个试验到底要干嘛,为了给演示程序的界面添加控件就花了很多时间,算是学习到如何使用python创建windows应用程序了。
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:数据挖掘实训报告-.doc
    链接地址:https://www.zixin.com.cn/doc/12023425.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork