线性回归及python实现
发布日期:2022-03-04 12:48:47 浏览次数:26 分类:技术文章

本文共 1897 字,大约阅读时间需要 6 分钟。

线性回归及python实现

1、线性回归

有数据集 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) {(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\\} (x1,y1),(x2,y2),...,(xn,yn),其中, x i = ( x i 1 , x i 2 , x i 3 , . . . , x i d ) , y i ∈ R x_i = (x_{i1},x_{i2},x_{i3},...,x_{id}),y_i \in R xi=(xi1,xi2,xi3,...,xid),yiR, 其中n表示变量的数量,d表示每个变量的维度。

可以用以下函数来描述y和x之间的关系:
f ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ d x d = ∑ i = 0 d θ i x i f(x) = \theta_{0} + \theta_1x_1 + \theta_2x_2 + ... + \theta_dx_d = \sum_{i=0}^{d}\theta_ix_i f(x)=θ0+θ1x1+θ2x2+...+θdxd=i=0dθixi
均方误差是回归中常用的性能度量,即: J ( θ ) = 1 2 ∑ j = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 \\ J(\theta)=\frac{1}{2}\sum_{j=1}^{n}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=21j=1n(hθ(x(i))y(i))2

2、线性回归损失函数、代价函数、目标函数

损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。

代价函数(Cost Function):度量全部样本集的平均误差。
目标函数(Object Function):代价函数和正则化函数,最终要优化的函数。
常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等;常用的代价函数包括均方误差、均方根误差、平均绝对误差等。

3、线性回归的优化方法

1、梯度下降法

2、最小二乘法矩阵求解
3、牛顿法

4、线性回归的评价指标

1、均方误差(MSE)

2、均方根误差(RMSE)
3、平均绝对误差(MAE)
4、可决系数 R 2 R^2 R2

5、线性回归python实现

#生成数据import numpy as np#生成随机数np.random.seed(1234)x = np.random.rand(500,3)#构建映射关系,模拟真实的数据待预测值,映射关系为y = 4.2 + 5.7*x1 + 10.8*x2,可自行设置值进行尝试y = x.dot(np.array([4.2,5.7,10.8]))
#应用最小二乘法做回归import pandas as pdimport statsmodels.api as sm est = sm.OLS(y, x).fit() #无截距项#est = sm.OLS(y, sm.add_constant(x)).fit() #有截距项y_pred = est.predict(x)print(est.summary()) #回归结果print(est.params) #系数

在这里插入图片描述

#调用sklearn的线性回归模型训练数据from sklearn.linear_model import LinearRegression# 调用模型lr = LinearRegression(fit_intercept=True)# 训练模型lr.fit(x,y)print("估计的参数值为:%s" %(lr.coef_))
##根据公式计算评价指标y_pred=lr.predict(x)y_test=ymse_test=np.sum((y_pred-y_test)**2)/len(y_test)mae_test=np.sum(np.absolute(y_pred-y_test))/len(y_test)rmse_test=mse_test**0.5r2_score=1-(mse_test/np.var(y_test))print('公式法:')print('均方误差:{},平均绝对误差:{},\n均方根误差:{},可决系数:{}'.format(mse_test,mae_test,rmse_test,r2_score))

转载地址:https://blog.csdn.net/aiyamaya9/article/details/105668039 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:大不了从头再来,怕什么失败是最好的经验和老师
下一篇:机器学习之概念学习

发表评论

最新留言

很好
[***.229.124.182]2024年03月17日 14时15分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql $lt_mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件... 2019-04-21
install python_Install python on AIX 7 2019-04-21
jquery查找div下第一个input_jquery查找div元素第一个元素id 2019-04-21
如何修改手机屏幕显示的长宽比例_屏幕分辨率 尺寸 比例 长宽 如何计算 2019-04-21
mysql 的版本 命名规则_MySQL版本和命名规则 2019-04-21
no java stack_Java Stack contains()用法及代码示例 2019-04-21
java动态代码_Java Agent入门学习之动态修改代码 2019-04-21
python集合如何去除重复数据_Python 迭代删除重复项,集合删除重复项 2019-04-21
iview 自定义时间选择器组件_Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能... 2019-04-21
java 验证码校验_JavaWeb验证码校验功能代码实例 2019-04-21
java多线程初学者指南_Java多线程初学者指南(4):线程的生命周期 2019-04-21
java进程user是jenkins_java 学习:在java中启动其他应用,由jenkins想到的 2019-04-21
java添加资源文件_如何在eclipse中将资源文件夹添加到我的Java项目中 2019-04-21
java的三种修饰符_3分钟弄明白JAVA三大修饰符 2019-04-21
mysql source skip_redis mysql 中的跳表(skip list) 查找树(btree) 2019-04-21
java sun.org.mozilla_maven编译找不到符号 sun.org.mozilla.javascript.internal 2019-04-21
php curl 输出到文件,PHP 利用CURL(HTTP)实现服务器上传文件至另一服务器 2019-04-21
PHP字符串运算结果,PHP运算符(二)"字符串运算符"实例详解 2019-04-21
PHP实现 bcrypt,如何使php中的bcrypt和Java中的jbcrypt兼容 2019-04-21
php8安全,PHP八大安全函数解析 2019-04-21