机器学习笔记之简单线性回归

        这是一篇小白学习机器学习这门课程的笔记记录,如果有误请大家批评指正~

线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,是对“目标变量(y)随着某个特征变量(x)的增大而增大(或者减小)”这种关联性建模的方法。

只有一个独立的特征变量的情况叫做一元回归,有多个特征变量则是多元回归。

如果你觉得x和y的关系可以用一条直线来描述,我们就可以用线性回归模型找出这条直线。以直线 y = w0 + w1*x 为例,w0相当于y轴上的截距,w1是斜率(或者权重),我们把w0、w1称为学习参数。


均方误差

因为学习参数的不同,得到的模型也不同,为了判断更优的模型,引入均方误差。

我们通过均方误差(Mean Squared Error,简称MSE)来定量判断数据的关联性。理解为Error的各项square了再求mean。均方误差是目标变量和直线的差的平方的平均值,当存在n个数据时,可如下表示:用表示误差向量,则,或者写成


线性回归模型

# 加载模型
from sklearn.linear_model import LinearRegression

X = [[10.0], [8.0], [13.0], [9.0], [11.0], [14.0], [6.0], [4.0], [12.0], [7.0], [5.0]]
y = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]

# 1.建立模型
model = LinearRegression()

# 2.训练模型
model.fit(X, y) 

# 3.预测(无)

# 4.评价(无)

# 5.应用预测
y_pred = model.predict([[0], [1]]) 
print(model.intercept_) # 截距 
print(model.coef_) # 斜率(系数/权重)
print(y_pred) # 对x=0, x=1的预测结果

model.intercept_ 

得到截距w0

model.coef_ 

对于一元回归得到斜率w1

对于多元回归得到的系数/权重w1,w2...wn

例:

 


 线性回归理论推导

 

用numpy实现线性回归的公式

import numpy as np
X = diabetes.data
ones = np.ones([X.shape[0], 1])
X = np.concatenate((ones,X),axis = 1)
XT = X.T
XTX = XT.dot(X)
XTX_1 = np.linalg.inv(XTX)
XTy = XT.dot(y)
beta = XTX_1.dot(XTy)
print(beta)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值