- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;第5章 KNN分类算法 ;5.1 KNN分类 ;;计算距离;KNN方法有三个核心要素:;计算距离;那么K值到底怎么选取呢?涉及到距离的度量问题。
;2.距离的度量
不同的距离所确定的近邻点不同。平面上比较常用的是欧式距离。此外还有曼哈顿距离、余弦距离、球面距离等。;?;;5.2 初识KNN——鸢尾花分类 ;;3.使用散点矩阵查看数据特征关系
在数据分析中,同时观察一组变量的散点图是很有意义的,这也被称为散点图矩阵(scatter plot matrix)。创建这样的图表工作量巨大,可以使用scatter_matrix函数。scatter_matrix函数是Pandas提供了一个能从DataFrame创建散点图矩阵的函数。
函数格式:
scatter_matrix(frame, alpha=0.5, c,figsize=None, ax=None, diagonal=hist, marker=., density_kwds=None,hist_kwds=None, range_padding=0.05, **kwds)
重要参数解释:
frame:Pandas dataframe对象。
alpha:图像透明度,一般取(0,1) 。
figsize:以英寸为单位的图像大小,一般以元组 (width, height) 形式设置。
Diagonal:必须且只能在{‘hist’,‘kde’}中选择1个,’hist’表示直方图(Histogram plot),’kde’表示核密度估计(Kernel Density Estimation);该参数是scatter_matrix函数的关键参数。
marker:Matplotlib可用的标记类型,如’.’,’,’,’o’等。;【例】对鸢尾花数据结果,使用scatter_matrix显示训练集与测试集的散点图矩阵。
pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), marker=o, hist_kwds={bins: 20}, s=60, alpha=.8)
;4.建立KNN模型
在Python中,实现KNN方法使用的是KNeighborsClassifier类,KNeighborsClassifier类属于Scikit-learn的neighbors包。
;KNeighborsClassifier使用很简单,核心操作包括三步:
1)创建KNeighborsClassifier对象,并进行初始化。
基本格式:
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,?weights=’uniform’,?algorithm=’auto’,?leaf_size=30,p=2,?metric=’minkowski’,?metric_params=None,?n_jobs=None,?**kwargs)
主要参数:
n_neighbors:int型,可选,缺省值是5,代表KNN中的近邻数量k值。
weights:计算距离时使用的权重,缺省值是“uniform”,表示平等权重。也可以取值“distance”,则表示按照距离的远近设置不同权重。还可以自主设计加权方式,并以函数形式调用。
metric:距离的计算,缺省值是“minkowski”。当p=2,?metric=’minkowski’时,使用的是欧式距离。p=1,metric=’minkowski’时为曼哈顿距离。
;;;from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
#导入鸢尾花数据并查看数据特征
iris = datasets.load_iris()
print(数据集结构:,iris.data.shape)
# 获取属性
iris_X = iris.data
# 获取类别
iris_y = iris.target
# 划分成测试集和训练集
iris_train_X,iris_test_X,iris_train_y,iris_test_y=train_test_split(iris_X,iris_y,test_size=0.2, random_state=0)
#分类器初始化
knn = KNeighborsClassifier()
#对训练集进行训练
knn.fit(iris_train_X, iris_train_y)
#对测试集数据的鸢尾花类型进行预测
predict_result
您可能关注的文档
- 《Python机器学习》 课件 第1章 机器学习概述.pptx
- 《Python机器学习》 课件 0 课程导学.pptx
- 《Python机器学习》 课件 第2章 Python数据处理基础.pptx
- 《Python机器学习》 课件 第3章 Python常用机器学习库(1) Numpy.pptx
- 《Python机器学习》 课件 第3章 Python常用机器学习库(2) Pandas.pptx
- 《Python机器学习》 课件 第3章 Python常用机器学习库(3) Matplotlib.pptx
- 《Python机器学习》 课件 第3章 Python常用机器学习库(4) 其他库.pptx
- 《Python机器学习》 课件 第4章 机器学习基础.pptx
- 《Python机器学习》 课件 第6章 K-Means聚类算法.pptx
- 《Python机器学习》 课件 第7章 推荐算法.pptx
文档评论(0)