| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习笔记 -> 正文阅读 |
|
[人工智能]机器学习笔记 |
KNN算法kNN 算法其实是众多机器学习算法中最简单的一种,因为该算法的思想完全可以用 8 个字来概括:“近朱者赤,近墨者黑”。 假设现在有这样的一个样本空间,该样本空间里有宅男和文艺青年这两个类别,其中红圈表示宅男,绿圈表示文艺青年。如下图所示: 其实构建出这样的样本空间的过程就是 kNN 算法的训练过程。可想而知 kNN 算法是没有训练过程的,所以 kNN 算法属于懒惰学习算法。 假设我在这个样本空间中用黄圈表示,如下图所示: 现在使用 kNN 算法来鉴别一下我是宅男还是文艺青年。首先需要计算我与样本空间中所有样本的距离。假设计算得到的距离表格如下:
然后找出与我距离最小的 k 个样本(k 是一个超参数,需要自己设置,一般默认为 5),假设与我离得最近的 5 个样本的标签和距离如下:
最后只需要对这 5 个样本的标签进行统计,并将票数最多的标签作为预测结果即可。如上表中,宅男是 4 票,文艺青年是 1 票,所以我是宅男。 注意:有的时候可能会有票数一致的情况,比如 k=4 时与我离得最近的样本如下: 样本编号 4 9 11 13
python sklearn中含有可以实现KNN的模板代码如下
当我们的kNN算法需要不同的参数时,上面的代码就不能满足我的需要了。所需要做的改变是在
在使用kNN算法进行分类器时,我们是这样子使用sklearn库的:
而对应的,当我们需要使用kNN算法进行回归器时,只需要把KNeighborsClassifier换成KNeighborsRegressor即可。代码如下:
KNeighborsRegressor和KNeighborsClassifier的参数是完全一样的 感知机如果说KNN算法每次预测一个数据,都需要计算他和所有样本的距离,那不如一次性根据样本找到一个超平面直,根据超平面接划分数据
这里,我们利用西瓜书上的例子来构造数据,实例中包括特征和类别。一共构造了帮助预测的特征一共有 30 个:色泽、根蒂、敲声等等。类别为是好瓜与不是好瓜。部分数据如下: 由于我们的模型只能对数字进行计算。所以,我们用x1表示色泽,x2表示根蒂,x3表示敲声 。y 表示类别。 比如说,输入的特征值分别是青绿,蜷缩,浊响对应特征向量为 (0,0,0)。 其中x i为第 i 个特征值,wi为第 i 个特征所对应的权重,b 为偏置。
那么,感知机使用的损失函数是怎么样的呢?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 8:37:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |