zoukankan      html  css  js  c++  java
  • 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实训——校园公用房管理系统
    打我吧,不写了
    我有我的方向
    JAVA 算法练习(二)
    JAVA 算法练习(一)
    php设置时区和strtotime转化为时间戳函数
    dos中文乱码怎么办?
    织梦怎么调用栏目SEO标题
    for in循环介绍以及陷阱
    浅谈js for循环输出i为同一值的问题(闭包解决)
  • 原文地址:https://www.cnblogs.com/hanshuai0921/p/9150624.html
Copyright © 2011-2022 走看看