一、逻辑回归
推荐博客:https://www.showmeai.tech/article-detail/188
- 分类问题:训练数据会被映射成 n 维空间的样本点(这里的 n 就是特征维度),分类是对 n 维样本空间的点进行类别区分。
- 单纯的先做线性回归后分类,这种方法用于分类非常不稳定。
- 接下来引入
Sigmoid 函数
:
S i g m o i d ( z ) = 1 1 + e − x Sigmoid(z) = \frac{1}{1+e^{-x}} Sigmoid(z)=1+e−x1
- Sigmoid 函数与决策边界
(1)线性决策边界
(2)非线性决策边界生成
- Sigmoid 函数的变换 使得 均方误差损失函数曲线是非凸的,于是引入对数损失函数(
二元交叉熵损失
):
二、正则化
过拟合处理方法
λ 表示正则化系数,表示惩罚程度,λ 的值越大,为使 J 的值小,则参数 θ 的绝对值就得越小。通过惩罚参数的平方和,使得模型倾向于选择较小的参数值
。这样可以降低模型的复杂度,从而减少过拟合的风险。
【为什么参数变小可以防止过拟合呢?】
过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈
。这就意味着函数在某些小区间里的导数值(绝对值)非常大
,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
三、冷启动
- 冷启动问题是指当新用户、新物品或新的模型被引入到系统时,由于缺乏足够的历史数据来进行准确的预测或推荐而遇到的问题。
- 解决办法:从已有模型转移知识到新模型上,例如通过预训练或微调。
四、过拟合
- 训练数据不够多
- 模型复杂+过度训练
- 解决方法为:正则化
五、欠拟合
- 模型复杂度不足
- 特征选择不当
- 学习率过高/过低
- 解决方法为:增加模型复杂度、改进特征工程、调整学习率、数据增强
六、聚类
推荐博客:https://www.showmeai.tech/article-detail/197
按照某个特定标准(如距离)把一个数据集分割成不同的类或簇。【无监督学习】
- 划分聚类(eg.Kmeans算法)
处理方法:
- 确定中心点:所有的数据点到聚类中心的距离之和是最小的。
- 中心点确定后,每个数据点属于离它最近的中心点。
缺点:
- 聚类中心点可能不属于数据集的样本点
- 对噪声 + 离群点很敏感
- 层次聚类(eg.Single-Linkage 算法)
七、KNN
推荐博客:https://www.showmeai.tech/article-detail/187
- 一个对象的分类是由其邻居的多数表决确定的, 个最近邻居( K 为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。需要提前知道训练集的点的坐标以及标签。
- 最近邻算法的定义:为了判定未知样本的类别,以全部训练样本作为代表点计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据。
- 最近邻算法的缺陷是
对噪声数据过于敏感
。解决方法为:扩大参与决策的样本量
。引入K近邻。 - K近邻:
(1)优点:精度高、对异常值不敏感、无数据输入假定。
(2)缺点: 计算复杂度高、空间复杂度高。原始的 KNN 算法只考虑近邻不同类别的样本数量,而忽略掉了距离。有不少类别无法提供足够的训练样本,使得 KNN 算法所需要的相对均匀的特征空间条件无法得到满足。
(3)适用数据范围:数值型和标称型。
八、层次softmax
推荐博客:https://mengbaoliang.cn/archives/79355/
Softmax 函数能够将一个实数向量映射为一个概率分布,使得输出向量的所有元素都在 0 到 1 之间,并且它们的和为 1。
- 传统softmax函数:
σ ( z ) i = e z i ∑ j = 1 K e z j \sigma(z)_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} σ(z)i=∑j=1Kezjezi
传统的 Softmax 在处理大量的类别时可能会非常慢
,因为它需要对所有的类别进行指数运算和归一化。 - 层次 SoftMax
先构造哈夫曼树