数据分析实战45讲
陈旸
清华大学计算机博士
立即订阅
17314 人已学习
课程目录
已完结 48 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你为什么需要数据分析能力?
免费
第一模块:数据分析基础篇 (16讲)
01丨数据分析全景图及修炼指南
02丨学习数据挖掘的最佳路径是什么?
03丨Python基础语法:开始你的Python之旅
04丨Python科学计算:用NumPy快速处理数据
05丨Python科学计算:Pandas
06 | 学数据分析要掌握哪些基本概念?
07 | 用户画像:标签化就是数据的抽象能力
08 | 数据采集:如何自动化采集数据?
09丨数据采集:如何用八爪鱼采集微博上的“D&G”评论
10丨Python爬虫:如何自动化下载王祖贤海报?
11 | 数据科学家80%时间都花费在了这些清洗任务上?
免费
12 | 数据集成:这些大号一共20亿粉丝?
13 | 数据变换:考试成绩要求正态分布合理么?
14丨数据可视化:掌握数据领域的万金油技能
15丨一次学会Python数据可视化的10种技能
16丨数据分析基础篇答疑
第二模块:数据分析算法篇 (20讲)
17 丨决策树(上):要不要去打篮球?决策树来告诉你
18丨决策树(中):CART,一棵是回归树,另一棵是分类树
19丨决策树(下):泰坦尼克乘客生存预测
20丨朴素贝叶斯分类(上):如何让机器判断男女?
21丨朴素贝叶斯分类(下):如何对文档进行分类?
22丨SVM(上):如何用一根棍子将蓝红两色球分开?
23丨SVM(下):如何进行乳腺癌检测?
24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?
25丨KNN(下):如何对手写数字进行识别?
26丨K-Means(上):如何给20支亚洲球队做聚类?
27丨K-Means(下):如何使用K-Means对图像进行分割?
28丨EM聚类(上):如何将一份菜等分给两个人?
29丨EM聚类(下):用EM算法对王者荣耀英雄进行划分
30丨关联规则挖掘(上):如何用Apriori发现用户购物规则?
31丨关联规则挖掘(下):导演如何选择演员?
32丨PageRank(上):搞懂Google的PageRank算法
33丨PageRank(下):分析希拉里邮件中的人物关系
34丨AdaBoost(上):如何使用AdaBoost提升分类器性能?
35丨AdaBoost(下):如何使用AdaBoost对房价进行预测?
36丨数据分析算法篇答疑
第三模块:数据分析实战篇 (7讲)
37丨数据采集实战:如何自动化运营微博?
38丨数据可视化实战:如何给毛不易的歌曲做词云展示?
39丨数据挖掘实战(1):信用卡违约率分析
40丨数据挖掘实战(2):信用卡诈骗分析
41丨数据挖掘实战(3):如何对比特币走势进行预测?
42丨当我们谈深度学习的时候,我们都在谈什么?
43丨深度学习(下):如何用Keras搭建深度学习网络做手写数字识别?
第四模块:数据分析工作篇 (2讲)
44丨如何培养你的数据分析思维?
45丨求职简历中没有相关项目经验,怎么办?
加餐 (1讲)
加餐丨在社交网络上刷粉刷量,技术上是如何实现的?
结束语 (1讲)
结束语丨当大家都在讲知识和工具的时候,我更希望你重视思维和实战
数据分析实战45讲
登录|注册

24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?

陈旸 2019-02-06
今天我来带你进行 KNN 的学习,KNN 的英文叫 K-Nearest Neighbor,应该算是数据挖掘算法中最简单的一种。
我们先用一个例子体会下。
假设,我们想对电影的类型进行分类,统计了电影中打斗次数、接吻次数,当然还有其他的指标也可以被统计到,如下表所示。
我们很容易理解《战狼》《红海行动》《碟中谍 6》是动作片,《前任 3》《春娇救志明》《泰坦尼克号》是爱情片,但是有没有一种方法让机器也可以掌握这个分类的规则,当有一部新电影的时候,也可以对它的类型自动分类呢?
我们可以把打斗次数看成 X 轴,接吻次数看成 Y 轴,然后在二维的坐标轴上,对这几部电影进行标记,如下图所示。对于未知的电影 A,坐标为 (x,y),我们需要看下离电影 A 最近的都有哪些电影,这些电影中的大多数属于哪个分类,那么电影 A 就属于哪个分类。实际操作中,我们还需要确定一个 K 值,也就是我们要观察离电影 A 最近的电影有多少个。

KNN 的工作原理

“近朱者赤,近墨者黑”可以说是 KNN 的工作原理。整个计算过程分为三步:
计算待分类物体与其他物体之间的距离;
统计距离最近的 K 个邻居;
对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。
K 值如何选择
你能看出整个 KNN 的分类过程,K 值的选择还是很重要的。那么问题来了,K 值选择多少是适合的呢?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《数据分析实战45讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(22)

  • 白夜 置顶
    曼哈顿距离写错了吧? 应该d=|X1-X2|+|Y1-Y2|吧

    编辑回复: 我之前在微信群里说过这个问题,这个主要是因为后面有个n维空间,所以我定义的两个点分别是(x1,x2,...,xn)和(y1,y2,...,yn)。所以你看到的公式是用|x1-y1|+|x2-y2|,看起来会和我们之前学到的不一样,关键还是在于对点的定义上。你能理解公式的含义即可,另外这里主要是考虑到不光是2维的空间,如果是2维,3维我可以用字母来表示,比如用x,y,z,但是更多的维度,我在文章里是会用x1,x2,...,xn来表示一个点的定义。

    2019-02-14
    1
    6
  • Python
    老师,能不能推荐一下kaggle上谁的项目能让我们学习。

    编辑回复: Kaggle上有些项目还是不错的
    信用卡欺诈交易分类预测 https://www.kaggle.com/mlg-ulb/creditcardfraud
    比特币趋势分析
    https://www.kaggle.com/mczielinski/bitcoin-historical-data
    宇宙中的脉冲星预测 https://www.kaggle.com/pavanraj159/predicting-a-pulsar-star
    西班牙高铁票价 https://www.kaggle.com/thegurus/spanish-high-speed-rail-system-ticket-pricing
    我列举了几个,Kaggle上有不少项目值得练习和研究,基本上你可以从Datasets和Kernels里面按照Hotness排序,找一下热门的项目,同时如果是初学者,有一些标签也可以参考,比如beginner, tutorial这种的。另外你也可以根据算法来检索比如:SVM, decision tree等

    2019-02-06
    8
  • Python
    k越少就会越拟合,越多则越不拟合。最后就是为了寻找k的数值

    编辑回复: 对的,K值是个实践出来的结果,不是事先而定的

    2019-02-06
    7
  • FORWARD―MOUNT
    KNN回归,既然已经知道某部电影的位置了,也就知道接吻次数和打斗次数。还用相邻的电影做回归求接吻次数和打斗次数?
    这个表示没懂。

    编辑回复: 一个很好的问题,回归一般是预测某个属性值,这个属性值是连续型的,而不是离散型的。如果是离散型的就变成了分类问题。比如
    对于这个待测点的已知属性值,我们先计算这个待测点与已知点的距离,然后选择最近的K个点。这样也就是知道了这个待测点和哪K个已知点最接近。那么这个待测点的未知属性值就等于这K个点的该属性值的平均值

    2019-02-15
    4
  • 文晟
    老师,那几个距离公式怎么跟别处的不一样,记得课本上是x1-x2而不是x1-y1这种形式

    编辑回复: 这个主要是因为后面有个n维空间,所以我定义的两个点分别是(x1,x2,...,xn)和(y1,y2,...,yn)。对应的公式是用|x1-y1|+|x2-y2|。看起来会和我们之前学到的不一样,关键还是在于对点的定义上。

    2019-02-06
    1
    4
  • 王彬成
    KNN 的算法原理和工作流程是怎么样的?KNN 中的 K 值又是如何选择的?
    1、kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
    2、整个计算过程分为三步:
    1)计算待分类物体与其他物体之间的距离;
    2)统计距离最近的 K 个邻居;
    3)对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。
    3、我们一般采用交叉验证的方式选取 K 值。
    交叉验证的思路就是,把样本集中的大部分样本作为训练集,剩余的小部分样本用于预测,来验证分类模型的准确性,准确率最高的那一个最终确定作为 K 值。
    2019-02-22
    2
  • fancy
    1. KNN的算法原理
    离哪个邻居越近,属性与那个邻居越相似,和那个邻居的类别越一致。
    2. KNN的工作流程
    首先,根据场景,选取距离的计算方式
    然后,统计与所需分类对象距离最近的K个邻居
    最后,K个邻居中,所占数量最多的类别,即预测其为该分类对象的类别
    3. K值的选取
    交叉验证的方式,即设置多个测试集,用这些测试集测试多个K值,那个测试集所预测准确率越高的,即选取其相应的K值。
    2019-03-02
    1
  • third
    跟谁像,就是谁

    计算距离
    通过交叉验证的方法,找到较小K,准确还较高的
    计算K个近邻,
    跟谁多
    2019-02-18
    1
  • Python
    老师,在实际工作中,我们直接调库和调参就行了吗?
    2019-02-06
    1
  • Dr. ZZZ
    老师,您在KNN做回归时举例说已知分类求属性。问题是,在没有属性只知道分类的情况下,怎么求出k个近邻呢?
    2019-02-06
    1
  • Ronnyz
    老师,KNN中的K值选取还是得不断的尝试是吗,只是最终确定K值的选取是以K折交叉验证得出的准确度的高低来确定

    作者回复: 你可以采用手肘法来确定K值,也就是肘部对应的数值作为K的取值

    2019-11-14
  • William~Zhang
    老师,请问选取k个最近的领居,看分类最多的那一类,待分类物体就属于哪一类,那请问如果,刚好k个最近领居各一半,分属于不同类,怎么办

    作者回复: 随机选一个,不用纠结,这种情况下算哪个都是正确的

    2019-11-12
  • FeiFei
    1,计算待分类物和其他物体之间的距离;
    2,统计距离最近的K的物体;
    3,K个邻居最多的分类=待分类物的分类。

    分割线

    1,太小会过于拟合
    2,太大会欠拟合
    2019-07-23
  • 闫伟
    老师,微信群是多少呀,想进群一起学习,麻烦老师加 下,vx:yw903167000
    2019-05-22
  • KNN工作原理:计算分类物体与其它物体的距离,选取k值,获得k个邻居的属性,哪种属性最多,该类就归属于这种属性。
    K值选择:交叉验证选择
    2019-04-18
  • 大鱼
    如果回归的话,怎么找到那k个相邻的点呢?除了类别,是不是还需要其他的特征来辅助,比如我是爱情电影,除了这个分类,还得有我是几级的爱情电影?
    2019-04-09
  • 滨滨
    kd树的简单解释https://blog.csdn.net/App_12062011/article/details/51986805
    2019-03-30
  • 滨滨
    1. KNN的算法原理
    离哪个邻居越近,属性与那个邻居越相似,和那个邻居的类别越一致。
    2. KNN的工作流程
    首先,根据场景,选取距离的计算方式
    然后,统计与所需分类对象距离最近的K个邻居
    最后,K个邻居中,所占数量最多的类别,即预测其为该分类对象的类别
    3. K值的选取
    交叉验证的方式,即设置多个测试集,用这些测试集测试多个K值,那个测试集所预测准确率越高的,即选取其相应的K值。
    2019-03-30
  • 上善若水
    请问TD-IDF是什么,为啥我搜的是tf-idf,是不同的命名吗?

    2019-02-26
  • 开心
    预估值就是历史的平均值,这样理解对吗?上一讲的乳腺癌的发病率是不是这样算的
    2019-02-20
收起评论
22
返回
顶部