活动地址:CSDN21天学习挑战赛
机器学习从入门到入土之回归算法
案例来源
回归算法
概念
回归是一对一个或多个自变量和因变量之间的关系进行建模,求解的一种统计方法
简单案例
我们从R自带数据集中获取到了1920年汽车速度与刹车距的数据,现在,我们想研究速度与刹车距离之 间到底有什么样的关系。注:数据集为data/data/cars.csv
代码
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data_cars = pd.read_csv("data/data/cars.csv",usecols = ["speed", "dist"])
data_cars.head(10)
进行一个关系的简单的可视化
首先,我们想对这个数据集有一个直观的认识,所以我们先对其进行可视化,即绘制车速与刹车距离散 点图
代码
#section/example01.py
#绘制散点图
speed = data_cars["speed"]
dist = data_cars["dist"]
plt.scatter(speed, dist)
plt.title("Scatter plot of vehicle speed and braking distance")
plt.show()
图示
X为车速度 Y为刹车距离
观察可视化散点图可以看见车速和刹车距离之间貌似呈现出一种线性相关关系,数据点在一条看不见的 直线上下随机散落,因而,我们可以考虑用下面的公式来描述他们之间的关系:
y=a+bX y为刹车距离,x为车速,a和b为回归系数
注:图片来源于GoatGui大佬的机器学习模型及案例分析part1
二范数
上面图片所用二范数解释:
二范数指矩阵A的2范数,就是A的转置共轭矩阵与矩阵A的积的最大特征根的平方根值,是指空间上两个向量矩阵的直线距离。类似于求棋盘上两点间的直线距离。(我也不懂)
除了矩阵之外,向量和函数均有范数,其中:
矩阵范数:矩阵A的2范数就是 A的转置乘以A矩阵的结果的特征根最大值的开根号;
向量范数:向量x的2范数是x中各个元素平方之和再开根号;
函数范数:函数f(x)的2范数是x在区间(a,b)上f(x)的平方的积分再开根号。
注:来源百度百科 以及案例所用公式是二范数的平方和的1/2
求解使损失函数最小的回归系数方法
- 直接法和迭代法
直接法
直接法,就是直接给出优化问题的最优解,并不是所有的优化问题都可以用直接法得到最优解,如果要 使用直接法,损失函数需要满足两个条件:
-
损失函数为凸函数;
-
损失函数为解析解,即通过严格的公式所求得的解。
迭代法
我们知道,并不是所有的损失函数都可以使用直接法对损失函数进行优化的,很多情况中,我们的损失 函数为非凸函数,或者方程过于复杂难以求出其解析解,因此,在有些实际问题中,我们可以选择使用 迭代法求解。迭代法是一种不断用变量的旧值递推新值的过程,即迭代的用旧值修正对最优解的估计。 这里,我们使用迭代法中的小批量梯度下降法解决问题。
结束语与预告
就先学到这里 下期为大家带来直接法和迭代法更加具体的理论和实际应用