python最小二乘法拟合_Python 普通最小二乘法(OLS)进行多项式拟合
多元函数拟合。如 电视机和收音机价格多销售额的影响,此时自变量有两个。
python 解法:
importnumpy as npimportpandas as pd#import statsmodels.api as sm #方法一
import statsmodels.formula.api as smf #方法二
importmatplotlib.pyplot as pltfrom mpl_toolkits.mplot3d importAxes3D
df= pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X= df[['TV', 'radio']]
y= df['sales']#est = sm.OLS(y, sm.add_constant(X)).fit() #方法一
est = smf.ols(formula='sales ~ TV + radio', data=df).fit() #方法二
y_pred =est.predict(X)
df['sales_pred'] =y_predprint(df)print(est.summary()) #回归结果
print(est.params) #系数
fig=plt.figure()
ax= fig.add_subplot(111, projection='3d') #ax = Axes3D(fig)
ax.scatter(X['TV'], X['radio'], y, c='b', marker='o')
ax.scatter(X['TV'], X['radio'], y_pred, c='r', marker='+')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
拟合的各项评估结果和参数都打印出来了,其中结果函数为:
f(sales) = β0 + β1*[TV] + β2*[radio]
f(sales) = 2.9211 + 0.0458 * [TV] + 0.188 * [radio]
图中,sales 方向上,蓝色点为原 sales 实际值,红色点为拟合函数计算出来的值。其实误差并不大,部分数据如下。
同样可拟合一元函数;
importnumpy as npimportpandas as pdimportstatsmodels.formula.api as smfimportmatplotlib.pyplot as pltfrom mpl_toolkits.mplot3d importAxes3D
df= pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X= df['TV']
y= df['sales']
est= smf.ols(formula='sales ~ TV', data=df).fit()
y_pred=est.predict(X)print(est.summary())
fig=plt.figure()
ax= fig.add_subplot(111)
ax.scatter(X, y, c='b')
ax.plot(X, y_pred, c='r')
plt.show()
Ridge Regression:(岭回归交叉验证)
岭回归(ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。通常岭回归方程的R平方值会稍低于普通回归分析,但回归系数的显著性往往明显高于普通回归,在存在共线性问题和病态数据偏多的研究中有较大的实用价值。
importnumpy as npimportpandas as pdimportmatplotlib.pyplot as pltfrom sklearn importlinear_modelfrom mpl_toolkits.mplot3d importAxes3D
df= pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X= np.asarray(df[['TV', 'radio']])
y= np.asarray(df['sales'])
clf= linear_model.RidgeCV(alphas=[i+1 for i in np.arange(200.0)]).fit(X, y)
y_pred=clf.predict(X)
df['sales_pred'] =y_predprint(df)print("alpha=%s, 常数=%.2f, 系数=%s" %(clf.alpha_ ,clf.intercept_,clf.coef_))
fig=plt.figure()
ax= fig.add_subplot(111, projection='3d')
ax.scatter(df['TV'], df['radio'], y, c='b', marker='o')
ax.scatter(df['TV'], df['radio'], y_pred, c='r', marker='+')
ax.set_xlabel('TV')
ax.set_ylabel('radio')
ax.set_zlabel('sales')
plt.show()
输出结果:alpha=150.0, 常数=2.94, 系数=[ 0.04575621 0.18735312]
python最小二乘法拟合_Python 普通最小二乘法(OLS)进行多项式拟合相关推荐
- python多项式拟合_Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合。如 电...
Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合.如 电 多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法:imp ...
- java 多项式拟合最多的项数_matlab 多项式拟合EXCEL中复杂数据
有如下原始数据x,y,它对应的曲线图形为: -9552 -2036.81 -9328 -2025.62 -9168 -2014.43 -9024 -2003.25 -8928 -1992.06 -88 ...
- matlab 拟合光滑曲线图,Matlab光滑曲线多项式拟合与样条曲线拟合的两个案例
%多项式曲线拟合 figure(1) matrix2=[]; %新建空矩阵 h1=polyfit(matrix1(:,1),matrix1(:,2),3); %计算多项式拟合系数,3-拟合次数 mat ...
- python多变量拟合_Python曲线将多个参数拟合到多个数据集
我正在尝试使用scipy的curve_fit函数来求解模型参数 . 我使用Python curve_fit with multiple independent variables作为起点并且能够满足我 ...
- java 多项式拟合最多的项数_机器学习(1)--线性回归和多项式拟合
机器学习(1)--线性回归和多项式拟合 机器学习(2)逻辑回归 (数学推导及代码实现) 机器学习(3)softmax实现Fashion-MNIST分类 一 线性回归 线性回归,顾名思义是利用线性模型对 ...
- 多项式模型与多项式拟合
3. 多项式模型 (一元多次方程) 3.1 多项式拟合 在有些数据分布中,使用一条曲线比直线能更好拟合数据,这就需要用到多项式拟合.如下图所示分布: 多项式的一般形式: y=p0xn+p1xn−1+p ...
- 多项式拟合一般方程法详细推导
多项式拟合之一般方程法 文章目录 多项式拟合之一般方程法 1 什么是多项式拟合? 2 怎样拟合? 3 求bbb 正交矩阵 QR分解 施密特正交化 matlab测试函数 之前经常会用到多项式拟合来拟合函 ...
- python多项式拟合_最小二乘法—多项式拟合非线性函数
本章涉及到的知识点清单: 1.函数的近似表示-高次多项式 2.误差函数-最小二乘法 3.引出案例函数曲线 4.目标函数 5.优化目标函数 6.优化目标函数-梯度下降法 7.优化目标函数-求解线性方程组 ...
- 从寻找谷神星的过程,谈最小二乘法实现多项式拟合
科学史上众星云集,璨若星河.这些牛人基本上都是天才,但也不乏无名之辈凭借匪夷所思.骇世惊俗的猜想而跻身于巨星之列.比如,门捷列夫,整了一张留空的元素周期表,引得全世界的化学家去做填空题.还有一位德国的 ...
最新文章
- git 出现 fatal: refusing to merge unrelated histories 错误
- 【深度学习】Pytorch编写代码基本步骤思想
- Android之webView入门
- sort list java leetcode_[LeetCode] 148. Sort List Java
- python初学者编程指南_动态编程初学者指南
- java实体序列化_java – 在JPA实体序列化(JSON)上防止JAX-RS中...
- django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)
- 具有搜索和自定义分页的React Bootstrap表
- 《数字图像处理(第三版)》 第一章 绪论 笔记
- [面试必考]OSI 网络七层协议以及各层的功能
- android版本下载京东,手机京东历史版本
- ITMS-90096错误解决
- python廖老师课程资源,廖老师的python教程
- **传统线上支付 区块链**
- python--Django 01 安装以及初识Django项目开发
- Joan Baez - Willie Moore
- html插入swf自动播放,如何在HTML页面中嵌入SWF文件?
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用44
- 什么是聚合路由器?主要运用在哪些方面?
- 格斗java华娱_华娱水滸2-武林至尊