《数据挖掘实验指导书.docx》由会员分享,可在线阅读,更多相关《数据挖掘实验指导书.docx(18页珍藏版)》请在优知文库上搜索。
1、I.t.t*Lt-t数据挖掘实验指导书实验一:数据分析与可视化1实验二:数据挖掘分析9实验一:数据分析与可视化一、实验目的和要求1 .熟悉掌握PythOn编程基础2 .熟悉掌握利用Python进行数据分析3 .熟悉掌握利用Python进行可视化的方法二、实验内容和原理1 .使用Python进行数据导入2 .使用python进行数据的探索性分析3 .使用Python进行数据可视化分析三、主要仪器设备计算机1台,本机型号:机械革命Slpro;Python版本:PYthOn-3.8.8;matplotlib版本:matpk)tlib-3.3.4。四、实验步骤1 .绘制散点图散点图是指在回归分析中,数
2、据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。步骤如下:(1)导入相关模块importmatplotlib.pyplotaspitimportnumpyasnp(2)使用随机数模块生成100组数据点# 随机产生100个02之间的X,y坐标X=np.random,rand(n)*2y-np.random,rand(n)*2(3)设置散点图的属性:颜色、面积、透明度colors-nprandom,rand(n)# 随机产生100个01之间的颜色值area=np.pi*(10*np.random,rand(n)*2# 点的半径范围:
3、010(4)绘制并显示散点图pit.scatter(x,y,s-area,c=colors,alpha-0.5,marker=o)pit.show()2 .绘制直方图直方图是一种可视化表示数据在连续间隔或者特定时间段内容的分布情况;直方图又称为质量分布图,属于条行图的一种;直方图X轴表示数据类型,纵轴表示分布情况,每个数据宽度可以任意变化。步骤如下: 导入IlIatPIotlib.pyplot模块 准备数据,可以使用numpyPandaS整理数据 调用PyPIOt.hist()绘制直方图(1)导入相关模块(2)使用随机数模块生成待可视化的学生身高数据1000条;(3)调用PyPlOt.hist
4、()绘制直方图,bars=100;(4)直方图名称为你的姓名,X轴标签为身高,y轴标签为数量;(5)显示直方图;(6)改变直方图的透明度,再绘制一幅直方图。3 .绘制箱线图箱线图反映数据分布特征的统计量,能提供有关数据位置和分散情况的关节信息,尤其在比较不同特征时,更可表现其分散程度差异。步骤如下:(1)导入相关模块:numpymatplotlib.pyplotpandas(2)使用随机数模块生成100行5列的DataFrame;(3)各列属性名为A,B,C,D,E)(4)绘制并显示箱线图。(5)箱线图名称为你的姓名4 .绘制词云“词云”是对网络文本中出现频率较高的“关键词”予以视觉上的突出,
5、形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。“词云”就是数据可视化的一种形式。给出一段文本的关键词,根据关键词的出现频率而生成的一幅图像,人们只要扫一眼就能够明白文章主旨。步骤如下:(1)导入相关模块frompyechartsimportoptionsasoptsfrompyecharts.chartsimportPage,WordCloudfrompyecharts.globalsimportSymbolType(2)自主构造需要可视化的词云,不少于20个词。(3)使用WordCIoudO方法,设置相关参数。c=WordCl
6、oudOc.add(”,words,word_size_range=20,80)c.set_global_opts(title_opts=opts.TitleOpts(title=WordCloud-基本示例)c.render_notebook()五、实验数据记录和处理代码记录行号代码散点图1importmatplotlib.pyplotaspit2importnumpyasnp3plt.rcParamsfont.family=,SimHei,4plt.rcParamsaxes.unicode_minus=False5fig=plt.figure()6x=np.random.rand(100)
7、*27y=np.random.rand(100)*28colors=np.random.rand(100)9area=np.pi*(10*np.random.rand(100)*210plt.scatter(x,y,s=area,c=colors,alpha=0.5,marker=o)11plt.show()直方图1importmatplotlib.pyplotaspit2importnumpyasnp3plt.rcParams,font.family=SimHei1J4plt.rcParamsaxes.unicode_minus=False5arr=np.random.randint(150
8、,205,size=1000)6fig=plt.figure()7axI=fig.add_subplot(1,2,1)8pit.title。陈松)9plt.xlabel(,(cm)10plt.ylabel(“数量(个)”)11plt.hist(arr,bins=100)12ax2=fig.add_subplot(1,2,2)行号代码13pit.title。改了透明度)14plt.xlabel(身高(Cm)”)15pltylabel(“数量(个)”)16plt.hist(arr,bins=l00,alpha=0.5)17plt.show()箱线图1importpandasaspd2importn
9、umpyasnp3importmatplotlib.pyplotaspit4plt.rcParams,font,sans-serif=SimHei5plt.rcParams,font.size,=136df=pd.DataFrame(np.random.rand(100z5)z7columns=AzB,z,CzDE)8pit.title。陈松)9plt.boxplot(df)词云1frompyechartsimportoptionsasoptsfrompyecharts.chartsimportPage,WordCloudfrompyecharts.globalsimportSymbolTyp
10、ewords-(泸州方言,7230),(麻花,8581),(观音,4666),(棉花坡”,6643),(紫阳大道,345),(读书7766),(马路,872),(方便面,3,(船山,2055),(博物馆,858),(欧莱雅,2598),(泸州,8289),(大海,268),(抄手,6958),(小学,351),(安置房,2878),(高中,333),(二中,5328),(中学,2684),(上学,2679),(0国际,9325),(大小,2682)c二WordCloudO行号代码c.add(,words,word_size_range=20,80)c.setglobal_opts(title_
11、opts=opts.TitleOpts(title=z,我的词云)c.rendernotebook()六、实验结果记录(贴图)改了透明度三K/申/公方便面绘三中京量9亥打实验二:数据挖掘分析一、实验目的和要求1 .熟悉掌握Python编程基础2 .熟悉掌握利用Python进行数据分析3 .熟悉掌握利用Python进行数据挖掘的方法二、实验内容和原理1 .使用PythOn进行数据导入2 .使用python进行数据的探索性分析3 .使用PythOn进行数据挖掘的方法三、主要仪器设备计算机1台,本机型号:飞行堡垒;Python版本:Python-3.8.8用到的库的版本:numpyl.20.1、Da
12、ndaSl.2.4、SCikit-IearnO.24.1四、实验步骤本次实验将综合使用之前学习的知识,实现对肿瘤数据breast-cancer-wisconsin.data的分析和预测。步骤如下:1 .导入相关模块:importpandasaspdimportnumpyasnp2 .读入数据breast-cancer-wisconsin.data,各列属性值为下面column_nanies中的值,读取之后显示前5行以查看数据。column-names=,number,Cl-Thickness,Unif-cell-size,Unif_cell_shape,Marg_Adhesio11,Sing-
13、epith-cell-size,Bare-nuclei,Bland_chromation,Norm-nuclei,Mitoses,Class,data=d.read_csv(,breast-cancer-wisconsin.data,names-co1umn_names)display(data,headO)3 .利用describe。查看数据的基本统计信息4 .统计数据属性中的空缺值isnull().sum()5 .如果数据中存在空缺数据需要丢弃或填充。该数据集中包含了16个缺失值用“?”标出。因此要删除有缺失值的数据。data=data.replace(to_replace=,?,valu
14、e=np.nan)data=data.dropna(how三,any,)print(data,shape)6 .将数据划分为训练集和测试集fromsklearn.model_selectionimporttrain_test_split#划分训练集与测试集X_train,X_test,y_train,y_test=train_test_split(datacolumn_names1:10,dataco1umn_names10,test_size-O.25,random_state=33)Print(训练样本的数量和类别分布:n,y_train.value_counts()7 .标准化数据,每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值主导。fromsklearn.preprocessingimportStandardScalerSs=StandardScalerOX_tr