线性回归及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),yi∈R, 其中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(θ)=21∑j=1n(hθ(x(i))−y(i))22、线性回归损失函数、代价函数、目标函数
损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。
代价函数(Cost Function):度量全部样本集的平均误差。 目标函数(Object Function):代价函数和正则化函数,最终要优化的函数。 常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等;常用的代价函数包括均方误差、均方根误差、平均绝对误差等。3、线性回归的优化方法
1、梯度下降法
2、最小二乘法矩阵求解 3、牛顿法4、线性回归的评价指标
1、均方误差(MSE)
2、均方根误差(RMSE) 3、平均绝对误差(MAE) 4、可决系数 R 2 R^2 R25、线性回归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秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
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
java 验证码校验_JavaWeb验证码校验功能代码实例
2019-04-21
java多线程初学者指南_Java多线程初学者指南(4):线程的生命周期
2019-04-21
java添加资源文件_如何在eclipse中将资源文件夹添加到我的Java项目中
2019-04-21
java的三种修饰符_3分钟弄明白JAVA三大修饰符
2019-04-21
PHP字符串运算结果,PHP运算符(二)"字符串运算符"实例详解
2019-04-21
PHP实现 bcrypt,如何使php中的bcrypt和Java中的jbcrypt兼容
2019-04-21
php8安全,PHP八大安全函数解析
2019-04-21