K-meas 聚类、KNN算法、决策树、随机森林

K-means 算法步骤

K-means 聚类的流程分为两个主要步骤:分配(Assignment)和更新(Update)。以下是详细步骤:

  1. 选择 K 值: 设定簇的数量 K。
  2. 初始化簇中心:随机选择 K 个数据点作为初始簇中心(centroids)。
  3. 分配步骤(Assignment Step): 对于数据集中的每个点,将它分配到最近的簇中心对应的簇。这里的"距离"通常使用欧氏距离(Euclidean distance)。
  4. 更新步骤(Update Step): 根据当前的簇分配,重新计算每个簇的中心,即计算簇内所有点的均值作为新的簇中心。
  5. 重复 3 和 4 步:不断重复分配和更新步骤,直到簇中心不再发生变化(收敛)或达到指定的最大迭代次数。

随机森林:

1. 原理

随机森林是一种集成学习方法,它由多个决策树组成,每个决策树都是一个弱学习器。在随机森林中,每个决策树都是基于对训练数据的随机子集进行训练而生成的。在进行预测时,随机森林会对每棵树的预测结果进行平均或投票,以得到最终的预测结果。

2. 工作流程

随机森林回归的工作流程如下:

步骤1:随机选择样本集

从训练数据集中随机选择一个样本集,这个样本集的大小通常和原始训练数据集的大小相同,但是每个样本的选择是随机的,并且可能会有重复。

步骤2:随机选择特征

对于每个决策树的训练过程中,从所有特征中随机选择一个子集。这个子集的大小通常小于总特征数,这样可以保证每个决策树的差异性。

步骤3:训练决策树

使用步骤1和步骤2中选择的样本集和特征子集,训练一个决策树模型。通常使用基尼系数或信息增益等指标来进行节点的划分,直到达到停止条件(如树的深度达到预定值)为止。

步骤4:重复步骤2和步骤3

重复多次步骤2和步骤3,生成多棵决策树。每棵树都是通过不同的样本集和特征子集训练得到的,因此它们之间具有一定的差异性。

步骤5:预测

对于回归问题,随机森林通过对每棵树的预测结果进行平均,得到最终的预测结果。

对于分类问题,对预测结果进行投票,获取投票最多的结果作为分类结果

3. 优缺点

优点:

鲁棒性强: 随机森林能够处理缺失数据和不平衡数据,并且不容易受到噪声的影响。

准确性高: 由于随机森林是通过多棵决策树集成而成,因此通常具有较高的准确性。

可解释性: 可以通过分析每棵树的结构来理解模型的预测过程,提高模型的可解释性。

缺点:

计算资源消耗大: 随机森林由多个决策树组成,训练和预测过程需要消耗大量的计算资源。

可能过拟合: 当训练样本较少或者特征维度较高时,随机森林容易过拟合。

不适合处理高维稀疏数据: 随机森林在处理高维稀疏数据时效果不佳。

KNN算法:

1、原理

K近邻(K-Nearest Neighbors)是一种基于实例的惰性学习 算法,用于分类与回归任务。其核心思想:相似样本在特征空间中距离相近。通过计算待测样本与训练集的距离,选取最近的K个邻居,根据邻居的类别投票决定分类结果。

2、 核心流程

  1. 输入:带标签的训练集、待分类样本、K值(邻居数)

  2. 计算距离:待测样本与所有训练样本的距离(如欧氏距离)

  3. 选择邻居:取距离最近的K个样本

  4. 投票决策:统计K个邻居的类别标签,多数类即为预测结果

3、K值选择

相关推荐
博语小屋4 小时前
力扣 15.三数之和(medium)(双指针)
算法·leetcode·职场和发展
无敌最俊朗@4 小时前
双指针-力扣hot100-移动零.283
算法·leetcode·职场和发展
练习时长一年4 小时前
LeetCode热题100(腐烂的橘子)
算法·leetcode·职场和发展
Тиё Сиротака9 小时前
红包分配算法的严格数学理论与完整实现
算法
生信大表哥10 小时前
单细胞测序分析(五)降维聚类&数据整合
linux·python·聚类·数信院生信服务器
potato_may10 小时前
链式二叉树 —— 用指针构建的树形世界
c语言·数据结构·算法·链表·二叉树
java修仙传11 小时前
每日一题,力扣560. 和为 K 的子数组
算法·leetcode
ada7_11 小时前
LeetCode(python)——148.排序链表
python·算法·leetcode·链表
点云SLAM11 小时前
点云配准算法之-Voxelized GICP(VGICP)算法
算法·机器人·gpu·slam·点云配准·vgicp算法·gicp算法
资深web全栈开发13 小时前
LeetCode 3625. 统计梯形的数目 II
算法·leetcode·组合数学