R. python新手日记生物信息学与算法机器学习

python logistic回归

2018-01-15  本文已影响205人  柳叶刀与小鼠标

常用的分类与预测算法

其中回归分析包括:

  • 一般自变量和因变量之间存在线性关系的时候,就可以用线性回归的方法,而两者之间呈现的是某种曲线特性时,就用非线性回归,当自变量之间出现多重共线时,用最小二乘估计的回归系数不准确,则主要用岭回归和主成分回归法。
  • 此处的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回归模型步骤

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

#-*- 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
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)
上一篇下一篇

猜你喜欢

热点阅读