Python机器学习重在理解算法逻辑而非调包:回归预测数值,需关注线性假设与残差分析;分类判断归属,须重视决策边界与概率校准;聚类发现结构,应考虑簇形假设与标准化。

Python机器学习不是调包,而是理解算法怎么“想”的。回归预测数值,分类判断归属,聚类发现结构——三类任务对应三类逻辑,动手写清关键步骤比堆代码更重要。
回归:让模型学会“猜数字”
回归的核心是找一个函数,把输入特征映射到连续目标值(比如房价、温度、销量)。线性回归最直观:它假设输出是输入的加权和加偏置,目标是最小化预测值与真实值之间的平方误差。
- 用 sklearn.linear_model.LinearRegression 时,注意先标准化特征(尤其当单位差异大,如平方米 vs 年龄),否则梯度下降会慢或不稳定
- 别只看 R² 分数;画残差图(预测值 vs 残差)能快速发现非线性趋势或异方差——如果点明显呈漏斗形或曲线,说明线性假设不成立
- 试试多项式回归:用 PolynomialFeatures 扩展原始特征(如 x → [x, x²]),再套线性模型,本质仍是线性拟合,但能捕捉简单非线性关系
分类:教模型做“选择题”
分类任务输出离散标签(如“猫/狗”、“高风险/低风险”)。逻辑回归虽叫“回归”,实为分类器:它用 sigmoid 函数把线性输出压缩成 0~1 区间,解释为属于正类的概率。
- 决策边界是关键:逻辑回归产生线性边界;SVM 可通过核技巧(如 rbf)生成非线性边界;树模型则用垂直于坐标轴的直线拼出复杂区域
- 评估不能只看准确率。类别不平衡时(如99%正常用户+1%欺诈),准确率高达99%也没意义。改用 classification_report 看 precision/recall/f1,或画 ROC 曲线
- 概率校准很重要:sklearn 中 CalibratedClassifierCV 可让模型输出更可靠的概率(例如预测“70% 是猫”,实际在100张里约有70张真是猫)
聚类:让数据自己“抱团”
聚类没有标签,目标是依据相似性把样本分组。KMeans 最常用,但它隐含两个强假设:簇是球形的、各簇大小相近、密度均匀。
立即学习“Python免费学习笔记(深入)”;
- KMeans 需预先指定 K。用肘部法(Elbow Method)看不同 K 下的 inertia(簇内平方和),拐点常是合理 K;也可用轮廓系数(silhouette score),越接近1越好
- 遇到长条形或环状簇?KMeans 会失效。换 DBSCAN:它基于密度,能识别噪声点,自动确定簇数量,但需调好 eps(邻域半径)和 min_samples
- 聚类前务必标准化!因为欧氏距离对量纲敏感。身高(cm)和收入(元)不缩放,收入会完全主导距离计算










