文章目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNDWUsLE-1668351864196)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/公众号横幅-1.png)]
以下内容是在学习过程中的一些笔记,难免会有错误和纰漏的地方。如果造成任何困扰,很抱歉。
前言
回归,指研究一组随机变量 (Y1 ,Y2 ,…,Yi) 和另一组 (X1,X2,…,Xk) 变量之间关系的统计分析方法,回归分析是一种数学模型,当因变量和自变量为线性关系时,它是一种特殊的线性模型。
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jObYK71m-1668351864196)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/机器学习入门-线性回归模型公式-3.png)]
b为误差服从均值为0的正态分布,如果只有一个自变量的情况下就叫一元回归
,如果有多个自变量的情况下就叫多元回归
;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B3zlQut0-1668351864197)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/多元线性回归的简单公式-1.png)]
回归的目的是预测数组型的目标值,其应用范围有股票预测
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c7INm1n0-1668351864197)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/机器学习-股票预测示例样图-1.png)]
天气、PM2.5、温湿度预测等
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYJ2OuZy-1668351864197)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/机器学习-天气预测示例样图-1.png)]
一、简单数学公式实现一元回归
不引用深度学习框架,通过简单的数学公式完成一元回归案例
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
np.random.seed(0)
area = 2.5 * np.random.randn(100) + 25
price = 25 * area + 5 + np.random.randint(20, 50, size=len(area))
data = np.array([area, price])
data = pd.DataFrame(data=data.T, columns=['area', 'price'])
# 绘图
# plt.scatter(data['area'], data['price'])
# plt.show()
W = sum(price * (area - np.mean(area))) / sum((area - np.mean(area)) ** 2)
b = np.mean(price) - W * np.mean(area)
# print("计算回归系数", W, b)
y_pred = W * area + b
# 绘图
plt.plot(area, y_pred, color='red', label="forecast")
plt.scatter(data['area'], data['price'], label="train")
plt.xlabel("areaX")
plt.ylabel("priceY")
plt.legend()
plt.show()
绘图输出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ou2wqvTL-1668351864198)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/连续值预测-一元线性简单效果图-1.png)]
二、公式拆解
对于线性模型的定义公式为:f(x) = w0 + w1·x1 + w2·x2 + … + wn·xn
当通过矩阵表示时:f(x) = XW,W是根据要求得到的非输入式参数,X是输入的数据矩阵
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zb47VWUN-1668351864198)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/线性模型-W的矩阵-1.png)]
n代表一个数据有n个数据,m代表一共是m个数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NLh4iytJ-1668351864198)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/线性模型-X的矩阵-1.png)]
那么数据集的数据矩阵为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfYqkfFM-1668351864199)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/线性模型-Y的矩阵-1.png)]
线性回归模型的最终目标就是找到参数 W 来使得 f(x) = XW 尽可能无限贴近 Y
三、线性回归API初步使用
本期示例将通过Sk-Learn实现线性回归的API,首先我们重新回忆机器学习的五大基本流程
- 获取数据集
- 数据预处理
- 特征工程
- 模型训练/机器学习
- 模型评估及优化
通过该流程阅读如下代码
"""
机器学习流程
1.获取数据集
2.数据处理
3.特征工程
4.机器学习
5.模型评估
"""