栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

sklearn学习笔记-----简单线性回归

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sklearn学习笔记-----简单线性回归

一、学习简单线性回归需要用到的三个库:

import numpy as np # 数组运算库
import matplotlib.pyplot as plt # 画图库
from sklearn.linear_model import LinearRegression #sklearn类库

二、简单线性回归模型

(1)LinearRegression:sklearn重的一个估计器(sklearn中所有的估计器都实现了fit和predict方法)。它的fit()方法学习了公式y=a+bx,利用训练的数据学习产生的最佳拟合模型的简单线性回归的参数值称为普通最小二乘(OLS)。

(2)损失函数(代价函数)

1)含义:用于定义和衡量一个模型的误差。(例:由模型预测出的价格和在训练数据集披萨的实际价格之间的差值被称为残差或者训练误差。)

2)我们可以通过最小化残差的和来生成最佳拟合模型。如果预测出的值都接近实际值那么模型就是拟合的。这种衡量模型拟合的方法叫做残差平方和(RSS)代价函数。公式如下:

X=np.array([[6],[8],[10],[14],[18]]).reshape(-1,1)
y=[7,9,13,17.5,18]
print('Residual sum of squares:%.2f'%np.mean((model.predict(X)-y)**2))

 3)求解简单线性回归的OLS

a.求方差

X=np.array([[6],[8],[10],[14],[18]]).reshape(-1,1)
variance2=np.var(X,ddof=1)

b.求协方差

y2=np.array([7,9,13,17.5,18]) # 使用Numpy多位数组定义y,由此可以调用它包含的几个计算样本均值的方法
y_bar=y2.mean()
covariance2=np.cov(X.transpose(),y2)[0][1]

 c.求解OLS参数

# np.around(,)保留小数点后两位
b=np.around(covariance2/variance2,2)
a=np.around(y_bar-b*x_bar,2)

三、评估模型

通常我们使用一些方法来评估模型的预测能力,在此以R方为例。 

R方,也被称为决定系数,用来衡量数据和回归线的贴近程度。

# -----------通过R方(决定系数)来评估模型的预测能力--------------
# 训练集
X_train=np.array([6,8,10,14,18]).reshape(-1,1)
y_train=[7,9,13,17.5,18]
# 测试集
X_test=np.array([8,9,11,16,12]).reshape(-1,1)
y_test=[11,8.5,15,18,11]
# 建立模型
model=LinearRegression()
# 训练模型
model.fit(X_train,y_train)
# 评估模型的预测能力(通过R方的值)
r_squared=model.score(X_test,y_test)# score()方法用来计算模型的R方值
print(r_squared)

 

----寝室聚餐了,今日未完-----

---------11.24补完了-------

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号