机器学习day2

一、KNN算法简介

KNN 算法,或者称 k最邻近算法,是 有监督学习中的分类算法 。它可以用于分类或回归问题,但它通常用作分类算法。

二、KNN分类流程

1.计算未知样本到每一个训练样本的距离

2.将训练样本根据距离大小升序排列

3.取出距离最近的 K 个训练样本

4.进行多数表决,统计 K 个样本中哪个类别的样本个数最多

5.将未知的样本归属到出现次数最多的类别

三、KNN回归流程

1.计算未知样本到每一个训练样本的距离

2.将训练样本根据距离大小升序排列

3.取出距离最近的 K 个训练样本

4.把这个 K 个样本的目标值计算其平均值

5.作为将未知的样本预测的值

四、KNN算法中K的选择

K值过小,过拟合(模型更易受到异常点影响)

K值过大,欠拟合

五、KNN算法API使用

1.分类问题

scikit-learn中,可以使用KNeighborsClassifier类来实现KNN分类。以下是一个简单的示例:

python 复制代码
# 导包
from sklearn.neighbors import KNeighborsClassifier

# 导数据
x = [[0, 1, 3], [1, 3, 2], [2, 4, 5], [3, 6, 4]]
y = [0, 0, 1, 1]

# 实例化对象
model = KNeighborsClassifier(n_neighbors=3) #参数n_neighbors指定了在预测时使用的邻居数量

# 训练(-->评估)
model.fit(x, y) #fit计算每个数据点之间的距离

# 预测
myret = model.predict([[4, 3, 7]])

print(f'预测值:{myret}')

2.回归问题

对于回归问题,scikit-learn提供了KNeighborsRegressor类。以下是一个简单的示例:

python 复制代码
# 导包
from sklearn.neighbors import KNeighborsRegressor
# 导数据
x = [[1, 2, 3], [2, 4, 5], [2, 3, 6], [4, 5, 1]]
y = [0.1, 0.2, 0.3, 0.4]
# 实例化对象
model = KNeighborsRegressor(n_neighbors=3)
# 训练
model.fit(x, y)
# 评估
mypre = model.predict([[2, 6, 3]])
print(f"预测值:{mypre}")
相关推荐
Hcoco_me26 分钟前
大模型面试题90:half2,float4这种优化 与 pack优化的底层原理是什么?
人工智能·算法·机器学习·langchain·vllm
浅念-27 分钟前
链表经典面试题目
c语言·数据结构·经验分享·笔记·学习·算法
Python算法实战27 分钟前
《大模型面试宝典》(2026版) 正式发布!
人工智能·深度学习·算法·面试·职场和发展·大模型
菜鸟233号2 小时前
力扣213 打家劫舍II java实现
java·数据结构·算法·leetcode
狐572 小时前
2026-01-18-LeetCode刷题笔记-1895-最大的幻方
笔记·算法·leetcode
Q741_1472 小时前
C++ 队列 宽度优先搜索 BFS 力扣 662. 二叉树最大宽度 每日一题
c++·算法·leetcode·bfs·宽度优先
Pluchon2 小时前
硅基计划4.0 算法 动态规划进阶
java·数据结构·算法·动态规划
wzf@robotics_notes3 小时前
振动控制提升 3D 打印机器性能
嵌入式硬件·算法·机器人
机器学习之心3 小时前
MATLAB基于多指标定量测定联合PCA、OPLS-DA、FA及熵权TOPSIS模型的等级预测
人工智能·算法·matlab·opls-da
Loo国昌3 小时前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain