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),邏輯迴歸的本質仍是一種線型模型,被篩選掉的變量不必定就跟結果不要緊,可能存在非線型相關.dom

相關文章
相關標籤/搜索