精华内容
下载资源
问答
  • R语言多元Logistic逻辑回归 应用案例

    万次阅读 2019-06-14 15:00:55
    R语言多元Logistic回归 应用案例 多元Logistic回归 如何进行多重逻辑回归 可以使用阶梯函数通过逐步过程确定多重逻辑回归。此函数选择模型以最小化AIC,而不是像手册中的SAS示例那样根据p值。另请注意,在此...

    原文链接http://tecdat.cn/?p=2640  

    原文出处:拓端数据部落公众号

     

    可以使用逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。

    如何进行多元逻辑回归

    可以使用step函数通过逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。

    通常建议不要盲目地遵循逐步回归程序,而是要使用拟合统计(AIC,AICc,BIC)比较模型,或者根据生物学或科学上合理的可用变量建立模型。

    多元相关是研究潜在自变量之间关系的一种工具。例如,如果两个独立变量彼此相关,可能在最终模型中都不需要这两个变量,但可能有理由选择一个变量而不是另一个变量。

    多元相关

    创建数值变量的数据框

    
    
    Data.num $ Status = as.numeric(Data.num $ Status)
    
    Data.num $ Length = as.numeric(Data.num $ Length)
    
    Data.num $ Migr = as.numeric(Data.num $ Migr)
    
    Data.num $ Insect = as.numeric(Data.num $ Insect)
    
    Data.num $ Diet = as.numeric(Data.num $ Diet)
    
    Data.num $ Broods = as.numeric(Data.num $ Broods)
    
    Data。 num $ Wood = as.numeric(Data.num $ Wood)
    
    Data.num $ Upland = as.numeric(Data.num $ Upland)
    
    Data.num $ Water = as.numeric(Data.num $ Water)
    
    Data.num $ Release = as.numeric(Data.num $ Release)
    
    Data.num $ Indiv = as.numeric(Data.num $ Indiv)
    
    ###检查新数据框
    
    headtail(Data.num)
    
    1 1 1520 9600.0 1.21 1 12 2 6.0 1 0 0 1 6 29
    
    2 1 1250 5000.0 0.56 1 0 1 6.0 1 0 0 1 10 85
    
    3 1 870 3360.0 0.07 1 0 1 4.0 1 0 0 1 3 8
    
    77 0 170 31.0 0.55 3 12 2 4.0 NA 1 0 0 1 2
    
    78 0 210 36.9 2.00 2 8 2 3.7 1 0 0 1 1 2
    
    79 0 225 106.5 1.20 2 12 2 4.8 2 0 0 0 1 2
    
    ###检查变量之间的相关性
    
    ###这里使用了Spearman相关性
     

    多元逻辑回归的例子

    在此示例中,数据包含缺失值。在R中缺失值用NA表示。SAS通常会无缝地处理缺失值。虽然这使用户更容易,但可能无法确保用户了解这些缺失值的作用。在某些情况下,R要求用户明确如何处理缺失值。处理多元回归中的缺失值的一种方法是从数据集中删除具有任何缺失值的所有观察值。这是我们在逐步回归过程之前要做的事情,创建一个名为Data.omit的数据框。但是,当我们创建最终模型时,我们只想排除那些在最终模型中实际包含的变量中具有缺失值的观察样本。为了测试最终模型的整体p值,绘制最终模型,或使用glm.compare函数,我们将创建一个名为Data.final的数据框,只排除那些观察结果。

    尽管二项式和poission分布中的模型应该没问题,但是对于使用某些glm拟合的步骤过程存在一些注意事项。

    用逐步回归确定模型

    最终模型

    summary(model.final)
    
    
    Coefficients:
    
                  Estimate Std. Error z value Pr(>|z|)   
    
    (Intercept) -3.5496482  2.0827400  -1.704 0.088322 . 
    
    Upland      -4.5484289  2.0712502  -2.196 0.028093 * 
    
    Migr        -1.8184049  0.8325702  -2.184 0.028956 * 
    
    Mass         0.0019029  0.0007048   2.700 0.006940 **
    
    Indiv        0.0137061  0.0038703   3.541 0.000398 ***
    
    Insect       0.2394720  0.1373456   1.744 0.081234 . 
    
    Wood         1.8134445  1.3105911   1.384 0.166455   

     

    伪R方

    $Pseudo.R.squared.for.model.vs.null
    
                                 Pseudo.R.squared
    
    McFadden                             0.700475
    
    Cox and Snell (ML)                   0.637732
    
    Nagelkerke (Cragg and Uhler)         0.833284

     

    模型总体p值

    在最终模型中创建包含变量的数据框,并省略NA。

    偏差表分析

     

    Analysis of Deviance Table
    
     
    
    Model 1: Status ~ Upland + Migr + Mass + Indiv + Insect + Wood
    
    Model 2: Status ~ 1
    
      Resid. Df Resid. Dev Df Deviance  Pr(>Chi)   
    
    1        63     30.392                         
    
    2        69     93.351 -6  -62.959 1.125e-11 ***

    似然比检验

     

    Likelihood ratio test
    
     
    
      #Df  LogLik Df  Chisq Pr(>Chisq)   
    
    1   7 -15.196                        
    
    2   1 -46.675 -6 62.959  1.125e-11 ***

     

    标准化残差图

    简单的预测值图

    在最终模型中创建包含变量的数据框,并在NA中省略

    过度离散检验

    过度离散是glm的deviance残差相对于自由度较大的情况。这些值显示在模型的摘要中。一个指导原则是,如果deviance残差与剩余自由度的比率超过1.5,则模型过度离散。过度离散表明模型不能很好地拟合数据:解释变量可能无法很好地描述因变量,或者可能无法为这些数据正确指定模型。如果存在过度离散,一种可能的解决方案是 在glm中使用quasibinomial family选项。

     

    Null deviance: 93.351  on 69  degrees of freedom
    
    Residual deviance: 30.392  on 63  degrees of freedom
    
    deviance /   df.residual
    
     
    
    [1] 0.482417

     

    评估模型的替代方法

    使用逐步回归程序的替代或补充是将模型与拟合统计进行比较。我的compare.glm 函数将为glm模型显示AIC,AICc,BIC和伪R平方。使用的模型应该都拟合相同的数据。也就是说,如果数据集中的不同变量包含缺失值,则应该谨慎使用。如果您对使用哪种拟合统计数据没有任何偏好,您希望在最终模型中使用较少的项,我可能会推荐AICc或BIC。

    一系列模型可以与标准的anova 进行比较。模型应嵌套在先前模型中或anova函数列表中的下一个模型中; 和模型应该拟合相同的数据。在比较多个回归模型时,通常放宽p值为0.10或0.15。

    在以下示例中,使用通过逐步回归过程选择的模型。请注意,虽然模型9最小化了AIC和AICc,但模型8最小化了BIC。anova结果表明模型8不是对模型7的显着改进。这些结果支持选择模型7,8或9中的任何一个。  

     

    compareGLM(model.1, model.2, model.3, model.4, model.5, model.6,
               model.7, model.8, model.9)
    
     
    
    $Models
    
      Formula                                                  
    
    1 "Status ~ 1"                                             
    
    2 "Status ~ Release"                                       
    
    3 "Status ~ Release + Upland"                               
    
    4 "Status ~ Release + Upland + Migr"                       
    
    5 "Status ~ Release + Upland + Migr + Mass"                
    
    6 "Status ~ Release + Upland + Migr + Mass + Indiv"        
    
    7 "Status ~ Release + Upland + Migr + Mass + Indiv + Insect"
    
    8 "Status ~ Upland + Migr + Mass + Indiv + Insect"         
    
    9 "Status ~ Upland + Migr + Mass + Indiv + Insect + Wood"  
    
     
    
    $Fit.criteria
    
      Rank Df.res   AIC  AICc   BIC McFadden Cox.and.Snell Nagelkerke   p.value
    
    1    1     66 94.34 94.53 98.75   0.0000        0.0000     0.0000       Inf
    
    2    2     65 62.13 62.51 68.74   0.3787        0.3999     0.5401 2.538e-09
    
    3    3     64 56.02 56.67 64.84   0.4684        0.4683     0.6325 3.232e-10
    
    4    4     63 51.63 52.61 62.65   0.5392        0.5167     0.6979 7.363e-11
    
    5    5     62 50.64 52.04 63.87   0.5723        0.5377     0.7263 7.672e-11
    
    6    6     61 49.07 50.97 64.50   0.6118        0.5618     0.7588 5.434e-11
    
    7    7     60 46.42 48.90 64.05   0.6633        0.5912     0.7985 2.177e-11
    
    8    6     61 44.71 46.61 60.14   0.6601        0.5894     0.7961 6.885e-12
    
    9    7     60 44.03 46.51 61.67   0.6897        0.6055     0.8178 7.148e-12
    
    
    Analysis of Deviance Table
    
     
    
    Model 1: Status ~ 1
    
    Model 2: Status ~ Release
    
    Model 3: Status ~ Release + Upland
    
    Model 4: Status ~ Release + Upland + Migr
    
    Model 5: Status ~ Release + Upland + Migr + Mass
    
    Model 6: Status ~ Release + Upland + Migr + Mass + Indiv
    
    Model 7: Status ~ Release + Upland + Migr + Mass + Indiv + Insect
    
    Model 8: Status ~ Upland + Migr + Mass + Indiv + Insect
    
    Model 9: Status ~ Upland + Migr + Mass + Indiv + Insect + Wood
    
     
    
      Resid. Df Resid. Dev Df Deviance Pr(>Chi)   
    
    1        66     90.343                        
    
    2        65     56.130  1   34.213 4.94e-09 ***
    
    3        64     48.024  1    8.106 0.004412 **
    
    4        63     41.631  1    6.393 0.011458 * 
    
    5        62     38.643  1    2.988 0.083872 . 
    
    6        61     35.070  1    3.573 0.058721 . 
    
    7        60     30.415  1    4.655 0.030970 * 
    
    8        61     30.710 -1   -0.295 0.587066   
    
    9        60     28.031  1    2.679 0.101686

     

     


    最受欢迎的见解

    1.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    2.R语言多元Logistic逻辑回归 应用案例

    3.R语言面板平滑转移回归(PSTR)分析案例实现

    4.R语言回归中的Hosmer-Lemeshow拟合优度检验

    5.R语言泊松Poisson回归模型分析案例

    6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

    7.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

    8.在R语言中实现Logistic逻辑回归

    9.R语言实现向量自回归VAR模型

     

    展开全文
  • 文章目录回归定义最常用回归方法一、线性回归(Linear Regression)二、逻辑回归(Logistic Regression) 回归定义 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常...

    回归定义

    回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。
    使用曲线/线来拟合这些数据点,在这种方式下,从曲线或线到数据点的距离差异最小。

    最常用回归方法

    一、线性回归(Linear Regression)

    线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。
      用一个方程式来表示它,即 Y=a+b*X + e,其中a表示截距,b 表示直线的斜率,e 是误差项。这个方程可以根据给定的预测变量(s)来预测目标变量的值。
      使用最小二乘法得到一个最佳的拟合线,对于观测数据,它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。因为在相加时,偏差先平方,所以正值和负值没有抵消。
      7
      可以使用R-square指标来评估模型性能。

    • 要点:
        自变量与因变量之间必须有线性关系。
        多元回归存在多重共线性,自相关性和异方差性。
        线性回归对异常值非常敏感。它会严重影响回归线,最终影响预测值。
        多重共线性会增加系数估计值的方差,使得在模型轻微变化下,估计非常敏感。结果就是系数估计值不稳定,在多个自变量的情况下,我们可以使用向前选择法,向后剔除法和逐步筛选法来选择最重要的自变量。

    二、逻辑回归(Logistic Regression)

    逻辑回归是用来计算「事件=Success」和「事件=Failure」的概率。当因变量的类型属于二元(1 / 0,真/假,是/否)变量时,我们就应该使用逻辑回归。这里,Y的值从0到1,它可以用下方程表示。
      odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
      ln(odds) = ln(p/(1-p))
      logit§ = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3…+bkXk
      上述式子中,p表述具有某个特征的概率。你应该会问这样一个问题:我们为什么要在公式中使用对数log呢?
      因为在这里我们使用的是的二项分布(因变量),我们需要选择一个对于这个分布最佳的连结函数。它就是Logit函数。在上述方程中,通过观测样本的极大似然估计值来选择参数,而不是最小化平方和误差(如在普通回归使用的)。
      6

    • 要点:
        它广泛的用于分类问题。
        逻辑回归不要求自变量和因变量是线性关系。它可以处理各种类型的关系,因为它对预测的相对风险指数OR使用了一个非线性的log转换。
        为了避免过拟合和欠拟合,我们应该包括所有重要的变量。有一个很好的方法来确保这种情况,就是使用逐步筛选方法来估计逻辑回归。它需要大的样本量,因为在样本数量较少的情况下,极大似然估计的效果比普通的最小二乘法差。
        自变量不应该相互关联的,即不具有多重共线性。然而,在分析和建模中,我们可以选择包含分类变量相互作用的影响。
        如果因变量的值是定序变量,则称它为序逻辑回归;如果因变量是多类的话,则称它为多元逻辑回归。

    三、多项式回归(Polynomial Regression)

    对于一个回归方程,如果自变量的指数大于 1,那么它就是多项式回归方程。如下方程所示:y=a+b*x^2
      在这种回归技术中,最佳拟合线不是直线。而是一个用于拟合数据点的曲线。
      5

    • 重点:
        虽然会有一个诱导可以拟合一个高次多项式并得到较低的错误,但这可能会导致过拟合。你需要经常画出关系图来查看拟合情况,并且专注于保证拟合合理,既没有过拟合又没有欠拟合。
        下面是一个图例,可以帮助理解:
      4
        明显地向两端寻找曲线点,看看这些形状和趋势是否有意义。更高次的多项式最后可能产生怪异的推断结果。

    四、逐步回归(Stepwise Regression)

    在处理多个自变量时,我们可以使用这种形式的回归。在这种技术中,自变量的选择是在一个自动的过程中完成的,其中包括非人为操作。
      这一壮举是通过观察统计的值,如 R-square,t-stats 和 AIC 指标,来识别重要的变量。逐步回归通过同时添加/删除基于指定标准的协变量来拟合模型。

    • 最常用的逐步回归方法:
        标准逐步回归法做两件事情。即增加和删除每个步骤所需的预测。
        向前选择法从模型中最显著的预测开始,然后为每一步添加变量。
        向后剔除法与模型的所有预测同时开始,然后在每一步消除最小显着性的变量。
        这种建模技术的目的是使用最少的预测变量数来最大化预测能力。这也是处理高维数据集的方法之一。

    五、岭回归(Ridge Regression)

    岭回归分析是一种用于存在多重共线性(自变量高度相关)数据的技术。在多重共线性情况下,尽管最小二乘法(OLS)对每个变量很公平,但它们的差异很大,使得观测值偏移并远离真实值。岭回归通过给回归估计上增加一个偏差度,来降低标准误差。
      上面,我们看到了线性回归方程。还记得吗?它可以表示为:y=a+ bx
      这个方程也有一个误差项。完整的方程是:
      y=a+b
    x+e (error term), [error term is the value needed to correct for a prediction error between the observed and predicted value]
      => y=a+y= a+ b1x1+ b2x2+…+e, for multiple independent variables.
      在一个线性方程中,预测误差可以分解为2个子分量。一个是偏差,一个是方差。预测错误可能会由这两个分量或者这两个中的任何一个造成。在这里,我们将讨论由方差所造成的有关误差。
      岭回归通过收缩参数 λ(lambda)解决多重共线性问题。看下面的公式:
    3
      在这个公式中,有两个组成部分。第一个是最小二乘项,另一个是 β2(β-平方)的 λ 倍,其中 β 是相关系数。为了收缩参数把它添加到最小二乘项中以得到一个非常低的方差。

    • 要点:
      除常数项以外,这种回归的假设与最小二乘回归类似;它收缩了相关系数的值,但没有达到零,这表明它没有特征选择功能,这是一个正则化方法,并且使用的是L2正则化。

    六、套索回归(Lasso Regression)

    它类似于岭回归。Lasso (Least Absolute Shrinkage and Selection Operator)也会惩罚回归系数的绝对值大小。此外,它能够减少变化程度并提高线性回归模型的精度。看看下面的公式:
    2
      Lasso 回归与 Ridge 回归有一点不同,它使用的惩罚函数是绝对值,而不是平方。这导致惩罚(或等于约束估计的绝对值之和)值使一些参数估计结果等于零。使用惩罚值越大,进一步估计会使得缩小值趋近于零。这将导致我们要从给定的n个变量中选择变量。

    • 要点:
        除常数项以外,这种回归的假设与最小二乘回归类似;
        它收缩系数接近零(等于零),确实有助于特征选择;
        这是一个正则化方法,使用的是L1正则化;
        如果预测的一组变量是高度相关的,Lasso 会选出其中一个变量并且将其它的收缩为零。

    七、回归(ElasticNet)

    ElasticNet 是 Lasso 和 Ridge 回归技术的混合体。它使用 L1 来训练并且 L2 优先作为正则化矩阵。当有多个相关的特征时,ElasticNet 是很有用的。Lasso 会随机挑选他们其中的一个,而 ElasticNet 则会选择两个。
    1
    在高度相关变量的情况下,它会产生群体效应;选择变量的数目没有限制,它可以承受双重收缩。
      除了这 7 个最常用的回归技术,你也可以看看其他模型,如 Bayesian、Ecological 和 Robust 回归。

    如何正确选择回归模型?

    在多类回归模型中,基于自变量和因变量的类型,数据的维数以及数据的其它基本特征的情况下,选择最合适的技术非常重要。以下是你要选择正确的回归模型的关键因素:
      1.数据探索是构建预测模型的必然组成部分。在选择合适的模型时,比如识别变量的关系和影响时,它应该首选的一步。
      2.比较适合于不同模型的优点,我们可以分析不同的指标参数,如统计意义的参数,R-square,Adjusted R-square,AIC,BIC 以及误差项,另一个是 Mallows’ Cp 准则。这个主要是通过将模型与所有可能的子模型进行对比(或谨慎选择他们),检查在你的模型中可能出现的偏差。
      3.交叉验证是评估预测模型最好额方法。在这里,将你的数据集分成两份(一份做训练和一份做验证)。使用观测值和预测值之间的一个简单均方差来衡量你的预测精度。
      4.如果你的数据集是多个混合变量,那么你就不应该选择自动模型选择方法,因为你应该不想在同一时间把所有变量放在同一个模型中。
      5.它也将取决于你的目的。可能会出现这样的情况,一个不太强大的模型与具有高度统计学意义的模型相比,更易于实现。
      6.回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多重共线性情况下运行良好。
    新手可以按照这个逻辑选择:如果结果是连续的,就使用线性回归。如果是二元的,就使用逻辑回归!

    SPSS实操

    • SPSS 做因子分析,输出结果中有一项 Kaiser-Meyer-Olkin Measure of Sampling Adequacy. 它的值是在 [ 0, 1] 范围内,这个值大于 0.5 就证明原数据中的指标适合使用因子分析算法进行建模,小于 0.5 要不重新计算指标,要不换算法。SPSS 做多元线性回归,输出结果中的拟合度过低,说明指标与结果之间的相关性并不明显,要不重新计算指标,要不换算法。
    • 多元线性回归分析理论详解及SPSS结果分析

    第一步:导入数据
    路径:【文件】–【打开】–【数据】–【更改文件类型,找到你的数据】–【打开】–【然后会蹦出下图左中的筛选框,基本使用默认值就行,点确定】
    第二步:数据分析
    【分析】–【回归】–【线性】–【将因变量与自变量添加到对应的地方】–【其他都使用默认值】–【确定】
    第三步:结果分析
    第一项输出结果:输入/移去的变量
    回归
    第二项输出结果:模型汇总
    1.R表示拟合优度(goodness of fit),用来衡量模型的拟合程度,越接近 1 越好;
    2.R方表示决定系数,用于反映模型能够解释的方差占因变量方差的百分比,越接近 1 越好;
    3.调整R方是考虑自变量之间的相互影响之后,对决定系数R方的校正,比R方更加严谨,越接近 1 越好;
    4.标准估计的误差是误差项 ε 的方差 σ2的一个估计值,越小越好;
    一般认为:
    小效应:R (0.1~0.3),对应 R方(0.01~0.09);
    中等效应:R (0.3~0.5),对应 R方(0.09~0.25);
    大效应:R (0.5~1),对应 R方(0.25~1);
    模型
    该例属中等效应,偏斜错误数值稍稍有点高。
    第三项输出结果:变异数分析
    Anova表示方差分析结果,主要看 F 和 显著性值,为方差分析的结果,F检验的重点在 显著性值,具体大小不重要,其 F 值对应的显著性值小于 0.05 就可以认为回归方程是有用的。
    变异数
    显著性值为0小于0.05,该方程可用。
    第四项输出结果:系数
    系数表列出了自变量的显著性检验结果,

    • 非标准化系数中的 B 表示自变量的系数与常数项;
    • 标准系数给出的自变量系数与非标准化系数中的明显不同,这是因为考虑到不同自变量之间的量纲和取值范围不同;
    • t 值 与显著性值 是自变量的显著性检验结果,其 t 值对应的显著性 值小于 0.05 代表自变量对因变量具有显著影响,下图中,自变量Precipitation 对 因变量具有显著影响,而自变量Longitude的影响程度相对而言就弱了很多。
      系数
      综上所有的输出结果,说明 AQI、Precipitation与Longitude 的拟合效果还挺理想的。
      SPSS 给出的回归方程: Y = -15.6 -0.034 * Precipitation + 1.12 * Longitude
    展开全文
  • 在项目中,根据网络保险保费额度的特点,选取了六个比较重要的因变量和六个比较重要的自变量,利用所获得的数据构建了一个较为适合网络保险信用风险度量的logit 模型,分别对这些因变量采取了逻辑回归分析和多元线性...

    1. 项目描述

    保险公司对个人投保时或根据历史数据生成的模型来计算个人保费,那么本次我们就以这个模型的求解过程为例来实践下多元线性回归。

    2 数据与简单分析

    数据信息如下图所示:
    数据集下载
    在这里插入图片描述

    我们已经获取到保险公司部分数据,文件名为insurance.csv,文件内容如下。
    我们可以看出数据中共有六个维度:age(年龄),sex(性别),bmi(肥胖指数),children(孩子数量),smoker(是否吸烟),region(居住地)。charges则是当前数据人上年度在保险的额度。
    所以我们可以构建一个六维高维空间来求解这个模型。

    • 相对于年龄来说, 年龄越大, 购买保险的金额应该越大;
    • 相对于性别来说,整体女性的寿命大于男性寿命大约10年, 因此男性的保险额度应该更大。
    • 相对于肥胖指数来说, 肥胖指数越小, 身体状况越不好, 购买保险的金额应该越大;
    • 相对于孩子的数量来说, 孩子的数量越多, 压力越大, 越劳累, 购买保险的金额应该越大;
    • 相对于是否吸烟来说, 吸烟的人寿命远少于不吸烟的寿命, 因此 购买保险的金额应该越大;
    • 相对于地区来说, 地区环境越差, 有雾霾, 则越容易生病, 那么购买保险的金额应该越大;
      最后说明一下,本章中的数据来源主要是来自某保险公司内部的真实历史数据。

    3 项目实践

    完成本项目后,您将知道:

    • 如何从训练数据中估计统计量。
    • 如何从数据估计线性回归系数。
    • 如何使用线性回归预测新数据。
    import pandas as pd
    import numpy as np
    import  matplotlib.pyplot as plt
    from sklearn.preprocessing import PolynomialFeatures
    from sklearn.linear_model import LinearRegression
    
    # 1). 读取csv文件数据;
    filename = 'data/insurance.csv'
    data = pd.read_csv(filename)
    
    # 2). 清洗数据
    reg = LinearRegression()
    x = data[['age', 'sex', 'bmi', 'children', 'smoker', 'region']]
    y = data['charges']
    # 转换数据类型为整形
    x = x.apply(pd.to_numeric, errors='corece')
    y = y.apply(pd.to_numeric, errors='coerce')
    # 填充空值
    x.fillna(0, inplace=True)
    y.fillna(0, inplace=True)
    
    print(x)
    print(y)
    
    
    # 3). 开始建模
    # degree: 多项式的阶数,一般默认是2;
    # interaction_only:如果值为true(默认是false),则会产生相互影响的特征集。
    # include_bias:是否包含偏差列
    poly_features = PolynomialFeatures(degree=2, include_bias=False)
    # 降维
    X_poly = poly_features.fit_transform(x)
    
    
    # 4). 用线性回归进行拟合
    reg.fit(X_poly, y)
    print(reg.coef_)
    print(reg.intercept_)
    
    # 5). 预测
    y_predict = reg.predict(X_poly)
    
    
    # 5). 真实的y值绘制:图形绘制显示
    plt.plot(x['age'], y, 'b.')
    # 预测的y值绘制
    plt.plot(X_poly[:, 0], y_predict, 'r.')
    plt.show()

    预测值与真实值的图像显示:
    在这里插入图片描述

    展开全文
  • 逻辑回归就是对多元线性回归的缩放 公式如上图,其中t就是多元线性回归的公式:w的转置 * X,逻辑回归的y的取值范围为(0,1),而多元线性回归的y的取值范围是负无穷到正无穷 逻辑回归适合做二分类,用0.5做...

    1. 逻辑回归

    逻辑回归就是对多元线性回归的缩放
    在这里插入图片描述
    公式如上图,其中t就是多元线性回归的公式:w的转置 * X,逻辑回归的y的取值范围为(0,1),而多元线性回归的y的取值范围是负无穷到正无穷

    逻辑回归适合做二分类,用0.5做间隔,大于0.5是一类,小于0.5是另一类

    知识点:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    代码实现鸢尾花案例——二分类:

    
    
    import numpy as np
    from sklearn import datasets
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import GridSearchCV
    import matplotlib.pyplot as plt
    from time import time
    
    iris = datasets.load_iris()  # 鸢尾花数据集,可以点进源码看一下,介绍的很详细
    # print(list(iris.keys()))  # ['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename']
    # print(iris['DESCR'])  # 从结果中可以看出,花瓣petal的长度和宽度和结果的相关性更高,所以花萼的数据就可以不要了
    # print(iris['feature_names'])  # 特征名 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
    
    X = iris['data'][:, 3:]  # 取花瓣宽度这一列数据
    # print(X)
    #
    # print(iris['target'])
    y = iris['target']
    # print(y)
    
    # multi_class='ovr'是二分类,还可以选择多分类;solver="sag"表示用梯度下降的方法
    log_reg = LogisticRegression(multi_class='ovr', solver="sag")
    log_reg.fit(X, y)
    
    
    X_new = np.linspace(0, 3, 1000).reshape(-1, 1)  # 在(0,3)区间内平均分成1000段,取这1000个点作为x
    # print(X_new)
    
    y_proba = log_reg.predict_proba(X_new)  # 预测分类概率
    y_hat = log_reg.predict(X_new)  # 预测分类号
    # print(y_proba)
    # print(y_hat)
    
    plt.plot(X_new, y_proba[:, 2], 'g-', label='Iris-Virginica')
    plt.plot(X_new, y_proba[:, 1], 'r-', label='Iris-Versicolour')
    plt.plot(X_new, y_proba[:, 0], 'b--', label='Iris-Setosa')
    plt.show()
    
    print(log_reg.predict([[1.7], [1.5]]))
    
    
    

    输出结果:[ 2 , 1 ]
    在这里插入图片描述

    用逻辑回归做多分类:就是把一个多分类转化为多个二分类
    在这里插入图片描述
    假设要做一个三分类:就是做三次二分类,取三个结果中的概率最大者为最终结果
    总结:
    在这里插入图片描述

    展开全文
  • 样本不平衡与参数class_weight三、案例:用逻辑回归制作评分卡1. 数据预处理1.1 处理缺失值1.2 处理异常值1.3 样本不均衡问题1.4 训练集和测试集的划分2. 分箱2.1 等频分箱2.2 定义WOE和IV函数2.3 卡方检验,合并...
  • @ [从线性回归到逻辑回归] 从线性回归到逻辑回归 逻辑回归是用来做分类任务的。分类任务的目标是找一个函数,把观测值匹配到相关的类和标签上。学习算法必须用成对的特征向量和对应的标签来估计匹配函数的参数,从而...
  • 逻辑回归模型 Adaboost回归模型(既能做分类,也能做回归) GBDT回归模型(既能做分类,又能做回归) XGBoost回归模型(既能做分类,又能做回归) LightGBM回归模型(既能做分类,又能做回归) 1 . 线性回归模型 ...
  • 数据分析-回归分析读书笔记

    千次阅读 2016-02-16 22:06:05
    案例讲解如何在Excel中做线性回归、多元线性回归和逻辑回归
  • 机器学习案例实战篇

    2021-04-16 22:23:52
    机器学习案例实战篇,选取机器学习开发中最具代表性的经典学习案例,透彻讲解机器学习数据预处理,简单线性回归、多元线性回归、多项式回归、支持向量回归、决策树回归、随机森林回归等回归算法,逻辑回归、k近邻...
  • a sparse matrix 稀疏矩阵 把多元线性回归的负无穷到正无穷缩放到逻辑回归的0和1,逻辑回归是基于多元线性回归!
  • (一)基础铺垫 一元非线性回归分析(Univariate Nonlinear Regression) 在回归分析中,只包括一个自...一元非线性回归方程转为多元一次回归方程 2.实操 关键点提示:把一元非线性方程转化为多元线性方程的方法...
  • 种类的判别分析 有无数据的分析 取代逻辑斯蒂回归回归分析上的应用 案例的数据格式和R 语言代码可 为研究随机森林在分类与回归分析中的应用提供参考 ">随机森林 random forest 模型是由Breiman 和Cutler 在2001 ...
  • 线性回归,K折交叉验证,高斯过程回归和逻辑回归.ipynb 最小二乘线性回归 多项式回归 交叉验证 核岭回归 高斯过程回归(在某些圈子又称“克里金法”) Logistic回归<-神经网络分类的简单案例 多类逻辑回归<-...
  • 线性模型(关系)最小二乘法正则化代码实现模型性能评估过拟合和欠拟合岭回归逻辑回归癌症分类案例分类评估方法ROC曲线和AUC指标模型的保存和加载无监督学习 K-means算法如何对聚类结果进行评估 —— 轮廓系数 ...
  • 机器学习监督算法机器学习常用算法一.回归算法1.最小二乘法1)....逻辑斯蒂回归1)作用场景2)函数选择3)案例4)判断逻辑5)损失函数3.决策树1)熵2)条件熵3)信息增益4)常见算法 机器学习常用算...
  • 12.2 逻辑回归 12.3 线性判别分析 12.4 偏最小二乘判别分析 12.5 惩罚模型 12.6 最近收缩质心 12.7 计算 习题 第13章 非线性分类模型 13.1 非线性判别分析 13.2 神经网络 13.3 灵活判别分析 13.4 支持向量机 13.5 K...
  • 逻辑回归 多元自适应回归(MARS) 本地散点平滑估计(LOESS) 基于实例的学习算法 K-近邻算法(KNN) 学习矢量化(LVQ) 自组织映射算法(SOM) 局部加权学习算法(LWR) 正则化算法 岭回归(Ridge Regression)...
  • 六、逻辑回归(Logistic Regression) 6.1 分类问题 6.2 假说表示 6.3 判定边界 6.4 代价函数 6.5 简化的成本函数和梯度下降 6.6 高级优化 6.7 多类别分类:一对多 七、正则化(Regularization) 7.1 过拟合的问题 7.2 ...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

多元逻辑回归案例