任务1 - 线性回归算法梳理

机器学习的一些概念

  1. 有监督

    数据集有标签,包括:分类、回归

  2. 无监督

    数据集无标签,包括:聚类

  3. 泛化能力

    数据迁移的能力

  4. 过拟合、欠拟合(方差和偏差以及各自解决办法)

    含义偏差/方差解决办法
    欠拟合模型不能很好地拟合数据高偏差(high bias)使用更强的模型
    过拟合模型过度拟合数据,泛化能力不足高方差(high variance)正则化、dropout
  5. 交叉验证

    在训练集中分出一部分,作为测试来测试性能,以调节超参数

线性回归的原理

使用线性模型拟合数据,形如:

h θ ( x ) = θ T X = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}\left( x \right)=\theta^{T}X={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}} hθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxn

线性回归损失函数、代价函数、目标函数

  1. 损失函数,一般针对单个样本i
    ∣ y i − f ( x i ) ∣ |y_i-f(x_i)| yif(xi)

  2. 代价函数,一般针对总体
    1 N ∑ i = 1 N ∣ y i − f ( x i ) ∣ \frac{1}{N}\sum^N_{i=1}{|y_i-f(x_i)|} N1i=1Nyif(xi)

  3. 模板函数
    1 N ∑ i = 1 N ∣ y i − f ( x i ) ∣ + 正 则 化 项 \frac{1}{N}\sum^N_{i=1}{|y_i-f(x_i)|}+正则化项 N1i=1Nyif(xi)+

优化方法

优化方法说明
梯度下降法常用的一阶优化方法,是求解无约束优化问题的经典方法,广泛应用于深度学习
牛顿法常用的二阶优化方法,计算复杂
拟牛顿法常用的二阶优化方法,牛顿法的简化

线性回归的评估指标

  1. L1范数:平均绝对误差(MAE)

    M A E = 1 n ∑ i = 1 N ∣ y i − f ( x i ) ∣ MAE=\frac{1}{n}\sum^N_{i=1}{|y_i-f(x_i)|} MAE=n1i=1Nyif(xi)

  2. L2范数:均方误差(MSE)

    M S E = 1 n ∑ i = 1 N ∣ y i − f ( x i ) ∣ 2 MSE=\frac{1}{n}\sum^N_{i=1}{|y_i-f(x_i)|^2} MSE=n1i=1Nyif(xi)2

sklearn参数详解

函数:sklearn.linear_model.LinearRegression()

API手册

示例代码:

import numpy as np # 快速操作结构数组的工具
import matplotlib.pyplot as plt  # 可视化绘制
from sklearn.linear_model import LinearRegression  # 线性回归

# 样本数据集,第一列为x,第二列为y,在x和y之间建立回归模型
data=[
    [0.067732,3.176513],[0.427810,3.816464],[0.995731,4.550095],[0.738336,4.256571],[0.981083,4.560815],
    [0.526171,3.929515],[0.378887,3.526170],[0.033859,3.156393],[0.132791,3.110301],[0.138306,3.149813],
    [0.247809,3.476346],[0.648270,4.119688],[0.731209,4.282233],[0.236833,3.486582],[0.969788,4.655492],
    [0.607492,3.965162],[0.358622,3.514900],[0.147846,3.125947],[0.637820,4.094115],[0.230372,3.476039],
    [0.070237,3.210610],[0.067154,3.190612],[0.925577,4.631504],[0.717733,4.295890],[0.015371,3.085028],
    [0.335070,3.448080],[0.040486,3.167440],[0.212575,3.364266],[0.617218,3.993482],[0.541196,3.891471]
]

#生成X和y矩阵
dataMat = np.array(data)
X = dataMat[:,0:1]   # 变量x
y = dataMat[:,1]   #变量y

# ========线性回归========
model = LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
model.fit(X, y)   # 线性回归建模
print('系数矩阵:\n',model.coef_)
print('线性回归模型:\n',model)
# 使用模型预测
predicted = model.predict(X)

# 绘制散点图 参数:x横轴 y纵轴
plt.scatter(X, y, marker='x')
plt.plot(X, predicted,c='r')

# 绘制x轴和y轴坐标
plt.xlabel("x")
plt.ylabel("y")

# 显示图形
plt.show()

参考

西瓜书

cs229吴恩达机器学习课程

李航统计学习

谷歌搜索

公式推导参考:http://t.cn/EJ4F9Q0

吴恩达深度学习笔记

机器学习中的目标函数、损失函数、代价函数有什么区别?

python机器学习库sklearn——线性回归

sklearn中文文档0.21.3

sklearn英文文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值