回归模型

python逻辑回归

匿名 (未验证) 提交于 2019-12-02 22:54:36
逻辑回归的概念 Python 2016 2017 2016 python , 20161490 图2.2016 #-*- coding: utf-8 -*- import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("c:/2018/2016myjb.xlsx") print (data) x = data.iloc[:,:8].as_matrix() #行全选,列选下标0-7 print ("x: \n", x) y = data.iloc[:,8].as_matrix()#行全选,列选下标8 print ("y: \n", y) from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR #建立随机逻辑回归模型,筛选变量,特征筛选用了默认阈值0.25 rlr = RLR(selection_threshold=0.25) #训练模型 rlr.fit(x, y) #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 rlr.get_support() print(u

python回归模型之LogisticRegression,LinearDiscriminantAnalysis

匿名 (未验证) 提交于 2019-12-02 22:54:36
运行环境:win10 64位 py 3.6 pycharm 2018.1.1 import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear_model,discriminant_analysis,cross_validation #加载数据 def load_data () : iris = datasets.load_iris() X_train = iris.data y_train = iris.target return cross_validation.train_test_split(X_train, y_train, test_size= 0.25 , random_state= 0 , stratify=y_train) def test_LogisticRegression (*data) : X_train, X_test ,y_train , y_test = data regr = linear_model.LogisticRegression() regr.fit(X_train, y_train) print( "Coefficients:%s, intercept %s" %(regr.coef_,regr.intercept_))

【转载】【收藏】机器学习与深度学习核心知识点总结

耗尽温柔 提交于 2019-12-02 19:02:56
原文地址: https://cloud.tencent.com/developer/article/1526902 数学 1.列举常用的最优化方法 梯度下降法 牛顿法 拟牛顿法 坐标下降法 梯度下降法的改进型如AdaDelta,AdaGrad,Adam,NAG等。 2.梯度下降法的关键点 梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。梯度下降法的迭代公式为: 根据函数的一阶泰勒展开,在负梯度方向,函数值是下降的。只要学习率设置的足够小,并且没有到达梯度为0的点处,每次迭代时函数值一定会下降。需要设置学习率为一个非常小的正数的原因是要保证迭代之后的x k +1位于迭代之前的值x k 的邻域内,从而可以忽略泰勒展开中的高次项,保证迭代时函数值下降。 梯度下降法只能保证找到梯度为0的点,不能保证找到极小值点。迭代终止的判定依据是梯度值充分接近于0,或者达到最大指定迭代次数。 梯度下降法在机器学习中应用广泛,尤其是在深度学习中。AdaDelta,AdaGrad,Adam,NAG等改进的梯度下降法都是用梯度构造更新项,区别在于更新项的构造方式不同。对梯度下降法更全面的介绍可以阅读SIGAI之前的文章“ 理解梯度下降法 ”。 3.牛顿法的关键点 牛顿法利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。牛顿法的迭代公式为: 其中H为Hessian矩阵,g为梯度向量

线性回归中“回归”的含义

孤街浪徒 提交于 2019-12-02 12:31:27
原文地址: https://blog.csdn.net/laputa_ml/article/details/80072570#comments 今天我就简单谈谈自己的一些新想法。我们从最基本的容易引起歧义的地方出发。很多人问我,回归(regression)和拟合(fitting)有什么不同?其实如果你想从数学的角度去区分它们,你就出不来了。知识往往都有“先入为主”的那种影响。我们接触的第一类回归问题,就是简单线性回归,或者多项式回归,而这恰恰和我们接触的拟合问题“天然地相似”:最小二乘法求解参数。因此,那些数学出身的学生,就始终很难将这两类问题真正区分开。但是如果从历史发展的角度,结合更多实际问题来看,这个问题是很容易体会清楚的。 开始的时候,人们得到了很多组数据,这些数据之间貌似是有联系的,于是人们想要找到一种近似的函数关系,来对这些组变量的联系进行某种描述,进而获得某种解释。 当然,人们十分清楚,如果这些数据都是精确无误的,那么经过这些点的插值函数就能较好地解决问题。但是现在,这些采集得到的数据可能是有误差的,或者是biased的,于是插值函数的准确性就反而要被质疑了。于是人们就想找一条不经过任何点,但是却能描述这些数据的基本规律的曲线。这就是拟合。拟合最初是由勒让德和高斯两位数学家在1804年和1809年提出的,那个时候,概率和统计和现在相比,简直还处于原始阶段

sklearn.metrics计算回归模型的四大评价指标

大憨熊 提交于 2019-12-02 06:13:29
'' ' 模型效果指标评估 y_true:真实的数据值 y_pred:回归模型预测的数据值 explained_variance_score:解释回归模型的方差得分,其值取值范围是 [ 0 , 1 ] ,越接近于 1 说明自变量越能解释因变量 的方差变化,值越小则说明效果越差。 mean_absolute_error:平均绝对误差(Mean Absolute Error,MAE),用于评估预测结果和真实数据集的接近程度的程度 ,其其值越小说明拟合效果越好。 mean_squared_error:均方差(Mean squared error,MSE),该指标计算的是拟合数据和原始数据对应样本点的误差的 平方和的均值,其值越小说明拟合效果越好。 r2_score:判定系数,其含义是也是解释回归模型的方差得分,其值取值范围是 [ 0 , 1 ] ,越接近于 1 说明自变量越能解释因 变量的方差变化,值越小则说明效果越差。 explained_variance_score 解释方差的得分 Parameters : y_true : array - like of shape = ( n_samples ) or ( n_samples , n_outputs ) Ground truth ( correct ) target values . y_pred : array - like

R 读取回归模型的信息

不打扰是莪最后的温柔 提交于 2019-12-02 05:12:26
参考博客: http://blog.sina.com.cn/s/blog_8f5b2a2e0101fmiq.html https://blog.csdn.net/huangyouyu523/article/details/78565159 fm = lm(y~x) #线性回归模型 info = summary(fm) #提取模型资料 info$coeff #提取回归系数 info$r.square #提取判定系数R方 info$adj.r.square #提取调整判定系数R方 info$fstatistic #F判定系数 deviance(fm) #计算残差平方和 resid(fm) #计算残差    来源: https://www.cnblogs.com/jiaxinwei/p/11731436.html

多项式回归

柔情痞子 提交于 2019-12-02 02:34:46
在上一篇的一般线性回归中,使用的假设函数是一元一次方程,也就是二维平面上的一条直线。但是很多时候可能会遇到直线方程无法很好的拟合数据的情况,这个时候可以尝试使用多项式回归。多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加,可以进一步降低训练误差,但导致过拟合的风险也随之增加。 图A,模型复杂度与训练误差及测试误差之间的关系 在这里有个问题在刚开始学习线性回归的时候困扰了自己很久:如果假设中出现了高阶项,那么这个模型还是线性模型吗?此时看待问题的角度不同,得到的结果也不同。如果把上面的假设看成是特征 x x的方程,那么该方程就是非线性方程;如果看成是参数 θ θ的方程,那么 x x的高阶项都可以看做是对应 θ θ的参数,那么该方程就是线性方程。很明显,在线性回归中采用了后一种解释方式。因此多项式回归仍然是参数的线性模型。 1. 多项式回归的实现 下面主要使用了numpy、scipy、matplotlib和scikit-learn,所有使用到的函数的导入如下: 1 import numpy as np 2 from scipy import stats 3 import matplotlib.pyplot as plt 4

代价回归函数

…衆ロ難τιáo~ 提交于 2019-12-02 02:28:25
1. 什么是代价函数? 假设有训练样本(x, y),模型为h,参数为θ。h(θ) = θ T x(θ T 表示θ的转置)。 (1)概况来讲,任何能够衡量模型预测出来的值h(θ)与真实值y之间的差异的函数都可以叫做代价函数C(θ),如果有多个样本,则可以将所有代价函数的取值求均值,记做J(θ)。因此很容易就可以得出以下关于代价函数的性质: 对于每种算法来说,代价函数不是唯一的; 代价函数是参数θ的函数; 总的代价函数J(θ)可以用来评价模型的好坏,代价函数越小说明模型和参数越符合训练样本(x, y); J(θ)是一个标量; (2)当我们确定了模型h,后面做的所有事情就是训练模型的参数θ。那么什么时候模型的训练才能结束呢?这时候也涉及到代价函数,由于代价函数是用来衡量模型好坏的,我们的目标当然是得到最好的模型(也就是最符合训练样本(x, y)的模型)。因此训练参数的过程就是不断改变θ,从而得到更小的J(θ)的过程。理想情况下,当我们取到代价函数J的最小值时,就得到了最优的参数θ,记为: min θ J ( θ ) minθJ(θ) 例如,J(θ) = 0,表示我们的模型完美的拟合了观察的数据,没有任何误差。 (3)在优化参数θ的过程中,最常用的方法是梯度下降,这里的梯度就是代价函数J(θ)对θ 1 , θ 2 , ..., θ n 的偏导数。由于需要求偏导

【机器学习】逻辑回归的代价函数及其梯度下降公式推导-转载

痴心易碎 提交于 2019-12-01 20:39:00
1.损失函数及其求解 线性回归模型的模型如下: 逻辑回归的模型定义(需要借助Sigmoid函数): 将上述线性回归的模型带入到g(x)中,得到最终的逻辑回归的模型: 假定上个表达式是等于类 1 的概率,自然等于类 0 的概率等于1减去等于类 1 的概率,如下所述: 将上面两个式子整合为下面一个公式: 那么似然函数为 m表示样本个数,为了方便计算,取对数得 求上式的极大值,引入因子 -1/m,转化为求下式的极小值: 这就是逻辑回归的log损失函数,其中 那我们通过梯度下降更新 theta 其中α是学习步长。 下面给出怎样推导上面的偏导数: sigmoid函数的导数为: g(x)' = g(x)*(1-g(x)) 来源: https://www.cnblogs.com/qinyuguan/p/11717244.html

logistic回归模型

孤人 提交于 2019-12-01 07:22:37
为什么要用 logistic 回归? 在医学领域,我们经常会遇到这样的数据:患病与未患病、生存与死亡、阴性与阳性……这些结果都是二分类变量。如果要研究自变量与分类型因变量的关系,用多元线性回归模型是束手无策的,因为多元线性回归模型研究连续性因变量,并且要求总体(因变量)分布类型为正态分布。因此,当因变量为分类变量时,需要使用logistic回归模型。 什么是 logistic 回归模型? logit 变换 我们在建立回归方程时,因变量的取值范围为实数集;而在我们所研究的问题中,这些分类型因变量的取值却是在0~1之间,如患病率为0.1、0.5、0.8等等,因此需要先对因变量的值(目标概率)做logit变换。 设事件发生的概率为$p$,不发生的概率为$1-p$,则将$\frac{p}{1-p}$称为事件的发生比,记为odds(比数、优势),logit变换即为: $$logit(p)=ln(\frac{p}{1-p})$$ 显然,当$p=1$时,$logit(p)$取值为$+\infty$;当$p=0.5$时,$logit(p)=0$;当$p=0$时,$logit(p)$取值为$-\infty$。这样一来,就把因变量的取值范围从0~1扩展到了实数集,而采用了这种处理的回归分析就是logistic回归。 logistic 回归模型 设有一个二分类因变量y,取值为1时表示事件发生