当前位置: 首页 > web >正文

数模笔记day01(数据预处理、K-means聚类、遗传算法、概率密度分布)

一、0-1编码到整数编码转实整数(RI)编码

1.1、0-1 整数编码和实整数编码的用途


0-1 整数编码分类变量编码为0-1时使用,稀疏性好、适合无序分类,二进制优化问题(如背包问题)但无法体现 “顺序 / 量级”。线性回归、逻辑回归均不适合稀疏 0-1 特征的模型。

  实整数编码用连续十进制整数(如 1,2,3)表示,可以用做有序分类变量编码(如 “低 = 1,中 = 2,高 = 3”),优化算法中的变量映射(如遗传算法、粒子群算法),能体现 “量级关系” 的特征。

1.2、0-1 编码转化为 RI 编码具体步骤(以 “多分类变量” 为例)

  为了解决0-1 编码的维度灾难、稀疏性过高、计算效率低,在特征工程阶段遇到 “高基数类别特征”“模型对稀疏 0-1 特征不友好”“需提升训练效率” 这三类问题时, RI 编码适合一下情景如下:

  类别特征 “高基数” 时(最核心场景):当类别特征的「类别数量极多」(如用户 ID、商品 、城市编码、历史行为标签等,类别数多)

  • 此时用 RI 编码,可将「N 维 0-1 向量」压缩为「1 维实整数 / 连续值」(通过 “类别→索引映射”“频率编码”“目标编码” 等方式转化为实数值)
  • 适合用 RI 编码的替代方案:将 0-1 编码的类别特征,通过 “有序映射”(如 “低→1、中→2、高→3”)、“统计编码”(如类别出现频率、与目标变量的相关性得分)转化为实整数,让模型更易捕捉特征规律。
  • RI 编码的实际应用流程:以 “用户贷款违约预测模型” 为例,首先数据清洗后,然后识别高基数 / 需转化的特征(“职业”这种低基数的生成维度低的用 0-1 特征;“所在城市这种多个地级市的,且如果模型用 “逻辑回归”对稀疏特征不友好,需用 RI 编码),接着,RI 编码实施(将 “所在城市” 按 “该城市历史违约率” 映射为实数值如北京违约率 2.1%→2.1,转化为 1 维实整数特征),最后,将 RI 编码后的 “城市特征”,与独热编码的 “职业特征”、原始连续特征合并,输入模型训练。

二、K-means聚类

2.1 K-means聚类的建模过程

  K-means 聚类是将数据集划分为 k 个到簇心距离最小的簇的聚类方法,属于无监督学习,遵循 “数据准备→参数确定→模型训练→迭代优化” 的逻辑。K-means 的目标是最小化簇内平方和 同一聚类内的样本尽可能相似(簇内误差小),不同聚类的样本尽可能不同(簇间误差大)对于每个样本 ,计算其到每个簇中心的欧几里德距离,将样本分配给距离最近的簇中心 。对于每个簇 ,计算簇内所有样本的平均值,并将其作为新的簇中心。接着不断迭代并检查模型的收敛性,若收敛效果好,则停止迭代更新簇中心,得到最终的聚类结果。

1.数据预处理

数据清洗

  因为对数据质量敏感,需先解决 “噪声、维度、量纲” 等问题,所以处理异常值(避免簇中心偏移),避免影响聚类结果。处理缺失值对连续特征一般使用用均值 / 中位数填充,对类别特征众数填充;含类别特征如 “性别” “职业”,需先编码(K-means 基于欧氏距离计算,仅支持数值型数据;去除异常值用Z-score 法(|Z|>3)识别异常值。

特征降维

  若数据维度极高,主成分分析,保留方差最大的主成分。通过 “方差解释率” 判断,如 PCA 保留 90% 以上方差的主成分。

2.确定最优聚类数 K:肘部法则

  常规肘部图靠 “肉眼找拐点”,用 “二阶差分法” 量化拐点。(ps:一阶差分只能描述 “下降速率”,二阶差分直接描述 “下降速率的变化量,相当于簇内平方和 J “下降加速度”,精准定位最佳 k 值)。肘部图法最常用的 “聚类效果指标” 是簇内平方和,也叫 “组内平方误差”。WCSS 越小,说明簇内样本越集中、相似性越高,聚类效果越好。

步骤 1:确定 K 的候选范围

  设定一个 K 值的探索区间(如K∈[1,10])

步骤 2:对每个候选 K 值运行 K-means,计算 WCSS

  对每个 K独立运行 K-means 算法(注意:K-means 对初始质心敏感,建议多次运行取 WCSS 最小值,避免局部最优),并记录每次运行后的总 WCSS。

步骤 3:绘制肘部图(K-WCSS 曲线)

  以K 值为横轴,以对应的WCSS 为纵轴,绘制折线图,即为 “肘部图”

步骤 4:识别 “肘部点”

  曲线由 “快速陡峭下降” 转为 “平缓缓慢下降”,此点即为 “肘部点”。

3.模型训练与迭代

  此步骤为K-means 核心算法逻辑。第一步,初始化簇中心:从数据集中随机选择 K 个样本作为初始簇中心;第二步,分配样本到簇:计算每个样本到 K 个簇中心的距离;第三步,更新簇中心:对每个簇,计算簇内所有样本的 “特征均值”,将该均值作为新的簇中心;第四部,判断收敛:重复步骤二、三,直到 “簇中心不再变化” 或 “变化幅度小于阈值”,或达到最大迭代次数,停止迭代。

4.聚类结果可视化

  对于高维降维可视化,用 PCA  将数据降至 2 维,再绘制聚类散点图;Matplotlib、Seaborn绘制散点图,用不同颜色 / 形状表示不同簇,标注簇中心。

2.2 K-means++聚类算法

  K-means 的最大缺陷是初始聚类中心完全随机选择,若初始中心落在数据稀疏区域或距离过近,会导致最终聚类结果陷入 “局部最优”,而K-means++ 的优势源于 “智能初始中心选择”。

首先,进行初始聚类中心选择,步骤如下:

    第一步:随机选择第一个初始中心,从所有样本中随机挑选 1 个样本作为第一个聚类中心(仅这一步随机,后续均为 “有策略选择”)

    第二步:选择其余聚类中心,按 “距离概率” 选择后续初始中心:计算每个未被选为中心的样本到已选所有中心的 “最短距离”,对所有 “最短距离”进行 “概率加权”,对 “概率加权”的结果的概率分布,随机挑选 1 个样本作为第i个(2 ≤ i ≤ k)初始中心

    重复第二步,直到选满 k 个初始中心

然后,迭代优化聚类(与经典 K-means 一致):

  将每个样本归入最近的聚类中心,然后进行中心更新计算每个簇的 “均值中心”,判断是否停止迭代,最终输出聚类结果

三、遗传算法

3.1 遗传算法的建模过程

  遗传算法是一种受生物进化理论(自然选择、交叉、变异)启发的启发式优化算法,筛选出最优或近似最优解。适合解决复杂,多约束的优化问题。

步骤 1:问题编码

    为了将 “候选解” 转化为 “染色体”,将十进制数转化为二进制串/实数编码(染色体),二进制编码适用于离散问题或低维的场景;实数编码直接用实数作为染色体,适用于连续问题或高维问题,无需解码。

步骤 2:初始化种群

    为了生成第一代候选解集合,需随机生成一定数量的个体(种群规模N通常设为 20~100,需根据问题复杂度调整)。

步骤 3:定义适应度函数

    为了评价个体优劣的标准,需根据优化目标设计,最大化问题直接用目标函数,最小化问题需转化为最大化形式,如取倒数或加负号。适应度函数直接用目标函数(ps:适应度值越大,个体越优)

  常见适应度函数设计技巧:

  • 最小化问题(如min g(x)):转化为F(x) = 1/(g(x)+ε)ε避免分母为 0)或F(x) = C - g(x)C为足够大的常数)。
  • 约束问题(如f(x) max, s.t. h(x) ≤ 0):加入惩罚项,F(x) = f(x) - k·max(0, h(x))k为惩罚系数,违反约束时适应度降低)。

步骤 4:选择操作

    为了筛选优秀个体,保留到下一代,常用选择方法为轮盘赌选择法,轮盘赌选择步骤(基于步骤 2 的第一代种群),其他选择方法,如锦标赛选择、精英保留策略

步骤 5:交叉操作

    为了基因重组,生成子代个体,常用交叉方法为单点交叉;其他交叉方法有两点交叉、均匀交叉

步骤 6:变异操作

    为了随机基因突变,避免局部最优,常用变异方法为位变异。

步骤 7:迭代终止与结果输出

    用来判断是否找到最优解。

3.2 改进遗传算法

  离散问题用专属编码,多目标问题用帕累托支配。高维优化问题,问题存在多峰 / 复杂非线性(非凸优化问题),动态优化(动态目标 / 约束)时候用。

四、概率分布

4.1 对数正态分布

  对数变换将非负、右偏的非正态的不确定性转化为正态分布,进而实现对复杂不确定性的精准建模,可以构建对数正态分布模型并量化不确定性

  首先不确定性变量的取值范围必须是 (0, +∞)(如资产价格、零件寿命、降雨量、用户消费金额、化学反应速率等),不可能为负。变量的不确定性源于多个独立 “乘法因子” 的叠加,对数变换可将 “乘积效应” 转化为 “加法效应”,适配正态分布的假设。

  • 正态性检验:验证 样本是否服从正态分布(这是对数正态建模的核心前提),常用方法包括:
    • 图形法:绘制 样本的 “Q-Q 图”(若点近似落在直线上,则符合正态分布)、“直方图 + 核密度曲线”。
    • 统计检验法:执行 S-W 检验(小样本,n<50)或 K-S检验(大样本),若检验的 p 值 > 0.05(显著性水平),则接受 “服从正态分布” 的假设。

4.2 各概率分布对不确定性的量化

1. 连续型均匀分布:波动范围绝对固定

2. 正态分布(高斯分布):不确定性围绕均值对称波动,极端值可能性低
3. 三角分布:不确定性有明确最可能值,波动范围有限且非对称

http://www.xdnf.cn/news/19025.html

相关文章:

  • UE5蓝图接口的创建和使用方法
  • 有鹿机器人如何用科技与创新模式破解行业难题
  • linux下的网络编程(2)
  • 智能体协作体系核心逻辑:Prompt、Agent、Function Calling 与 MCP 解析
  • AV1到达开始和约束时间
  • 分治法——二分答案
  • XFile v2 系统架构文档
  • Ansible 核心模块与实操练习
  • 第十三章项目资源管理--13.3 规划资源管理
  • Apifox 8 月更新|新增测试用例、支持自定义请求示例代码、提升导入/导出 OpenAPI/Swagger 数据的兼容性
  • 手写MyBatis第37弹: 深入MyBatis MapperProxy:揭秘SQL命令类型与动态方法调用的完美适配
  • AI赋能前端性能优化:核心技术与实战策略
  • Swift 解法详解 LeetCode 364:嵌套列表加权和 II
  • 713 乘积小于k的子数组
  • git学习 分支管理(branching)合并分支
  • golang13 单元测试
  • Office 2024 长期支持版(Mac中文)Word、Execl、PPT
  • Node.js 多版本管理工具 nvm 的安装与使用教程(含镜像加速与常见坑)
  • 共识算法如何保障网络安全
  • Java全栈开发面试实战:从基础到微服务的深度探索
  • k8s集群Prometheus部署
  • 1 vs 10000:如何用AI智能体与自动化系统,重构传统销售客户管理上限?
  • Wi-Fi数据包发送机制:从物理层到MAC层的深度解析
  • 记录使用ruoyi-flowable开发部署中出现的问题以及解决方法(二)
  • 贴片式TE卡 +北京君正+Rk瑞芯微的应用
  • 直线拟合方法全景解析:最小二乘、正交回归与 RANSAC
  • Transformer实战(15)——使用PyTorch微调Transformer语言模型
  • 了解迁移学习吗?大模型中是怎么运用迁移学习的?
  • 达梦数据库配置文件-COMPATIBLE_MODE
  • 数据结构青铜到王者第七话---队列(Queue)