• Logistic回归


    适用因变量一般有1和0(是否)两种取值,表示取值为1的概率.

    import pandas as pd
    filename = '../data/bankloan.xls'
    data = pd.read_excel(filename)
    x = data.iloc[:,:8].as_matrix()  #读取自变量,并处理为pd的二维数组
    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() #筛选出结果,默认阈值0.25,可以RLR(selection_threshold = 0.5)手动设置
    print(u'通过随机筛选模型选取特征结束.')
    print(rlr.get_support())
    print(rlr.scores_)
    # print(data.columns)
    # print(x)
    #print(u'有效特征为:s%' % ','.join(data.columns[rlr.get_support()]))
    print(u'有效特征为:%s' % ','.join(data.iloc[:,:8].columns[rlr.get_support()]))  #有效特征为:工龄,地址,负债率,信用卡负债
    x = data[data.iloc[:,:8].columns[rlr.get_support()]].as_matrix()   #筛选好特征
    
    lr = LR()   #建立逻辑回归模型
    lr.fit(x,y) #用筛选好的特征数据训练模型
    print(u'逻辑回归模型训练结束.')
    print(u'模型的平均正确率:%s' % lr.score(x,y))
    通过随机筛选模型选取特征结束.
    [False False  True  True False  True  True False]
    [ 0.085  0.085  0.98   0.4    0.     0.995  0.545  0.03 ]
    有效特征为:工龄,地址,负债率,信用卡负债
    Index(['工龄', '地址', '负债率', '信用卡负债'], dtype='object')
    逻辑回归模型训练结束.
    模型的平均正确率:0.814285714286
    
    Process finished with exit code 0

    采用随机逻辑回归剔除自变量(剔除false),逻辑回归的本质还是一种线型模型,被筛选掉的变量不一定就跟结果没关系,可能存在非线型相关.

  • 相关阅读:
    java ssh整合报错:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
    Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法
    socket
    vim编辑器的使用
    linux用户和群组
    bash shell
    [LightOJ 1128]Greatest Parent
    [Luogu P4180][BJWC 2010]严格次小生成树
    函数、方法区别
    有关_meta内容(持续更新)
  • 原文地址:https://www.cnblogs.com/hanshuai0921/p/9150624.html
Copyright © 2020-2023  润新知