【RustyML入门】2.0. 经典机器学习

2. 经典机器学习

在 RustyML 里,凡是不属于神经网络的部分都归入经典机器学习:线性模型、树、核方法、聚类和降维。这类算法训练快,对数据量要求低,产出的模型也能让你看懂、说清。先从它们入手。只有当问题确实需要一个深层网络时,才转向第 3 章。本章的每个估计器(estimator)都位于 rustyml::machine_learning 之下,共享同一份小约定。用 new 构造模型,它会校验参数并返回 Result。唯一的例外是 LinearRegression::new:它不会失败,所以直接返回 Self。用 fit 训练模型,用 predict 做推理,降维模型除外。降维变换器改用 transformfit_transform,不用 predict。把这套节奏学会一次,本章的全部十四个模型都通用。

动手之前先读第 1 章。先读使用ndarray准备数据,因为每个模型吃进去的都是 Array2<f64> 特征矩阵。也读一下错误处理,因为构造函数和 fit/predict 交还的都是 crate 自己的 Result第 4 章讲特征的编码与缩放。第 5 章讲你用来评判这些模型的准确率、轮廓系数和 R^2 分数。

本章其余部分,都是在下面这套骨架上做变化:

rust 复制代码
use rustyml::machine_learning::LinearRegression;
use ndarray::array;

fn main() {
    // construct -> fit -> predict,每个估计器都在重复这套节奏
    let mut model = LinearRegression::new(true);
    let x = array![[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]];
    let y = array![6.0, 9.0, 12.0];
    model.fit(&x, &y).unwrap();

    let preds = model.predict(&array![[4.0, 5.0]]).unwrap();
    println!("prediction: {:?}", preds);
}

各节自成一体,需要哪个模型就直接翻到那一节。按顺序读,会从最简单的估计器一路读到最复杂的那些。

监督学习从带标签的样本中预测目标。线性回归拟合连续目标,可选 L1/L2 正则化,求解器可在梯度下降和闭式解之间选择。想把 fit/predict 这套流程学到手,从它入手最合适。逻辑回归沿用同一套梯度机制来做二分类。K近邻跳过训练,直接靠邻近度分类,距离度量和加权方式都可挑选。决策树把特征空间切成一条条可读的 if/else 规则,可选 ID3、C4.5、CART 三种算法之一,并带剪枝。支持向量机一节覆盖两个模型:核化的 SVC(SMO 求解器),用于拟合弯曲的边界;快速的 LinearSVC,用于宽而高维的数据。线性判别分析把每个类别建模为共享协方差的高斯分布,同时完成分类与降维。

聚类把无标签数据分组。KMeans用 k-means++ 初始化,把点划入固定数量的簇。它速度快,也是常见的默认选择。DBSCAN按密度找出任意形状的簇,把离群点标为噪声。它事先不需要知道簇的数量。MeanShift同样能自行确定簇的数量,办法是沿密度曲面往上爬。用聚类指标给这三种方法打分。

降维在压缩特征的同时保住数据结构。主成分分析是去相关和压缩的默认线性方法。核主成分分析借助 RBF、多项式等核,把它推广到非线性结构。t-SNE把高维数据嵌入 2 维或 3 维,只为可视化服务。它学不出可复用的投影。它只提供 fit_transform,没有面向新样本的 transform

异常检测自成一类。孤立森林通过随机切分来衡量每个点被孤立的难易程度,无需任何标签就能标出离群点。

相关推荐
就改了2 小时前
SpringBoot 自定义线程池 + 实时监控指标
java·spring boot·后端
天辛大师2 小时前
天心大师:不确定中锚定自我,AI生活的哲学命题
人工智能·算法·决策树·机器学习·生活·启发式算法
暗黑小白2 小时前
脱敏引擎工程化
后端·ai agent
用户8181870627462 小时前
第23章 JPA / Hibernate 异常
后端
用户8181870627462 小时前
第22章 MyBatis / MyBatis-Plus 常见异常与 SQL 调试
后端
databook2 小时前
用统计检验来确定“重要特征”
python·机器学习·scikit-learn
雪隐2 小时前
个人电脑玩AI-15让5060 Ti给你打工——MiniMax H3 本地部署实录:一个自带录音棚的视频模型,和它的 NVFP4 瘦身奇遇
前端·人工智能·后端
Embedded-Xin2 小时前
Rust学习——Cargo工具
linux·学习·架构·rust·嵌入式
0566463 小时前
Python高级——解释器执行原理与虚拟环境工程化实战
开发语言·python