线性回归

目录

简介

计算过程

scikit-learn实现


简介

线性回归模型:自变量和因变量万的关系为线性关系的一种回归分析模型,即y=ax+b
训练:训练样本集中有多个(x,y)的实际值,可求出参数(a,b)的预测值,即通过训练
可获得预测的线性回归模型
损失函数:通过训练样本得到的预测y值和训练样本集中的实际y值的误差(均方误差),
是预测模型最优的判定标准
优化:获得损失函数的最优解的过程
梯度下降法:通过控制步长赋值调参(即学习率)获取损失函数最小值(函数求导得最小值)的一种优化方法
测试:测试样本集同样由多个(x,y)的实际值,可以判定预测的线性回归模型是否正确

判定系数:测试模型是否正确的判定标准
过拟合/欠拟合:过份拟合样本/对样本不够拟合不够而偏离了总体趋势,从损失函数角度理解,则是损失函数过大或过小的回归模型都是不合适的
正则化:在计算损失函数中加入惩罚,避免损失函数达到最小的一种策略,有lasso回归和岭回归
总结:
使用训练样本集,通过梯度下降法(调参学习率)+正则化求得损失函数的最优解而获得预测模型
使用测试样本集,通过判定系数确定预测模型是否准确,从而确定线性回归模型

计算过程

为什么会有计算...

scikit-learn实现

这是一个不含调参的简单预测模型,帮助理解训练、预测以及判定系数:

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
diabetes = datasets.load_diabetes()  #加载并返回糖尿病数据集(回归),type(diabetes)返回:sklearn.utils.Bunch
diabetes_X = diabetes.data[:, np.newaxis, 2]  #取一个特征数据
#切片数据,声明训练集和测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
#实例化线性回归对象,并训练模型、预测模型
regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
diabetes_y_pred = regr.predict(diabetes_X_test)

# The coefficients
print('Coefficients: ', regr.coef_)
# 均方误差
print("Mean squared error: %.2f"% mean_squared_error(diabetes_y_test, diabetes_y_pred))
#判定系数: 1完美预测
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))

# 制图
plt.scatter(diabetes_X_test, diabetes_y_test,  color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)

plt.xticks(())  #x轴刻度
plt.yticks(())  #y轴刻度

plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值