《(本科)第15章 数据挖掘和机器学习ppt课件.ppt》由会员分享,可在线阅读,更多相关《(本科)第15章 数据挖掘和机器学习ppt课件.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程主讲人:第15章 数据挖掘和机器学习第第15章章 数据挖掘和机器学习数据挖掘和机器学习主讲主讲 夏敏捷夏敏捷计算机学院副教授计算机学院副教授scikit-learn(简称sklearn) scikit-learn(简称sklearn)是Python的一个开源机器学习模块,它建立在NumPy和SciPy模块之上能够为用户提供各种机器学习算法接口,包括分类、回归、聚类系列算法,主要算法有SVM、逻辑回归、朴素贝叶斯、Kmeans、DBSCAN等。可以让用户简单、高效地进行数据挖掘和数据分析。 本章主要围绕聚类、分类和回归介绍 sklearn 库的一些基本使用。1Ubuntu14.04系统上安装
2、安装numpy首选需要安装numpy: pip3 install numpy安装scipy: pip3 install scipy安装scikit-learn: pip3 install sklearn15.1 Python机器学习库sklearn安装2Windows7系统上直接安装安装numpy: pip3 install numpy安装scipy: pip3 install scipy安装scikit-learn: pip3 install sklearn15.1 Python机器学习库sklearn安装或者或者http:/www.lfd.uci.edu/gohlke/pythonlibs
3、/http:/www.lfd.uci.edu/gohlke/pythonlibs/网站中下载相关包文件网站中下载相关包文件例如numpy文件: numpy 1.13.1+mkl cp35 cp35m win32.whl(32位,Python3.5) numpy 1.13.1+mkl cp35 cp35m win_amd64.whl(64位Python3.5)例如scipy文件: scipy 0.19.1 cp35 cp35m win32.whl例如scikit-learn文件: scikit_learn 0.18.2 cp35 cp35m win32.whl然后执行(以32位为例)pip3 i
4、nstall numpy 1.13.1+mkl cp35 cp35m win32.whlpip3 install scipy 0.19.1 cp35 cp35m win32.whl pip3 install scikit_learn 0.18.2 cp35 cp35m win32.whl15.2 Python机器学习库sklearn的应用 数据挖掘和机器学习通常包括数据采集,数据分析,特征选择,训练模型,模型评估等步骤。使用 sklearn 工具可以方便地进行特征选择和模型训练工作,图15-1所示是一个基本的数据挖掘过程数据挖掘过程。 sklearn 库常见的引用方式如下: from skle
5、arn import sklearn 库提供了数据挖掘中涉及的数据预处理、监督学习、无监督学习、模型选择和评估等系列方法,包含众多子库或模块。 本章主要围绕聚类、分类和回归介绍 sklearn 库的一些基本使用。sklearn常用模块和类 sklearn 库包含众多子库或模块15.2.1 训练数据集鸢尾花sklearn已经自带了一些数据集,先看iris和digits:from sklearn import datasetsiris = datasets.load_iris()digits = datasets.load_digits()print(iris.data.shape)#print(
6、digits.items() #.items()列出所有属性print(digits.images.shape)irisiris中文指鸢尾植物,这里存储了其萼片和花瓣的长宽,一共4个属性,鸢尾植物又分三类。与之相对,iris里有两个属性iris.data,iris.target,data里是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,一共采样了150条记录,所以查看这个矩阵的形状,返回:(150, 4)digits存储了数字识别的数据,包含了1797条记录,每条记录又是一个8行8列的矩阵,存储的是每幅数字图里的像素点信息,返回:(1797, 8, 8)15
7、.2.2 sklearn 库的聚类聚类是一个无监督学习过程,不需要进行样本数据训练。sklearn提供了多种聚类函数供不同聚类目的使用, KMeans是聚类中最为常用的算法之一,它属于基于划分的聚类方法。KMeans 基本用法如下。from sklearn.cluster import KMeansmodel= KMeans() #输入参数建立模型model.fit(Data) #将数据集 Data 提供给模型进行聚类AgglomerativeClustering方法是一种聚合式层次聚类方法。DBSCAN 是一个基于密度的聚类算法。关于聚类,建议读者掌握KMeans方法。【例15-1】10个点
8、的聚类。假设有10个点(1,2),(2,5),(3,4),(4,5),(5,8),(10,13),(11,10),(12,11),(13,15),(15,14),请将它们分成2类,并绘制聚类效果。15.2.2 sklearn 库的聚类15.2.3 sklearn 库的分类 最常用的分类算法是K近邻算法,该算法也是最简单的机器学习分类算法,对大多数问题都非常有效。K邻近算法的主要思想是:如果一个样本在特征空间中最相似(即特征空间中最邻近)的K个样本大多数属于某一个类别,则该样本也属于这个类别。K邻近算法在sklearn库中的基本用法如下。from sklearn.neighbors import
9、 KNeighborsClassifiermodel = KNeighborsClassifier() #建立分类器模型model.fit(Data,y) #为模型提供学习数据 Data 和数据对应的标签结果 y【例15-2】基于聚类结果的坐标点分类器。例15-1中两10个点分成了2类A和B。现在有一个新的点(6,9),在分类结果A和B的基础上,新的点属于哪一类呢?采用K临近方法的分类代码如下,分类结果如图15-3所示。分类从图可以看到,点(6,9)被分为A类。这种分类采用了聚类结果。然而,分类本身并不一定使用聚类结果,聚类结果只是给出了数据点和类别的一种对应关系。只要分类器学习了某种对应关系
10、,它就能够进行分类。15.2.4 sklearn 库的回归回归是一个统计预测模型,用以描述和评估应变量与一个或多个自变量之间的关系,即自变量X与因变量y的关系。最简单的回归模型是线性回归,它是数据挖掘中的基础算法之一。线性回归的思想是根据数据点形成一个回归函数y=f(X),函数的参数由数据点通过解方程获得。线性回归在sklearn库中的基本用法如下。from sklearn.linear_model import LinearRegressionmodel = LinearRegression() #建立回归模型model.fit(X,y) #建立回归模型, X 是自变量, y 是因变量pre
11、dicted = model.predict(X_new) #对新样本进行预测【例15-3】坐标点的预测器。已知10个点,此时获得信息,将在横坐标7的位置出现一个新的点,却不知道纵坐标。请预测最有可能的纵坐标值。这是典型的预测问题,可以通过回归来实现。下面给出基于线性回归模型的预测器代码,预测结果如图15-4所示,预测点采用菱形标出。15.2.5 鸢尾花相关的分类 将IRIS数据集随机分成140个数据的训练集和10个数据的测试集,并对预测准确率进行计算。 由于IRIS数据集包括人工识别的标签,所以140个数据学习将比较准确。对于实际应用,可以采集一个小规模数据集并人工分类,再利用分类结果识别大数据集内容。 运行结果如下: 测试集中鸢尾花的预测类别: 1 2 1 0 0 0 2 1 2 0 测试集中鸢尾花的真实类别: 1 1 1 0 0 0 2 1 2 0 KNN 分类器的精确度: 90.0 %