自助建设手机网站,用wordpress二级导航,做娱乐新闻的网站有哪些,自建房设计软件0 问题引入
想一想#xff1a;下面图片中有三种豆#xff0c;其中三颗豆品种未知#xff0c;如何判断他们类型#xff1f;
1 KNN概述
1.1 KNN场景
电影可以按照题材分类#xff0c;那么如何区分 动作片 和 爱情片 呢#xff1f;
动作片#xff1a;打斗次数更多爱情…0 问题引入
想一想下面图片中有三种豆其中三颗豆品种未知如何判断他们类型
1 KNN概述
1.1 KNN场景
电影可以按照题材分类那么如何区分 动作片 和 爱情片 呢
动作片打斗次数更多爱情片亲吻次数更多 基于电影中的亲吻、打斗出现的次数使用 k-近邻算法构造程序就可以自动划分电影的题材类型。 现在根据上面我们得到的样本集中所有电影与未知电影的距离按照距离递增排序可以找到 k 个距离最近的电影。 假定 k3则三个最靠近的电影依次是 California Man He’s Not Really into Dudes 和 Beautiful Woman 。 KNN 算法按照距离最近的三部电影的类型决定未知电影的类型而这三部电影全是爱情片因此我们判定未知电影是爱情片。
1.2 KNN工作原理
k-近邻kNN, k-NearestNeighbor算法是一种基本分类与回归方法我们这里只讨论分类问题中的 k-近邻算法。 一句话总结近朱者赤近墨者黑
输入为实例的特征向量对应于特征空间的点 输出为实例的类别 k 近邻算法假设给定一个训练数据集其中的实例类别已定。 分类时对新的实例根据其 k 个最近邻的训练实例的类别通过多数表决等方式进行预测。因此k近邻算法不具有显式的学习过程。
k 近邻算法实际上利用训练数据集对特征向量空间进行划分并作为其分类的“模型”。 k近邻算法、三个基本要素
k值的选择距离度量分类决策规则。
2 KNN案例
2.1 项目概述
海伦使用约会网站寻找约会对象。经过一段时间之后她发现曾交往过三种类型的人: 不喜欢的人魅力一般的人极具魅力的人 她希望 工作日与魅力一般的人约会周末与极具魅力的人约会不喜欢的人则直接排除掉 现在她收集到了一些约会网站未曾记录的数据信息这更有助于匹配对象的归类。
2.2 开发流程
收集数据提供文本文件准备数据使用 Python 解析文本文件分析数据使用 Matplotlib 画二维散点图训练算法此步骤不适用于 k-近邻算法测试算法使用海伦提供的部分数据作为测试样本。 测试样本和非测试样本的区别在于 测试样本是已经完成分类的数据如果预测分类与实际类别不同则标记为一个错误。使用算法产生简单的命令行程序然后海伦可以输入一些特征数据以判断对方是否为自己喜欢的类型。
收集数据提供文本文件 海伦把这些约会对象的数据存放在文本文件 datingTestSet2.txt 中总共有 1000 行。海伦约会的对象主要包含以下 3 种特征
每年获得的飞行常客里程数玩视频游戏所耗时间百分比每周消费的冰淇淋公升数 归一化就是要把你需要处理的数据经过处理后通过某种算法限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便其次是保证程序运行时收敛加快。
2.3 代码以iris数据集为例
方案1调包侠 方案2自己写底层代码
import sklearn.datasets, sklearn.neighbors, sklearn.model_selection
import numpydef sklearnKnnTest():#Step 1. Load the datasettempDataset sklearn.datasets.load_iris()x tempDataset.datay tempDataset.target#print(x , x)#print(y , y)#Step 2. Split the dataX1, X2, Y1, Y2 sklearn.model_selection.train_test_split(x, y, test_size 0.2)print(X1 , X1)print(Y1 , Y1)print(X2 , X2)print(Y2 , Y2)#Step 3. Indicate the training set.tempClassifier sklearn.neighbors.KNeighborsClassifier(n_neighbors 5)tempClassifier.fit(X1, Y1)#Step 4. Test.tempScore tempClassifier.score(X2, Y2)print(The score is: , tempScore)def euclideanDistance(x1, x2):tempDistance 0for i in range(x1.shape[0]):difference x1[i] - x2[i]tempDistance difference * differencetempDistance tempDistance ** 0.5return tempDistancedef mfKnnTest(k 3):#Step 1. Load the datasettempDataset sklearn.datasets.load_iris()x tempDataset.datay tempDataset.target#print(x , x)#print(y , y)#Step 2. Split the dataX1, X2, Y1, Y2 sklearn.model_selection.train_test_split(x, y, test_size 0.2)print(X1 , X1)print(Y1 , Y1)print(X2 , X2)print(Y2 , Y2)#Step 3. Classifypredicts numpy.zeros(Y2.shape[0])for i in range(X2.shape[0]):#Step 3.1 Find k neigbhors#InitializetempNeighbors numpy.zeros(k 2)tempDistances numpy.zeros(k 2)for j in range(k 2):tempDistances[j] 1000tempDistances[0] -1for j in range(X1.shape[0]):tempDistance euclideanDistance(X2[i], X1[j])tempIndex kwhile True:if tempDistance tempDistances[tempIndex]:#Move forwardprint(tempDistance {} and tempDistances[{}] {}.format(tempDistance, tempIndex, tempDistances[tempIndex]))tempNeighbors[tempIndex 1] tempNeighbors[tempIndex]tempDistances[tempIndex 1] tempDistances[tempIndex]tempIndex - 1else:#Insert heretempNeighbors[tempIndex 1] jtempDistances[tempIndex 1] tempDistanceprint(Insert to {}..format(tempIndex))break#print(Classifying , X2[i])print(tempNeighbors , tempNeighbors)#Step 3.2 Vote#Step 2.2 Vote for the classtempLabels []for j in range(k):tempIndex int(tempNeighbors[j 1])tempLabels.append(int(Y2[tempIndex]))tempCounts []for label in tempLabels:#print(count , tempLabels.count(label))tempCounts.append(int(tempLabels.count(label)))tempPredicts[i] tempLabels[numpy.argmax(tempCounts)]print(The predictions are: , tempPredicts)print(The true labels are: , Y2)def main():#sklearnKnnTest()#print(Life is short, so I study python.)mfKnnTest()main()
文章转载自: http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn http://www.morning.kgqww.cn.gov.cn.kgqww.cn http://www.morning.rysmn.cn.gov.cn.rysmn.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.fbmzm.cn.gov.cn.fbmzm.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.smkxm.cn.gov.cn.smkxm.cn http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn http://www.morning.dbylp.cn.gov.cn.dbylp.cn http://www.morning.nyjgm.cn.gov.cn.nyjgm.cn http://www.morning.jfymz.cn.gov.cn.jfymz.cn http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn http://www.morning.nydtt.cn.gov.cn.nydtt.cn http://www.morning.hous-e.com.gov.cn.hous-e.com http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.kgsws.cn.gov.cn.kgsws.cn http://www.morning.tntbs.cn.gov.cn.tntbs.cn http://www.morning.qmmfr.cn.gov.cn.qmmfr.cn http://www.morning.xkjrs.cn.gov.cn.xkjrs.cn http://www.morning.flqbg.cn.gov.cn.flqbg.cn http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn http://www.morning.qhmql.cn.gov.cn.qhmql.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn http://www.morning.gryzk.cn.gov.cn.gryzk.cn http://www.morning.gbpanel.com.gov.cn.gbpanel.com http://www.morning.jxlnr.cn.gov.cn.jxlnr.cn http://www.morning.mxmtt.cn.gov.cn.mxmtt.cn http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn http://www.morning.youyouling.cn.gov.cn.youyouling.cn http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn http://www.morning.lqlc.cn.gov.cn.lqlc.cn http://www.morning.inheatherskitchen.com.gov.cn.inheatherskitchen.com http://www.morning.rcrnw.cn.gov.cn.rcrnw.cn http://www.morning.kwfnt.cn.gov.cn.kwfnt.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn http://www.morning.yybcx.cn.gov.cn.yybcx.cn http://www.morning.mtzyr.cn.gov.cn.mtzyr.cn http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.mzhh.cn.gov.cn.mzhh.cn http://www.morning.ujianji.com.gov.cn.ujianji.com http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.sxhdzyw.com.gov.cn.sxhdzyw.com http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.tgfjm.cn.gov.cn.tgfjm.cn http://www.morning.czxrg.cn.gov.cn.czxrg.cn http://www.morning.paxkhqq.cn.gov.cn.paxkhqq.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn http://www.morning.c7623.cn.gov.cn.c7623.cn http://www.morning.synkr.cn.gov.cn.synkr.cn http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn http://www.morning.dsprl.cn.gov.cn.dsprl.cn http://www.morning.jynzb.cn.gov.cn.jynzb.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.cpljq.cn.gov.cn.cpljq.cn http://www.morning.yunease.com.gov.cn.yunease.com http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn http://www.morning.cpmfp.cn.gov.cn.cpmfp.cn http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn http://www.morning.dyxlm.cn.gov.cn.dyxlm.cn http://www.morning.lgsfb.cn.gov.cn.lgsfb.cn http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn http://www.morning.bwrbm.cn.gov.cn.bwrbm.cn http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn