13,SKlearn实现KNN算法,约会网站与鸢尾花数据集
2018-05-31 15:10
701 查看
import numpy as np import matplotlib.pyplot as plt #约会网站测试数据的分别表示1.每年飞行的里程数,2.玩游戏和看视频占的时间的比,3.每周消费冰淇淋的公升数 raw_data_X=[[54483,6.317292,0.018209], [18475,12.664194,0.595653], [33926,2.906644,0.581657], [43865,2.388241,0.913938], [26547,6.024471,0.486215], [44404,7.226764,1.255329], [16674,4.183997,1.275290], [8123,11.850211,1.096981], [42747,11.661797,1.167935]] #样本标签中1表示不喜欢,2表示魅力一般,3表示极具魅力 raw_data_y=[1,3,1,1,3,3,2,3,3] X_train=np.array(raw_data_X) y_train=np.array(raw_data_y) x=np.array([56054,3.574967,0.494666]) from sklearn.neighbors import KNeighborsClassifier #导入sklearn的相应的模块 kNN_classifier=KNeighborsClassifier(n_neighbors=3) #括号中的3表示k的值 kNN_classifier.fit(X_train,y_train) #传入训练数据进行拟合 x_predict=x.reshape(1,-1)#对测试的数据先进行修改格式,改为1行,-1表示列自动匹配 kNN_classifier.predict(x_predict) #传入测试,对结果进行进行预测 #array([ 4000 1]) 查看数据中的结果,发现测试数据测试正确
详情见点击打开链接
https://www.cnblogs.com/xufangming/articles/9041490.html
Iris数据集
Iris flower数据集是1936年由Sir Ronald Fisher引入的经典多维数据集,可以作为判别分析(discriminant analysis)的样本。该数据集包含Iris花的三个品种(Iris setosa, Iris virginica and Iris versicolor)各50个样本,每个样本还有4个特征参数(分别是萼片<sepals>的长宽和花瓣<petals>的长宽,以厘米为单位),Fisher利用这个数据集开发了一个线性判别模型来辨别花朵的品种。
基于Fisher的线性判别模型,该数据集成为了机器学习中各种分类技术的典型实验案例。
#-*-coding:utf-8 -*- from sklearn import datasets #导入内置数据集模块 from sklearn.neighbors import KNeighborsClassifier #导入sklearn.neighbors模块中KNN类 import numpy as np np.random.seed(0) #设置随机种子,不设置的话默认是按系统时间作为参数,因此每次调用随机模块时产生的随机数都不一样设置后每次产生的一样 iris=datasets.load_iris() #导入鸢尾花的数据集,iris是一个类似于结构体的东西,内部有样本数据,如果是监督学习还有标签数据 iris_x=iris.data #样本数据150*4二维数据,代表150个样本,每个样本4个属性分别为花瓣和花萼的长、宽 iris_y=iris.target #长150的以为数组,样本数据的标签 indices = np.random.permutation(len(iris_x)) #permutation接收一个数作为参数(150),产生一个0-149一维数组,只不过是随机打乱的,当然她也可以接收一个一维数组作为参数,结果是直接对这个数组打乱 iris_x_train = iris_x[indices[:-10]] #随机选取140个样本作为训练数据集 iris_y_train = iris_y[indices[:-10]] #并且选取这140个样本的标签作为训练数据集的标签 iris_x_test = iris_x[indices[-10:]] #剩下的10个样本作为测试数据集 iris_y_test = iris_y[indices[-10:]] #并且把剩下10个样本对应标签作为测试数据及的标签 knn = KNeighborsClassifier() #定义一个knn分类器对象 knn.fit(iris_x_train, iris_y_train) #调用该对象的训练方法,主要接收两个参数:训练数据集及其样本标签 iris_y_predict = knn.predict(iris_x_test) #调用该对象的测试方法,主要接收一个参数:测试数据集 probility=knn.predict_proba(iris_x_test) #计算各测试样本基于概率的预测 neighborpoint=knn.kneighbors(iris_x_test[-1],5,False) #计算与最后一个测试样本距离在最近的5个点,返回的是这些样本的序号组成的数组 score=knn.score(iris_x_test,iris_y_test,sample_weight=None) #调用该对象的打分方法,计算出准确率 print('iris_y_predict = ') print(iris_y_predict) #输出测试的结果 print('iris_y_test = ') print(iris_y_test) #输出原始测试数据集的正确标签,以方便对比 print 'Accuracy:',score #输出准确率计算结果 print 'neighborpoint of last test sample:',neighborpoint print 'probility:',probility *********************************** 结果输出: iris_y_predict = [1 2 1 0 0 0 2 1 2 0] #第二个与原数据不同, iris_y_test = [1 1 1 0 0 0 2 1 2 0] #原数据类型 Accuracy: 0.9 neighborpoint of last test sample: [[ 75 41 96 78 123]] probility: [[ 0. 1. 0. ] [ 0. 0.4 0.6] [ 0. 1. 0. ] [ 1. 0. 0. ] [ 1. 0. 0. ] [ 1. 0. 0. ] [ 0. 0. 1. ] [ 0. 1. 0. ] [ 0. 0. 1. ] [ 1. 0. 0. ]]
详见点击打开链接
https://www.cnblogs.com/xiaotan-code/p/6680438.html
相关文章推荐
- 学习笔记——《机器学习实战》KNN算法实现 约会网站测试,手写数字识别,代码,注释,错误修改
- 【机器学习实战-kNN:约会网站约友分类】python3实现-书本知识【2】
- K近邻(KNN)算法(二)---实现约会匹配
- 数据挖掘(Python)——利用sklearn进行数据挖掘,实现算法:svm、knn、C5.0、NaiveBayes
- <机器学习实战 >KNN算法 改进约会网站的配对效果
- python 实现 knn分类算法 (Iris 数据集)
- k-近邻算法(KNN)--2改进约会网站的配对效果---by香蕉麦乐迪
- 基于KNN算法的约会网站配对效果 python3.2
- kNN近邻算法改善约会网站配对效果案例
- KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类
- java实现Knn算法,用iris数据集进行验证
- 机器学习实战笔记——利用KNN算法改进约会网站的配对效果
- 深度学习基础系列(三)之用 sklearn 实现 KNN算法
- 《机器学习实战》学习笔记——K-近邻算法(KNN)(二)海伦约会网站匹配实战
- 李航《统计学习方法》第三章——用Python实现KNN算法(MNIST数据集)
- 数据挖掘 --- Python实现KNN算法项目-约会推荐算法
- 【python】机器学习实战KNN算法之约会网站
- kNN算法改进约会网站的配对效果
- 使用KNN算法改进约会网站的配对效果
- 机器学习实战(①)——KNN算法改进约会网站的配对效果和手写字识别系统