赵走x博客
网站访问量:151933
首页
书籍
软件
工具
古诗词
搜索
登录
深入浅出Python机器学习:31、自动特征选择
深入浅出Python机器学习:30、数据“升维”
深入浅出Python机器学习:29、数据表达
深入浅出Python机器学习:28、聚类算法
深入浅出Python机器学习:27、特征提取
深入浅出Python机器学习:26、数据降维
深入浅出Python机器学习:25、数据预处理
深入浅出Python机器学习:24、神经网络实例一一手写识别
深入浅出Python机器学习:23、神经网络的原理及使用
深入浅出Python机器学习:22、神经网络的前世今生
深入浅出Python机器学习:21、SVM 实例一一波士顿房价回归分析
深入浅出Python机器学习:20、SVM 的核函数与参数选择
深入浅出Python机器学习:19、支持向量机SVM 基本概念
深入浅出Python机器学习:18、随机森林实例一一要不要和中目亲对象进一步发展
深入浅出Python机器学习:17、随机森林
深入浅出Python机器学习:16、决策树
深入浅出Python机器学习:15、朴素贝叶斯实战一一判断肿瘤是良性还是恶性
深入浅出Python机器学习:14、朴素贝叶斯算法的不同方法
深入浅出Python机器学习:13、朴素贝叶斯基本概念
深入浅出Python机器学习:12、使用L1 正则化的线性模型一一套索回归
深入浅出Python机器学习:11、使用L2 正则化的线性模型一一岭回归
深入浅出Python机器学习:10、最基本的线性模型一一线性回归
深入浅出Python机器学习:9、线性模型的墓本概念
深入浅出Python机器学习:8、K 最近邻算法项目实战一一酒的分类
深入浅出Python机器学习:7、K最近邻算法用于回归分析
深入浅出Python机器学习:6、K最近邻算法处理多元分类任务
深入浅出Python机器学习:5、k最近邻算法在分类任务中的应用
深入浅出Python机器学习:4、K 最近邻算法的原理
深入浅出Python机器学习:3、一些必需库的安装及功能简介
深入浅出Python机器学习:2、基于python i吾言的环境配置
深入浅出Python机器学习:1、概述
人脸数据集加载faces = fetch_lfw_people()报错
31、直方图
74、插件开发:Android端API实现
Python3之socket编程--3:基于UDP的套接字
15、使用 jQuery 处理 Ajax 请求
深入浅出Python机器学习:6、K最近邻算法处理多元分类任务
资源编号:75860
人工智能
深入浅出Python机器学习
热度:156
接下来,我们要先生成多元分类任务所使用的数据集,为了让难度足够大,这次我们通过修改make_blobs 的centers 参数,把数据类型的数量增加到5 个,同时修改n_samlpes 参数, 把样本量也增加到500 个
接下来,我们要先生成多元分类任务所使用的数据集,为了让难度足够大,这次我们通过修改make_blobs 的centers 参数,把数据类型的数量增加到5 个,同时修改n_samlpes 参数, 把样本量也增加到500 个,输入代码如下: ``` # 导人数据集生成器 from sklearn.datasets import make_blobs import matplotlib.pylab as plt # 生成样本数为500 ,分类数为5 的数据集 data2 = make_blobs(n_samples=500, centers=5, random_state=8) X2, y2 = data2 # 用散点图将数据集进行可视化 plt.scatter(X2[:, 0], X2[:, 1], c=y2, cmap=plt.cm.spring, edgecolor='k') plt.show() ``` 运行代码,会得到结果如图所示的结果。  [结果分析] 从图中我们可以看到,新的数据集的分类数量变成了5 个,而其中有两类数据还有一些重合(图片中心位置的点〉, 这下难度提高了不少。 让我们再次用K 最近邻算法建立模型来拟合这些数据,输入代码如下: ``` # 导人数据集生成器 from sklearn.datasets import make_blobs import matplotlib.pylab as plt from sklearn.neighbors import KNeighborsClassifier import numpy as np import matplotlib as mpl # 生成样本数为500 ,分类数为5 的数据集 data2 = make_blobs(n_samples=500, centers=5, random_state=8) X2, y2 = data2 clf = KNeighborsClassifier() clf.fit(X2, y2) # 下面的代码用于画图 x_min, x_max = X2[:, 0].min() - 1, X2[:, 0].max() + 1 y_min, y_max = X2[:, 1].min() - 1, X2[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, .02), np.arange(y_min, y_max, .02)) Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) z = Z.reshape(xx.shape) cm_light = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#448ced', '#6600FF', '#FF00FF']) plt.pcolormesh(xx, yy, z, cmap=cm_light) # 用散点图将数据集进行可视化 plt.scatter(X2[:, 0], X2[:, 1], c=y2, cmap=plt.cm.spring, edgecolor='k') plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.title("Classifier : KNN") plt.show() ``` 运行结果:  【结果分析】 从图中我们可以看到, K 最近邻算法仍然可以把大部分数据点放置于正确的分类中,但有一小部分数据还是进入了错误的分类中,这些分类错误的数据点基本都是互相重合的位于图像中心位置的数据点。 那么模型的正确率究竟有多高呢?我们用下面的代码来进行一下评分: ``` print(' 代码运行结果') print('==============================') print('模型正确率{:.2f}'.format(clf.score(X2, y2))) print('==============================') ``` 运行结果: ``` 代码运行结果 ============================== 模型正确率0.96 ============================== ``` 【结果分析】 看来虽然我们故意刁难了K 最近邻算法一下,但它仍然能够将96 % 的数据点放进正确的分类中, 这个结果可以说还是相当不错的。 接下来,我们再试试使用K 最近邻算法来进行回归分析, 看看结果如何。