应用kNN算法预测豆瓣电影用户的性别 摘要 本文认为不同性别的人偏好的电影类型会有所不同,因此进行了此实验.利用较为活跃的274位豆瓣用户最近观看的100部电影,对其类型进行统计,以得到的37种电影类型作为属性特征,以用户性别作为标签构建样本集.使用kNN算法构建豆瓣电影用户性别分类器,使用样本中的90%作为训练样本,10%作为测试样本,准确率可以达到81.48%. 实验数据 本次实验所用数据为豆瓣用户标记的看过的电影,选取了274位豆瓣用户最近看过的100部电影.对每个用户的电影类型进行统计.…
Python实现Knn算法 关键词:KNN.K-近邻(KNN)算法.欧氏距离.曼哈顿距离  KNN是通过测量不同特征值之间的距离进行分类.它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.K通常是不大于20的整数.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. 在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之…
1.Python实现KNN算法 输入:inX:与现有数据集(1xN)进行比较的向量   dataSet:已知向量的大小m数据集(NxM)   个标签:数据集标签(1xM矢量)   k:用于比较的邻居数(应为奇数)输出:最受欢迎的类标签(归类问题) # -*- coding: utf-8 -*- """ Created on Sun Apr 16 23:01:54 2017 @author: SimonsZhao kNN: k Nearest Neighbors Input:…
分类算法-k近邻算法(KNN): 定义: 如果一个样本在特征空间中的k个最相似 (即特征空间中最邻近) 的样本中的大多数属于某一个类别,则该样本也属于这个类别 来源: KNN算法最早是由Cover和Hart提出的一种分类算法 计算距离公式: 两个样本的距离可以通过如下公式计算,又叫欧氏距离,比如说 sklearn k-近邻算法API: 问题: 1. k值取多大?有什么影响? k值取很小:容易受到异常点的影响 k值取很大:容易受最近数据太多导致比例变化 2. 性能问题 k-近邻算法的优缺点: 优点…
python抓取豆瓣电影Top250数据 1.豆瓣地址:https://movie.douban.com/top250?start=25&filter= 2.主要流程是抓取该网址下的Top250的数据,存入本地的txt文件中,并将数据持久化写入数据库中 环境准备: 1.本地安装mysql数据库,具体下载以及安装参照:https://blog.csdn.net/chic_data/article/details/72286329 2.安装好数据后创建database和table,并创建字段 如:我…
(1):list的排序算法: 参考链接:http://blog.csdn.net/horin153/article/details/7076321 示例: DisListSorted = sorted(DisList, key = lambda DisList: DisList[1], reverse =False) 使用lambda函数,利用元素索引作为key: 在 Python 中, 当需要对一个 list 排序时, 一般可以用 list.sort() 或者 sorted(iterable[…
邻近算法(k-NearestNeighbor) 是机器学习中的一种分类(classification)算法,也是机器学习中最简单的算法之一了.虽然很简单,但在解决特定问题时却能发挥很好的效果.因此,学习kNN算法是机器学习入门的一个很好的途径. kNN算法的思想非常的朴素,它选取k个离测试点最近的样本点,输出在这k个样本点中数量最多的标签(label).我们假设每一个样本有m个特征值(property),则一个样本的可以用一个m维向量表示: X =( x1,x2,... , xm ),  同样地…
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/7 14:50 # @Author : gylhaut # @Site : "http://www.cnblogs.com/gylhaut/" # @File : KNNAlgorithm.py # @Software: PyCharm # coding:utf-8 from numpy import * import operator ##给出训练数据以及对…
步骤 将目标网站下的页面抓取下来 将抓取下来的数据根据一定规则进行提取   具体流程 将目标网站下的页面抓取下来 1. 倒库 import requests 2.头信息(有时候可不写) headers = { #请求身份/默认为User-Agent:python 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Saf…
import numpy as np import operator as op from os import listdir def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize,1)) - dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distan…
实验设备与软件环境 硬件环境:内存ddr3 4G及以上的x86架构主机一部 系统环境:windows 软件环境:Anaconda2(64位),python3.5,jupyter 内核版本:window10.0 实验内容和原理 (1)实验内容: 使用k近邻算法改进约会网站的配对效果.海伦使用约会网址寻找适合自己的约会对象,约会网站会推荐不同的人选.她将曾经交往过的的人总结为三种类型:不喜欢的人.魅力一般的人.极具魅力的人.尽管发现了这些规律,但依然无法将约会网站提供的人归入恰当的分类.使用KNN算…
前言 由于之后要做一个实验,需要用到大量豆瓣用户的电影数据,因此想到了从豆瓣电影的“看过这部电影 的豆瓣成员”页面上来获取较为活跃的豆瓣电影用户. 链接分析 这是看过"模仿游戏"的豆瓣成员的网页链接:http://movie.douban.com/subject/10463953/collections. 一页上显示了20名看过这部电影的豆瓣用户.当点击下一页时,当前连接变为:http://movie.douban.com/subject/10463953/collections?st…
KNN算法的实现 import pandas as pd from math import dist k = int(input("请输入k值:")) dataTest = pd.read_csv('iristest.csv', header=None).values trainData = pd.read_csv('iristrain.csv', header=None).values # 用于我懒得把测试数据和训练数据封装成不同类,所以就会在成员变量里面同时出现测试数据专有的属性和…
最近邻分类 概念讲解 我们使用的是scikit-learn 库中的neighbors.KNeighborsClassifier 来实行KNN. from sklearn import neighbors neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30,p=2, metric='minkowski', metric_params=None, n_jobs=…
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表.判断邻居就是用向量距离大小来刻画.          kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. kNN方法在类…
1 引言 本文将从算法原理出发,展开介绍KNN算法,并结合机器学习中常用的Iris数据集通过代码实例演示KNN算法用法和实现. 2 算法原理 KNN(kNN,k-NearestNeighbor)算法,或者说K近邻算法,应该算是机器学习中众多分类算法最好理解的一个了.古语有云:物以类聚,人以群分.没错,KNN算法正是这一思想为核心,对数据进行分类. 而所谓K近邻,意思是对于每一个待分类样本,都可以以与其最近的K个样本点的多数分类来来进行划分.举个例子,办公室新来了一个同事,他的位置边上坐着的10个…
基于OpenCV的KNN算法实现手写数字识别 一.数据预处理 # 导入所需模块 import cv2 import numpy as np import matplotlib.pyplot as plt # 显示灰度图 def plt_show(img): plt.imshow(img,cmap='gray') plt.show() # 加载数据集图片数据 digits = cv2.imread('./image/digits.png',0) print(digits.shape) plt_sh…
一.概述 KNN(K-最近邻)算法是相对比较简单的机器学习算法之一,它主要用于对事物进行分类.用比较官方的话来说就是:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例, 这K个实例的多数属于某个类,就把该输入实例分类到这个类中.为了更好地理解,通过一个简单的例子说明. 我们有一组自拟的关于电影中镜头的数据: 那么问题来了,如果有一部电影 X,它的打戏为 3,吻戏为 2.那么这部电影应该属于哪一类? 我们把所有数据通过图表显示出来(圆点代表的是自拟的数据,也称训练集:…
看了原理,总觉得需要用具体问题实现一下机器学习算法的模型,才算学习深刻.而写此博文的目的是,网上关于K-NN解决此问题的博文很多,但大都是调用Python高级库实现,尤其不利于初级学习者本人对模型的理解和工程实践能力的提升,也不利于Python初学者实现该模型. 本博文的特点: 一 全面性地总结K-NN模型的特征.用途 二  基于Python的内置模块,不调用任何第三方库实现 博文主要分为四部分: 基本模型(便于理清概念.回顾模型) 对待解决问题的重述 模型(算法)和评价(一来,以便了解模型特点…
公号:码农充电站pro 主页:https://codeshellme.github.io KNN 算法的全称是K-Nearest Neighbor,中文为K 近邻算法,它是基于距离的一种算法,简单有效. KNN 算法即可用于分类问题,也可用于回归问题. 1,准备电影数据 假如我们统计了一些电影数据,包括电影名称,打斗次数,接吻次数,电影类型,如下: 电影名称 打斗次数 接吻次数 电影类型 黑客帝国 115 6 动作片 功夫 109 8 动作片 战狼 120 9 动作片 恋恋笔记本 5 78 爱情…
邻近算法 或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表. 关于K最近邻算法,非常好的一篇文章:KNN算法理解 写在前面的:Python2.7 数据iris: http://pan.baidu.com/s/1bHuQ0A   测试数据集: iris的第1行数据: 训练数据: iris的2到150行数据 #coding:utf-8 import pand…
使用Python实现k-近邻算法的一般流程为: 1.收集数据:提供文本文件 2.准备数据:使用Python解析文本文件,预处理 3.分析数据:可视化处理 4.训练算法:此步骤不适用与k——近邻算法 5.测试算法:使用海伦提供的部分数据作为测试样本.测试样本与非测试样本的区别在于:测试样本是已经完成分类的数据,如果预测分类与实际类别不一样,则标记为一个错误. 6.使用算法:产生简单的命令行程序,然后海伦可以输入一些特征数据来判断对方是否为自己喜欢的类型. 一.数据集介绍: 海伦女士一直使用在线约会…
kNN是一种常见的监督学习方法.工作机制简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k各训练样本,然后基于这k个“邻居”的信息来进行预测,通常,在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果:在回归任务中可以使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果:还可以基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.[1] kNN的伪代码如下:[2] 对未知类别属性的数据集中的每个点依次执行以下操作: (1)计算已知类别数据集…
目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com/tag/#/?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE 有3个字段是非常重要的: 1.sort=T 2.range=0,10 3.tag…
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.谁和我隔得近,我就跟谁是一类,有点中国古语说的近墨者黑近朱者赤意思.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. KNN方法虽然从原理上也依赖于极限定理,但在类…
具体knn算法概念参考knn代码python实现上面是参考<机器学习实战>的代码,和knn的思想 # _*_ encoding=utf8 _*_ import numpy as npimport tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data # 导入手写体识别的数据mnist = input_data.read_data_sets("../data", one_hot=T…
前面一个博客我们用Scikit-Learn实现了中文文本分类的全过程,这篇博客,着重分析项目最核心的部分分类算法:朴素贝叶斯算法以及KNN算法的基本原理和简单python实现. 3.1 贝叶斯公式的推导 简单介绍一下什么是贝叶斯: 让我们从一个故事开始. 1 看着后视镜往前开车 想象这么一个场景,我开着车,经过笔直的大道,快速地往下一个路口驶去.我知道,到了下一个路口就要右转了. 这件事情很简单,我坐在驾驶室内,看到下一个路口,往右边打方向盘就好了: 突然,不管什么原因(这故事是我写的,可以安排…
一.KNN简介 1.KNN算法也称为K邻近算法,是数据挖掘分类技术之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表. 2.KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. KNN算法在类别决策时,只与极少量的相邻样本有关.由于KNN算法主要靠周围有限的邻近的样本,而不是靠判别类…
KNN最近邻算法原理 KNN英文全称K-nearst neighbor,中文名称为K近邻算法,它是由Cover和Hart在1968年提出来的 KNN算法原理: 1. 计算已知类别数据集中的点与当前点之间的距离: 2. 按照距离递增次序排序: 3. 选择与当前距离最小的k个点: 4. 确定前k个点所在类别的出现概率 5. 返回前k个点出现频率最高的类别作为当前点的预测分类   如果数据集中序号1-12为已知的电影分类,分为喜剧片.动作片.爱情片三个种类,使用的特征值分别为搞笑镜头.打斗镜头.拥抱镜…
前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- import urllibimport urllib2import sysimport reimport sslimport openpyxlimport MySQLdbimport time #from bs4 import BeautifulSoup #修改系统默认编码为utf-8…