| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【零基础必备】监督学习之K近邻算法三元预测分类 -> 正文阅读 |
|
[人工智能]【零基础必备】监督学习之K近邻算法三元预测分类 |
目录 数据准备鸢尾花数据附带在Python scikit-learn 的 datasets 模块中,我们只需要调用这个数据即可,用于打开机器学习的大门。
load_iris 返回的 iris 对象是一个 Bunch 对象,与字典非常相似,里面包含键和值: 我们如何区分了,看看下面这个例子:
这个就是它们的区别,有些东西需要了解,不一定要精通 数据展示
因为我们的数据类型类型现在已经变成了numpy的数组类型了,所以我们用的是索引切片,约束我们的数据。 模型搭建在机器学习的过程中,模型的选择和搭建是非常的重要的,一个好的模型可以让我们的数据变得更有价值。
scikit-learn 中的数据通常用大写的 X 表示,而标签用小写的 y 表示。这是受到了数学标准公式 f(x)=y 的启发,其中 x 是函数的输入, y 是输出。我们用大写的 X 是因为数据是一个二维数组(矩阵),用小写的 y 是因为目标是一个一维数组(向量),这也是数学中的约定。 scikit-learn 中的 train_test_split 函数可以打乱数据集并进行拆分。这个函数将 75% 的 为了确保多次运行同一函数能够得到相同的输出,我们利用 random_state 参数指定了随机 我们可以看看我们的具体的数据类型,这样我们就可以明显的了解到为什么会有两个变量接收,在上面的参数解释,也说明了,因为是一个二维数组,对应的数据 ?观察数据和检查数据 在构建机器学习模型之前,通常最好检查一下数据,看看如果不用机器学习能不能轻松完成任务,或者需要的信息有没有包含在数据中。
?通过观察我们,可以发现不同的标签,也呈现出“物以类聚”的特点,这就说明机器学习可以比较很好的区分出,也是比较的适合分类算法的 参数解释 dataframe:iris_dataframe 按行取数据 构建模型K近邻算法k 近邻算法中 k 的含义是,我们可以考虑训练集中与新数据点最近的任意 k 个邻居(比如 knn 对象对算法进行了封装,既包括用训练数据构建模型的算法,也包括对新数据点进行 ?根据我们模型的预测,这朵新的鸢尾花属于类别 0,也就是说它属于 setosa 品种,这里我们也可以自动的要求我们的用户输入,直接可以出结果。 模型评估我们可以通过计算精度(accuracy)来衡量模型的优劣,精度就是品种预测正确的花所占的比例: ?可以使用 knn 对象的 score 方法来计算测试集的精度: 总结与归纳我们构思了一项任务,要利用鸢尾花的物理测量数据来预测其品种。我们在构建模型时用到了由专家标注过的测量数据集,专家已经给出了花的正确品种,因此这是一个监督学习问题。一共有三个 鸢尾花(Iris)数据集包含两个 NumPy 数组:一个包含数据,在 scikit-learn 中被称为 X;一个包含正确的输出或预期输出,被称为 y。数组 X 是特征的二维数组,每个数据点对应一行,每个特征对应一列。数组 y 是一维数组,里面包含一个类别标签,对每个样本都是一个 0 到 2 之间的数。 ?K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想) 这里我们使用了,K近邻算法进行模型的搭建,当然也可以运用其他的算法模型进行预测,比如逻辑回归...... ??? 使用k近邻算法的条件: ??????????????????????? 1. 你需要一个训练的数据集,这个数据集包含各种特征值和对应的label值 ,在使用前需要将各种特征归一化处理。 ??????????????????????? 2. 利用训练的数据集来对要分类的数据进行分类: ??????????????????????? 根据欧式距离计算出要预测的数据与训练数据集中距离最短的前k个值,然后根据前k个值对应的label ??????????????????????? 统计出 label值最最多的,如选择的前k个对应的label:['dog','dog','dog','fish'] ,那么这个结果是dog类。 ???????????? k近邻算法特点: ????????????????????? 优点: 计算精度高,不受异常值影响。 ????????????????????? 缺点: 计算复杂度高,空间复杂度高 ???????????????????? 适用于: 带lable的数值类 每文一语
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 20:05:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |