K最近邻算法:简单高效的分类和回归方法(二)

简介: K最近邻算法:简单高效的分类和回归方法(二)

🍀KNN算法的封装调用

封装代码如下

%run my_knn/my_knn.py

在封装之前,我们需要在同级目录下准备一个my_knn文件夹以及在文件夹下准备一个my_knn.py文件

在调用之前需要先实例化,自定义的类名如下Knn

knn = Knn()  # 实例化
knn.fit(X_train,y_train)
knn.predict(np.array(([4,2],[2,5],[9,6]))) # 注意括号

运行结果如下

当然如上节所说,咱自己实现的还是过于简单,那么真正的Knn算法又是什么样呢?


🍀sklearn介绍

🍀什么是sklearn?

scikit-learn(sklearn)是一个开源的Python机器学习库,建立在NumPy、SciPy和matplotlib等科学计算库之上。它提供了大量的机器学习算法实现,包括分类、回归、聚类、降维等。sklearn还包括用于模型评估、数据预处理和特征选择的工具,以及用于模型训练和预测的API接口。

🍀安装sklearn

pip install -U scikit-learn

🍀sklearn的特点

  • 简单易用:sklearn提供了简洁和一致的API接口,方便使用者快速上手
  • 多样化的算法:sklearn集成了各种机器学习算法,包括监督学习、无监督学习和半监督学习算法
  • 数据预处理:sklearn提供了丰富的数据预处理工具,包括数据的缺失值处理、数据标准化、特征选择等
  • 模型评估与选择:sklearn提供了多种模型评估指标和交叉验证方法,帮助用户评估和选择最佳模型
  • 高效的并行计算:sklearn在处理大规模数据集时,能够利用并行计算来加速计算过程

🍀使用sklearn进行机器学习任务

使用sklearn进行机器学习任务通常包括以下步骤:

  • 加载数据集:sklearn提供了各种经典的数据集,方便使用者进行实验
  • 数据预处理:对数据进行清洗、缺失值处理、特征选择等预处理操作
  • 划分数据集:将数据集划分为训练集和测试集,用于模型的训练和评估
  • 选择模型:选择适合问题的机器学习算法
  • 模型训练:使用训练集训练模型
  • 模型评估:使用测试集对模型进行评估和验证
  • 模型预测:使用已训练好的模型对新数据进行预测

🍀sklearn中调用KNN算法

首先需要导入必要的库

from sklearn.neighbors import KNeighborsClassifier
import numpy as np

之后实例化

knn_clf = KNeighborsClassifier()

最后在给定的数据集上进行预测即可

raw_data_X = [[3.3935, 2.3312],
              [3.1101, 1.7815],
              [1.3438, 3.3684],
              [3.5823, 4.6792],
              [2.2804, 2.8670],
              [7.4234, 4.6965],
              [5.7451, 3.5340],
              [9.1722, 2.5111],
              [7.7928, 3.4241],
              [7.9398, 0.7916]]
raw_data_y =[0, 0, 0, 0, 0, 1, 1, 1, 1, 1]  #  0是良性,1是恶性
X_train = np.array(raw_data_X)
y_train = np.array(raw_data_y)
knn_clf.fit(X_train,y_train)
• 1
x = np.array([8.0936, 3.3657]).reshape(1,-1)
knn_clf.predict(x)

运行结果如下


🍀浅谈分类问题和回归问题

  • 分类问题
    分类问题是指将输入数据分为不同的类别或标签。在分类问题中,目标是预测一个样本属于预定义类别中的哪一类。例如,将电子邮件归类为垃圾邮件或非垃圾邮件,将图像识别为猫或狗,将肿瘤分类为良性或恶性等。分类问题一般用于离散型目标变量。
  • 回归问题
    回归问题是指根据输入的特征预测一个连续的数值或浮点型输出。在回归问题中,目标是预测一个连续值而不是离散的类别。例如,预测房屋的售价、预测销售额的趋势、预测股票价格等。回归问题一般用于连续型目标变量。
  • 区别
    分类问题和回归问题在目标变量的类型上有所不同。分类问题涉及到离散型的目标变量,例如类别标签,需要预测样本所属的类别。而回归问题涉及到连续型的目标变量,需要预测数值型的输出。

在算法选择上,分类问题和回归问题通常使用不同的机器学习算法。常用的分类算法包括K最近邻(KNN)、决策树、支持向量机(SVM)、朴素贝叶斯等,而常用的回归算法包括线性回归、岭回归、随机森林、梯度提升等。

🍀总结

总之,KNN算法是一个简单而有效的机器学习算法,适用于许多分类和回归问题。通过选择适当的参数和数据预处理技术,可以提高算法的性能和准确性。

挑战与创造都是很痛苦的,但是很充实。


相关文章
|
28天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
41 3
|
1月前
|
算法 索引
HashMap扩容时的rehash方法中(e.hash & oldCap) == 0算法推导
HashMap在扩容时,会创建一个新数组,并将旧数组中的数据迁移过去。通过(e.hash & oldCap)是否等于0,数据被巧妙地分为两类:一类保持原有索引位置,另一类索引位置增加旧数组长度。此过程确保了数据均匀分布,提高了查询效率。
37 2
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
90 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
搜索推荐 Shell
解析排序算法:十大排序方法的工作原理与性能比较
解析排序算法:十大排序方法的工作原理与性能比较
49 9
|
1月前
|
存储 算法 Java
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
前缀(波兰)表达式、中缀表达式和后缀(逆波兰)表达式的基本概念、计算机求值方法,以及如何将中缀表达式转换为后缀表达式,并提供了相应的Java代码实现和测试结果。
44 0
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
|
1月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
29 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
30天前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
21 0
|
3月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
3月前
|
JavaScript 算法 前端开发
JS算法必备之Array常用操作方法
这篇文章详细介绍了JavaScript中数组的创建、检测、转换、排序、操作方法以及迭代方法等,提供了数组操作的全面指南。
JS算法必备之Array常用操作方法
|
2月前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
47 9