Python非线性回归

python的几种非线性回归 前一阵子有人和我吐槽过matlab内置的几个线性数据拟合工具满足不了需求,今天正好看到了一个关于使用scipy进行非线性回归的工具使用方法,写下来备忘。 Theory Given pairs:{(ti,yi),i=1,...,n}\{(t_i,y_i), i=1,...,n\}{(ti​,yi​),i=1,...,n} estimate parameters x defining a nonlinear function ϕ(t;x)\phi(t;x)ϕ(t;x) estimate parameters x 阅读详情

非线性样本

from matplotlib import pyplot as mp
y = [.4187, .0964, .0853, .0305, .0358, .0338, .0368, .0222, .0798, .1515]
x = [[i]for i in range(len(y))]
mp.scatter(x, y, s=99)
mp.show()

Sklearn回归汇总

非线性
线性

import matplotlib.pyplot as mp
# 训练集
y = [.27, .16, .06, .036, .044, .04, .022, .017, .022, .014, .017, .02, .019, .017, .011, .01, .03, .05, .066, .09]
ly, n = len(y), 100
x = [[i / ly]for i in range(ly)]
# 待测集
w = [[i / n] for i in range(n)]
# # x轴范围
# max_x = 1
# x, w = [[i[0]*max_x] for i in x], [[i[0]*max_x] for i in w]

def modeling(models):
    for i in range(len(models)):
        print(models[i].__name__)
        # 建模、拟合
        model = models[i]()
        model.fit(x, y)
        # 预测
        z = model.predict(w)
        # 可视化
        mp.subplot(3, 4, i + 1)
        mp.title(models[i].__name__, size=10)
        mp.xticks(())
        mp.yticks(())
        mp.scatter(x, y, s=11, color='g')
        mp.scatter(w, z, s=1, color='r')
    mp.show()

from sklearn.neighbors import KNeighborsRegressor, RadiusNeighborsRegressor
from sklearn.ensemble import GradientBoostingRegressor, AdaBoostRegressor,\
    RandomForestRegressor, BaggingRegressor, ExtraTreesRegressor, VotingRegressor
from sklearn.tree import DecisionTreeRegressor, ExtraTreeRegressor
from sklearn.svm import SVR
from sklearn.neural_network import MLPRegressor
from sklearn.gaussian_process import GaussianProcessRegressor
modeling([
    KNeighborsRegressor, RadiusNeighborsRegressor,
    GradientBoostingRegressor, AdaBoostRegressor, RandomForestRegressor, BaggingRegressor, ExtraTreesRegressor,
    # VotingRegressor,
    DecisionTreeRegressor, ExtraTreeRegressor,
    SVR, MLPRegressor, GaussianProcessRegressor
])

from sklearn.linear_model import LinearRegression, RANSACRegressor, ARDRegression, HuberRegressor, TheilSenRegressor,\
    SGDRegressor, PassiveAggressiveRegressor, Lasso, ElasticNet, Ridge, BayesianRidge, Lars
modeling([
    LinearRegression, RANSACRegressor, ARDRegression, HuberRegressor, TheilSenRegressor,
    SGDRegressor, PassiveAggressiveRegressor, Lasso, ElasticNet, Ridge, BayesianRidge, Lars
])

决策树

import matplotlib.pyplot as mp
# 训练集
y = [.4187, .0964, .0853, .0305, .0358, .0338, .0368, .0222, .0798, .1515]
x = [[i]for i in range(len(y))]
# 待测集
w = [[i / 100 * len(y)] for i in range(100)]

def modeling(models):
    n = len(models)
    for i in range(n):
        # 建模、拟合
        models[i].fit(x, y)
        # 预测
        z = models[i].predict(w)
        # 可视化
        mp.subplot(1, n, i + 1)
        mp.scatter(x, y, s=22, color='g')
        mp.scatter(w, z, s=2, color='r')
    mp.show()

from sklearn.tree import DecisionTreeRegressor
modeling([
    DecisionTreeRegressor(max_depth=1),
    DecisionTreeRegressor(max_depth=2),
    DecisionTreeRegressor(max_depth=3),
    DecisionTreeRegressor(max_depth=4),
    DecisionTreeRegressor(),
])

随机森林

import matplotlib.pyplot as mp
# 训练集
y = [.4187, .0964, .0853, .0305, .0358, .0338, .0368, .0222, .0798, .1515]
x = [[i]for i in range(len(y))]
# 待测集
w = [[i / 100 * len(y)] for i in range(100)]

def modeling(models):
    n = len(models)
    for i in range(n):
        # 建模、拟合
        models[i].fit(x, y)
        # 预测
        z = models[i].predict(w)
        # 可视化
        mp.subplot(1, n, i + 1)
        mp.scatter(x, y, s=22, color='g')
        mp.scatter(w, z, s=2, color='r')
    mp.show()

from sklearn.ensemble import RandomForestRegressor
modeling([
    RandomForestRegressor(max_depth=1),
    RandomForestRegressor(max_depth=2),
    RandomForestRegressor(),
])

高斯过程

高斯过程回归:使用高斯过程先验对数据进行回归分析的非参数模型(non-parameteric model)
算法特征:计算开销大,通常用于低维和小样本的回归问题
应用领域:时间序列分析、图像处理和自动控制等

from sklearn.gaussian_process import GaussianProcessRegressor
import matplotlib.pyplot as mp, random
# 创建样本
a = [199, 188, 170, 157, 118, 99, 69, 44, 22, 1, 5, 9, 15, 21, 30, 40, 50, 60, 70, 79, 88, 97, 99, 98, 70, 46, 39, 33]
for e, y in enumerate((a, [a[i//2]+random.randint(0, 30) for i in range(len(a)*2)])):
    # 待测集
    ly, n = len(y), 2000
    w = [[i / n * 1.2 - .1] for i in range(n)]
    # 建模、拟合、预测
    model = GaussianProcessRegressor()
    model.fit([[i/ly]for i in range(ly)], y)
    z = model.predict(w)
    # 可视化
    mp.subplot(1, 2, e + 1)
    mp.yticks(())
    mp.bar([i/ly for i in range(ly)], y, width=.7/ly)
    mp.scatter(w, z, s=1, color='r')
mp.show()

Keras神经网络

from matplotlib import pyplot
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

# 训练集
y = [.27, .16, .06, .036, .044, .04, .022, .017, .022, .014, .017, .02, .019, .017, .011, .01, .03, .05, .066, .09]
x = list(range(len(y)))
# 待测集
n = 200
w = [i/n*len(y) for i in range(n)]

# 建模
model = Sequential()
model.add(Dense(units=10, input_dim=1, activation='sigmoid'))
model.add(Dense(units=1, activation='sigmoid'))
# 编译、优化
model.compile(optimizer=Adam(), loss='mse')

for i in range(10):
    # 训练
    model.fit(x, y, epochs=2500, verbose=0)
    print(i, 'loss', model.evaluate(x, y, verbose=0))
    # 预测
    z = model.predict(w)
    # 可视化
    pyplot.subplot(2, 5, i + 1)
    pyplot.xticks(())
    pyplot.yticks(())
    pyplot.scatter(x, y)  # 样本点
    pyplot.scatter(w, z, s=2)  # 预测线
pyplot.show()

LSTM

https://blog.youkuaiyun.com/Yellow_python/article/details/86668140

手写算法-Python代码实现非线性回归 手写算法-Python代码实现非线性回归生成非线性数据集1、用线性回归拟合2、多项式拟合sklearn实现,校验系数的结果总结 生成非线性数据集 前面我们介绍了Python代码实现线性回归,今天,我们来聊一聊当数据呈现非线性时,这时我们继续用线性表达式去拟合,显然效果会很差,那我们该怎么处理?继续上实例(我们的代码里用到的数据集尽量直接由Python生成,因此,是可以全部跑通的,有需要的同学,建议大家粘贴复现一下,多思考,多动手,才可以学的更好。) import numpy as np from matpl 阅读详情

相关推荐

python多元非线性回归_day-13 python库实现简单非线性回归应用

一、概率在引入问题前,我们先复习下数学里面关于概率的基本概念概率:对一件事发生的可能性衡量范围:0

weixin_39883670的博客 1522

【机器学习】python实现非线性回归(以中国1960-2014GDP为例)

如果数据表现出一个曲线的趋势,那么相比于非线性回归,线性回归就不会产生一个非常精确的结果,因为线性回归假设数据是线性的。就让我们通过一个例子学习一下非线性回归。在这篇博客中我们对中国1960年到2014年的GDP拟合了一个非线性模型。......

池塘春草梦的博客 1万+

非线性回归Python代码

非线性回归是回归函数关于未知回归系数具有非线性结构的回归。常用的处理方法有回归函数的线性迭代法、分段回归法、迭代最小二乘法等。非线性回归分析的主要内容与线性回归分析相似。

基于Python的非线性回归(Logistic Regression)模型分析与应用

要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。1.由于现实中的具体事例的发生较为复杂,并不能应用线性的模型进行分析,如果要使用的话,就会再每次调整参数得时候同时要调整阈值的范围,那模型的普适性就会变差。即从某一点开始,选择对应的步长和方向进行,不断的下降,直到到达最终的最小值(可能是局部最小也可能是全局最小)为止。如上图所示为Sigmoid函数的图像,函数的值域范围为(0,1),且在自变量z取到0时,因变量g(Z)的值为1/2。

janestan的博客 2723

微带线,带状线和接地共面波导的区别

微带线,带状线和接地共面波导的区别

sky_ying的博客 3万+

阿里云CDN HTTPS 证书配置流程

可以使用HTTPS方式访问资源,如果浏览器中URL旁边出现锁的HTTPS标识,表示HTTPS安全加速已生效。: 证书配置完成后,需要留意证书过期时间并在证书过期前手动配置新的证书。注意 ⚠️ 一定是需要复制 以下标识之间的内容。如果已在阿里云数字证书管理服务中购买了证书,请选择。,该证书将在阿里云数字证书管理服务中保存。如果使用第三方服务商签发的证书,请选择。第四步,在指定域名的左侧导航栏,单击。第二步,在左侧导航栏,单击。开关,并配置证书相关参数。页面,找到目标域名,单击。中选择已购买的证书。

w风雨无阻w的专栏 2212

Python非线性回归预测模型实验完整版

通过本次实验,我学习了非线性回归预测模型的基本原理和建立方法,了解了如何使用Python编程实现预测模型。同时,我们也使用了某省会全社会客运量预测实例,对非线性回归模型进行了实际应用和分析。在实验中,我掌握了数据预处理、模型训练和结果评估等关键技术,对于今后的数据分析和预测工作将有很大的帮助。同时在这个过程之中也出现了一些问题,但通过查阅相关资料最终这些问题都得以解决。在这个过程中我的动手实践能力的到提升,也让我明白了实际动手操作的重要性,在实际操作中可以发现很多平时发现不了的问题,通过实践最终都得以解决。

m0_51431003的博客 6970

OsgEarth实战:飞机模型动态轨迹与雷达扫描效果实现详解

本文详细介绍了如何使用OsgEarth实现飞机模型动态轨迹与雷达扫描效果。通过实战案例,讲解了模型加载、路径规划、动态轨迹绘制、飞行姿态计算以及雷达扫描效果的实现方法,并提供了性能优化技巧,帮助开发者高效完成三维可视化项目开发。

weixin_29214199的博客 304

非线性回归 python_回归算法之非线性回归

起步非线性回归是线性回归的延伸,线性就是每个变量的指数都是 1,而非线性就是至少有一个变量的指数不是 1。生活中,很多现象之间的关系往往不是线性关系。选择合适的曲线类型不是一件轻而易举的工作,主要依靠专业知识和经验。常用的曲线类型有 幂函数,指数函数,抛物线函数,对数函数和S型函数 。化非线性回归为线性回归通过变量代换,可以将很多的非线性回归转化为线性回归。比如目标函数假设是 y = b0 + b...

weixin_39750195的博客 2155

带挂牵引车前向运动模型推导及仿真实现

牵引车-半挂车的车辆结构与普通的车辆相比增加了一个半挂车,它们之间通过鞍座相连接,为了分析半挂牵引车运动过程中的位姿和状态,本文将基于车辆的机械结构建立对应的运动学模型,该模型基于以下假设: 车辆行驶过程中,道路平坦且无凸凹; 车辆低速行驶,且运行过程中车身无侧倾和俯仰运动; 车辆行驶过程中,轮胎无形变,无侧向滑动,且无侧向力; 牵引车和半挂车均满足阿克曼转向几何原理; 牵引车与半挂车不会发现折叠。

jianmo的博客 3184

Angular 相关的知识点和项目汇总

Angular 知识点和项目汇总

weixin_45428910的博客 582

Python多元非线性回归及绘图

Python实现线性拟合及绘图

浩瀚地学的博客 2853

哈希拓展攻击CTF题做法

kali下载相关工具hash-ext-attack:hash拓展题目特征:2023楚慧杯upload_shell实验吧之让我进去:前言:具体怎么加密解密补位的原理我不懂,深入理解的部分我在文末挂了链接,以下也只是我做题的结论和通解,可能不准确(但是做题还挺准确),有错误欢迎指出:是在密码加密过程中引入的一个随机值,它与密码结合使用,目的是增加密码的复杂性和安全性。在密码加密中,常见的做法是将用户提供的密码进行哈希处理,然后存储哈希值而不是明文密码

2301_76690905的博客 2422

python多元非线性回归模型_Python中多维数据样本的非线性回归

试试像这样的编辑:添加了一个使用线性回归结果估计输出的示例函数。import numpy as npdata =np.array([[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],[0.042780748663101636, -0.0044771571786609945, -0.10506567946276...

weixin_40008135的博客 2162

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 213

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 999

python sklearn 实现线性回归与非线性回归

import pandas as pd import numpy as np import matplotlib import random from matplotlib import pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression x = np.array(range(30)) temp_y = 10 + 2*x +.

weixin_49583390的博客 3283

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python 非线性多项式拟合_非线性回归模型(一)--多项式回归

在许多实际问题分析中,回归分析的应用十分广泛,它是处理变量之间相关关系最常用的一种统计方法。回归分析可分为线性回归和非线性回归。线性回归分析相信大家都已经非常熟悉了,它主要分析有线性回归趋势的两个变量间的关系。但是在处理许多实际问题时,变量间的关系并非直线关系,例如细菌生长曲线、药物动力学、毒物剂量与动物死亡率的关系等等。此时,若采用线性回归分析将丢失大量信息,甚至得出错误结论。因此,就需要我们采...

weixin_29570795的博客 2347

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python 非线性回归_如何在python中运行非线性回归

同意Chris Mueller的观点,我也会使用scipy但是^{}。代码如下:###the top two lines are required on my linux machineimport matplotlibmatplotlib.use('Qt4Agg')import matplotlib.pyplot as pltfrom matplotlib.pyplot import cmimp...

weixin_32214771的博客 1018

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python:绘制GAM非线性回归散点图和拟合曲线

本文将介绍使用python语言绘制广义线性模型(Generalized Additive Model,GAM)非线性回归散点图和拟合曲线。并记录了计算RMSE、ubRMSE、R2、Bias的代码。

养乐多的博客 4975

python多元非线性拟合csdn_手写算法-Python代码实现非线性回归

生成非线性数据集前面我们介绍了Python代码实现线性回归,今天,我们来聊一聊当数据呈现非线性时,这时我们继续用线性表达式去拟合,显然效果会很差,那我们该怎么处理?继续上实例(我们的代码里用到的数据集尽量直接由Python生成,因此,是可以全部跑通的,有需要的同学,建议大家粘贴复现一下,多思考,多动手,才可以学的更好。)import numpy as npfrom matplotlib impor...

weixin_39978749的博客 7193

python非线性回归分析_如何在python中运行非线性回归

同意Chris Mueller,我也会使用scipy而不是scipy.optimize.curve_fit.代码如下:###the top two lines are required on my linux machineimport matplotlibmatplotlib.use('Qt4Agg')import matplotlib.pyplot as pltfrom matplotlib....

weixin_39614877的博客 503

python数据挖掘笔记——回归(3):一元非线性回归

概念: 一元非线性回归分析(Univariate Nonlinar Regression):在回归分析中,只包含一个自变量和一个因变量,且二者的关系可以用一条曲线表示,则成为一元非线性分析。 案例:游戏等级和木材消耗的关系。 木材消耗和游戏等级呈一条曲线关系,探究木材消耗和游戏等级之间的非线性关系。 求解:将一元非线性回归方程转为多元线性回归方程,例如: 下面是代码演示: 首先导入数据集,取出...

weixin_42695959的博客 7960

python多元非线性回归_Python利用神经网络解决非线性回归问题实例详解

本文实例讲述了Python利用神经网络解决非线性回归问题。分享给大家供大家参考,具体如下:问题描述现在我们通常使用神经网络进行分类,但是有时我们也会进行回归分析。如本文的问题:我们知道一个生物体内的原始有毒物质的量,然后对这个生物体进行治疗,向其体内注射一个物质,过一段时间后重新测量这个生物体内有毒物质量的多少。因此,问题中有两个输入,都是标量数据,分别为有毒物质的量和注射物质的量,一个输出,也就...

weixin_39687422的博客 3104

python非线性回归分析_Python数据挖掘—回归—一元非线性回归

1、使用scatter_matrix判断个特征的数据分布及其关系散步矩阵(scatter_matrix)Pandas中散步矩阵的函数原理1 def scatter_matrix(frame, alpha=0.5, figsize=None, ax=None, diagonal='hist', marker='.', density_kwds=None,hist_kwds=None, range_p...

weixin_39526238的博客 907

python3 21.用keras进行简单的非线性回归 学习笔记

文章目录前言一、构建非线性模型数据二、构建非线性回归线 前言      计算机视觉系列之学习笔记主要是本人进行学习人工智能(计算机视觉方向)的代码整理。本系列所有代码是用python3编写,在平台Anaconda中运行实现,在使用代码时,默认你已经安装相关的python库,这方面不做多余的说明。本系列所涉及的所有代码和资料可在我的github上下载到,git...

112 5034
上一篇: Oracle常用的统计类SQL
下一篇: 图解Python时间和日期time和datetime数据类型转换
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值