• Python回归分析五部曲(三)—一元非线性回归


    (一)基础铺垫

    • 一元非线性回归分析(Univariate Nonlinear Regression)

      • 在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条曲线近似表示,则称为一元非线性回归分析。

      • 一元二次方程:

    y=a2x2+a1x1+a0x0


      • 一元三次方程:

    y=a3x3a2x2+a1x1+a0x0


      • 一元 n 次方程:

    y=anxn......+a1x1+a0x0

    (二)案例-金融场景为例

    产品编号 手续费(%) 金融产品销售额
    1 2.2 25.5
    2 2.3 22.5
    3 2.4 19.5
    4 2.5 16.5
    5 2.7 13.5
    6 3.1 10.5
    7 3.6 7.5
    8 4.8 4.5
    9 7.0 1.5

    1.建模逻辑

    • 一元非线性回归方程转为多元一次回归方程

    y=a2x2+a1x1+a0x0

    y=a2x¯2+a1x¯1+a0x¯0

    shujudata

    x¯0=x0

    x¯1=x1

    x¯2=x2

    2.实操

    • jacky关键点提示:把一元非线性方程转化为多元线性方程的方法

      • 转化的方法是PolynomialFeatures类

      • 要确定是一元几次方程(从图形中观察),然后确定degree是几(多少阶的方程)

    #---author:朱元禄---
    import pandas
    data = pandas.read_csv(
        'file:///Users/apple/Desktop/jacky_1.csv',encoding='GBK'
    )
    
    x = data[["手续费(%)"]]
    y = data[["金融产品销售额"]]
    
    import matplotlib
    font = {
        'family':'SimHei'
    }
    matplotlib.rc('font',**font)
    matplotlib.rcParams['axes.unicode_minus'] = False
    from pandas.plotting import scatter_matrix
    
    scatter_matrix(
        data[["手续费(%)","金融产品销售额"]],
        alpha = 0.8,figsize =(10,10),diagonal = 'kid'
    )
    
    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import PolynomialFeatures
    
    pf = PolynomialFeatures(degree=2)
    x_2_fit = pf.fit_transform(x)
    
    lrModel = LinearRegression()
    lrModel.fit(x_2_fit,y)
    
    lrModel.score(x_2_fit,y)
    
    x_2_predict = pf.fit_transform([9],[10])
    lrModel.predict(x_2_predict)
    
  • 相关阅读:
    Thinking in Ramda: Getting Started
    计算机网络 第一章 绪论(习题)
    URI和URL傻傻分不清
    mac下安装sshpass并配置自动登录
    项目 NodeJS 版本锁定及自动切换
    项目部署篇(一)后端springboot项目打包和部署
    安卓开启GPS,native.js
    native.js,安卓判断APP是否在电池优化白名单
    Self-Supervised Visual Representations Learning by Contrastive Mask Prediction
    wireshark抓包工具使用介绍(附图)
  • 原文地址:https://www.cnblogs.com/shujufenxi/p/9054435.html
Copyright © 2020-2023  润新知