24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?
24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?
讲述:陈旸
时长08:30大小7.79M
KNN 的工作原理
KD 树
用 KNN 做回归
总结
上一篇文章思考题的代码
赞 7
提建议
精选留言(30)
- 白夜置顶2019-02-14曼哈顿距离写错了吧? 应该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来表示一个点的定义。
共 4 条评论16 - Python2019-02-06老师,能不能推荐一下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等
26 - Python2019-02-06k越少就会越拟合,越多则越不拟合。最后就是为了寻找k的数值
编辑回复: 对的,K值是个实践出来的结果,不是事先而定的
9 - FORWARD―MOUNT2019-02-15KNN回归,既然已经知道某部电影的位置了,也就知道接吻次数和打斗次数。还用相邻的电影做回归求接吻次数和打斗次数? 这个表示没懂。
编辑回复: 一个很好的问题,回归一般是预测某个属性值,这个属性值是连续型的,而不是离散型的。如果是离散型的就变成了分类问题。比如 对于这个待测点的已知属性值,我们先计算这个待测点与已知点的距离,然后选择最近的K个点。这样也就是知道了这个待测点和哪K个已知点最接近。那么这个待测点的未知属性值就等于这K个点的该属性值的平均值
共 3 条评论8 - 王彬成2019-02-22KNN 的算法原理和工作流程是怎么样的?KNN 中的 K 值又是如何选择的? 1、kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。 2、整个计算过程分为三步: 1)计算待分类物体与其他物体之间的距离; 2)统计距离最近的 K 个邻居; 3)对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。 3、我们一般采用交叉验证的方式选取 K 值。 交叉验证的思路就是,把样本集中的大部分样本作为训练集,剩余的小部分样本用于预测,来验证分类模型的准确性,准确率最高的那一个最终确定作为 K 值。展开
作者回复: 总结整理的不错
5 - 文晟2019-02-06老师,那几个距离公式怎么跟别处的不一样,记得课本上是x1-x2而不是x1-y1这种形式
编辑回复: 这个主要是因为后面有个n维空间,所以我定义的两个点分别是(x1,x2,...,xn)和(y1,y2,...,yn)。对应的公式是用|x1-y1|+|x2-y2|。看起来会和我们之前学到的不一样,关键还是在于对点的定义上。
共 2 条评论5 - third2019-02-18跟谁像,就是谁 计算距离 通过交叉验证的方法,找到较小K,准确还较高的 计算K个近邻, 跟谁多展开
作者回复: 对的
2 - 贺中堃2020-07-131.找K个最近邻。KNN分类算法的核心就是找最近的K个点,选定度量距离的方法之后,以待分类样本点为中心,分别测量它到其他点的距离,找出其中的距离最近的“TOP K”,这就是K个最近邻。 2.统计最近邻的类别占比。确定了最近邻之后,统计出每种类别在最近邻中的占比。 3.选取占比最多的类别作为待分类样本的类别。 k值一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值。展开
作者回复: k值的确定方法常使用手肘法或者轮廓系数,k值一般会先取2并循环增加,直到找到手肘法拐点处的k或者使轮廓系数最大的k。
1 - §mc²ompleXWr2020-06-18KNN回归:如果某个特征属性未知,我怎么算距离?
作者回复: 如果这个特征的属性未知值较多,那这一列可以考虑剔除。
1 - timeng272020-04-05k值的选取是否可以参考样本中的分类比例和个数?比如样本中最少的一个分类是10个,那么k肯定不能取10。回不会有类似的方法取k值?1
- 滨滨2019-03-30kd树的简单解释https://blog.csdn.net/App_12062011/article/details/51986805
作者回复: 多谢分享
1 - 滨滨2019-03-301. KNN的算法原理 离哪个邻居越近,属性与那个邻居越相似,和那个邻居的类别越一致。 2. KNN的工作流程 首先,根据场景,选取距离的计算方式 然后,统计与所需分类对象距离最近的K个邻居 最后,K个邻居中,所占数量最多的类别,即预测其为该分类对象的类别 3. K值的选取 交叉验证的方式,即设置多个测试集,用这些测试集测试多个K值,那个测试集所预测准确率越高的,即选取其相应的K值。展开
作者回复: 总结的不错
1 - fancy2019-03-021. KNN的算法原理 离哪个邻居越近,属性与那个邻居越相似,和那个邻居的类别越一致。 2. KNN的工作流程 首先,根据场景,选取距离的计算方式 然后,统计与所需分类对象距离最近的K个邻居 最后,K个邻居中,所占数量最多的类别,即预测其为该分类对象的类别 3. K值的选取 交叉验证的方式,即设置多个测试集,用这些测试集测试多个K值,那个测试集所预测准确率越高的,即选取其相应的K值。展开
作者回复: 很好的总结
1 - Python2019-02-06老师,在实际工作中,我们直接调库和调参就行了吗?
作者回复: 有时候需要调超参数的,所以你可以使用GridSearchCV来帮你寻找最优的超参数
1 - 顾仲贤2019-02-06老师,您在KNN做回归时举例说已知分类求属性。问题是,在没有属性只知道分类的情况下,怎么求出k个近邻呢?
作者回复: 一开始都是随机的,经过多次迭代之后,分类状态就会稳定下来,我们求的是最终稳定的状态,一开始的随机状态,即使是不正确的,也没有关系
1 - AI悦创2022-11-14 来自福建很不错,讲了等于没讲,所以K怎么找?具体教学都没有,怎么实战?
- 彭涛2021-06-16同样 KNN 也可以用于推荐算法,虽然现在很多推荐系统的算法会使用 TD-IDF、协同过滤、Apriori 算法,不过针对数据量不大的情况下,采用 KNN 作为推荐算法也是可行的。 请问:总结中的 TD-IDF 是否应该为:TF-IDF ?
- McKee Chen2020-12-22KNN算法原理: 1.根据业务场景,选择合适的距离计算公式,计算待分类点与其他样本点之间的距离 2.统计与待分类点距离最近的K个邻居 3.观察K个邻居的分类占比,分类占比最高的即为待分类点所属的类别 K值的选择: 交叉验证法: 选取样本集中的大部分样本为训练集,剩下的样本为测试集,不断训练模型,得到不同的模型准确率,直至得到最高的准确率,此时的K值为最优值 KD树: 待学习展开
- 鱼非子2020-03-04KNN算法原理:物以类聚 工作流程:计算一个样本与其它样本的距离,选择最近的k个样本,k个样本中哪种类别最多,这个样本就属于哪种类别 k值选择:利用交叉验证的方法
- 学技术攒钱开宠物店2020-03-03回归已经知道值了呀,为什么还计算距离平均