loading...
scikit-learn学习
发表于:2023-08-27 | 分类: 技术

scikit机器学习

sklearn (scikit-learn) 是基于 Python 语言的机器学习工具

  1. 简单高效的数据挖掘和数据分析工具
  2. 可供大家在各种环境中重复使用
  3. 建立在 NumPy ,SciPy 和 matplotlib 上
  4. 开源,可商业使用 - BSD许可证

[TOC]

classification

监督学习

线性模型

当我们需要预测的 target_value期望是一个线性拟合的时候,数学公式表达为:
$$
\hat{y}(w, x) = w_0 + w_1 x_1 + … + w_p x_p
$$
其中 向量 w 表示 coef_ ,这大概是斜率的意思

w_0表示 intercept 表示截距

线性回归的含义是用一个线性函数去拟合向量w,使得预测值和真实值的残差平方和最小

最小二乘法

线性回归会用 fit函数去接收数组X,Y ,并且会自动计算出斜率以及截距

以下是示例代码:

1
2
3
4
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
reg.coef_

注意:最小二乘法来计算回归系数的时候非常依赖变量(feature)之间的独立性

当features之间是相关的,并且X的矩阵大概率也是线性相关的,在这种情况下,

通常会发生:

我们的最小二乘法拟合函数会对随机误差非常敏感,从而产生很大的方差

所以变量之间尽量是相互独立的,避免引发多重共线性

知乎文章链接

官方代码样例见github仓库

岭回归与分类(Ridge regression and classfication)

类似于最小二乘法,岭回归增加了对于回归系数的惩罚

具体公式是这样的:


$$
\alpha 控制着收缩的变化程度,当\alpha越大的时候,收缩的程度越大,因此回归系数会变得对共线性具有鲁棒性
$$

同时我也查阅了岭回归出现的原因

线性回归存在的问题

对于多重共线性的数据,其loss函数求偏导后分母近似奇异矩阵,解得的ω \omegaω误差大;我们对loss函数加上ω \omegaω的2范数,使得求偏导后分母变为满秩矩阵,和普通最小二乘相类似,可以很好的计算出相对稳定的结果。

岭分类

本质上还是将分类问题转化为回归问题,然后用岭回归去解决

官方文档中提到: The RidgeClassifier can be significantly faster than e.g. LogisticRegression with a high number of classes because it can compute the projection matrixonly once.

该分类器有时被称为具有线性内核的最小二乘支持向量机

岭回归的优势与劣势

以岭回归为例,它为了解决一些普通最小二乘遇到的问题,对系数ω 的大小施加惩罚。

这样做虽然增强了稳定性,但是同时也牺牲了保真性(就是从我们所求的系数ω 并不是真正意义上向最优系数ω

Ridge回归在不抛弃任何一个变量的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但这会使得模型的变量特别多,模型解释性差。

当然,既然存在这种方法,那么证明在处理这些问题的时候,Ridge Regression 能取得比普通最小二乘更好的性能。

上一篇:
如何在博客中插入jupyter
下一篇:
日记本