python logistic回归

简介: 常用的分类与预测算法回归分析决策树人工神经网络贝叶斯网络支持向量机其中回归分析包括:线性回归---自变量因变量线性关系,最小二乘法求解。

常用的分类与预测算法

  • 回归分析
  • 决策树
  • 人工神经网络
  • 贝叶斯网络
  • 支持向量机

其中回归分析包括:

  • 线性回归---自变量因变量线性关系,最小二乘法求解。
  • 非线性回归--自变量因变量非线性关系,函数变换为线性关系,或非线性最小二乘方法求解。
  • logistic回归--因变量一般有1和0两种取值,将因变量的取值范围控制再0-1范围内,表示取值为1的概率。
  • 岭回归--要求自变量之间具有多重共线性,是一种改进最小二乘法的方法。
  • 主成分回归--要求自变量之间具有多重共线性,是对最小二乘法的方法的改进,可以消除自变量间的多重共线性。
  • 一般自变量和因变量之间存在线性关系的时候,就可以用线性回归的方法,而两者之间呈现的是某种曲线特性时,就用非线性回归,当自变量之间出现多重共线时,用最小二乘估计的回归系数不准确,则主要用岭回归和主成分回归法。
  • 此处的logistics回归属于概率性非线性回归,对于二分类问题,y只有是否两个值,1和0,在自变量x1,x2,x3作用下y取值为是的概率为p,取值为否的概率为1-p。logistics回归 p=P(y=1|X),取0概率是1-p,取1和取0的概率之比为p/1-p,成为事件的优势比odds,odds取对数得到Logistic变换Logit(p)=ln(p/1-p),再令Logit(p)=ln(p/1-p)=z ,则可以求出p=1/1+e^-z,则为Logistic函数。

logistics回归模型步骤

  • 根据挖掘目的设置特征,并筛选特征x1,x2...xp,使用sklearn中的feature_selection库,F检验来给出特征的F值和P值,筛选出F大的,p小的值。RFE(递归特征消除)和SS(稳定性选择)
  • 列出回归方程ln(p/1-p)=β0+β1x1+...+βpxp+e
  • 估计回归系数
  • 模型检验
  • 预测控制

随机逻辑回归进行特征筛选,逻辑回归进行模型训练评估

#-*- coding: utf-8 -*-
#逻辑回归 自动建模
import pandas as pd

#参数初始化
filename = '../data/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:,:8].as_matrix()
y = data.iloc[:,8].as_matrix()

from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR 
rlr = RLR() #建立随机逻辑回归模型,筛选变量
rlr.fit(x, y) #训练模型
rlr.get_support() #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数
print(u'通过随机逻辑回归模型筛选特征结束。')
print(u'有效特征为:%s' % ','.join(data.columns[rlr.get_support()]))
x = data[data.columns[rlr.get_support()]].as_matrix() #筛选好特征

lr = LR() #建立逻辑货柜模型
lr.fit(x, y) #用筛选后的特征数据来训练模型
print(u'逻辑回归模型训练结束。')
print(u'模型的平均正确率为:%s' % lr.score(x, y)) 


逻辑回归模型训练结束。
模型的平均正确率为:0.805714285714
img_3820e88e3fe92ac3850212cf0f1ba104.png
RandomizedLogisticRegression(C=1, fit_intercept=True, memory=None, n_jobs=1,
               n_resampling=200, normalize=True, pre_dispatch='3*n_jobs',
               random_state=None, sample_fraction=0.75, scaling=0.5,
               selection_threshold=0.25, tol=0.001, verbose=False)
  • 从结果来看,采用随机逻辑回归剔除变量,分别剔除了x2 x8 x1 x5。 在建立随机逻辑回归模型时, 使用了默认的阈值0.25,可以使用(selection—threshold = 0.5)设置阈值。逻辑回归本质上还是一种线性模型,因此所筛选出来的变量,说明与结果有比较强的线性相关,然而被剔除的变量不一定跟结果没关系,因为他们之间可能是非线性关系。
目录
相关文章
|
6月前
|
机器学习/深度学习 Python
【机器学习Python实战】logistic回归
【机器学习Python实战】logistic回归
50 0
|
2天前
|
机器学习/深度学习 算法 测试技术
Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享
Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享
|
5月前
|
机器学习/深度学习 自然语言处理 算法
【Python自然语言处理】使用逻辑回归(logistic)对电影评论情感分析实战(超详细 附源码)
【Python自然语言处理】使用逻辑回归(logistic)对电影评论情感分析实战(超详细 附源码)
105 0
|
9月前
|
机器学习/深度学习 自然语言处理 算法
【机器学习实战项目】10分钟学会Python怎么用Logistic回归进行分类预测(一)
【机器学习实战项目】10分钟学会Python怎么用Logistic回归进行分类预测(一)
163 0
|
机器学习/深度学习 数据可视化 算法
吴恩达机器学习ex2 Logistic Regression (python)(下)
吴恩达机器学习ex2 Logistic Regression (python)(下)
吴恩达机器学习ex2 Logistic Regression (python)(下)
|
机器学习/深度学习 算法 数据可视化
吴恩达机器学习ex2 Logistic Regression (python)(上)
吴恩达机器学习ex2 Logistic Regression (python)
吴恩达机器学习ex2 Logistic Regression (python)(上)
|
数据采集 机器学习/深度学习 算法
Logistic模型原理详解以及Python项目实现(2)
Logistic模型原理详解以及Python项目实现(2)
212 0
Logistic模型原理详解以及Python项目实现(2)
|
机器学习/深度学习 算法 Python
Logistic模型原理详解以及Python项目实现(1)
Logistic模型原理详解以及Python项目实现
232 0
Logistic模型原理详解以及Python项目实现(1)
|
机器学习/深度学习 数据挖掘 Python
python 数据分析之logistic(逻辑)回归
python 数据分析之logistic(逻辑)回归
138 0
python 数据分析之logistic(逻辑)回归
|
机器学习/深度学习 JavaScript 数据挖掘
【理论+案例实战】Python数据分析之逻辑回归(logistic regression)
逻辑回归是分类当中极为常用的手段,它属于概率型非线性回归,分为二分类和多分类的回归模型。对于二分类的logistic回归,因变量y只有“是”和“否”两个取值,记为1和0。假设在自变量x1,x2,……,xp,作用下,y取“是”的概率是p,则取“否”的概率是1-p。
14102 0