data1 是40名癌症病人的一些生存资料,其中,X1表示生活行动能力评分(1~100),X2表示病人的年龄,X3表示由诊断到直入研究时间(月);X4表示肿瘤类型,X5把ISO两种疗法(“1”是常规,“0”是试验新疗法);Y表示病人生存时间(“0”表示生存时间小于200天,“1”表示生存时间大于或等于200天)
试建立Y关于X1~X5的logistic回归模型
读入数据做数据清洗和特征选择
# -*- coding: utf-8 -*-
import pandas as pd
from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
data1=pd.read_table(r'C:/Users/Administrator/Desktop/data1.txt',sep='\s+',
encoding='gbk',usecols=(1,2,3,4,5,6))
X=data1.iloc[:,:5].as_matrix()
y=data1.iloc[:,5].as_matrix()
#特征筛选
rlr=RLR()
rlr.fit(X,y)
print(rlr.get_support())
print(u'通过随机逻辑回归模型筛选特征结束。')
用随机逻辑回归用于特征筛选,可以看到只有x1 符合
将x1做逻辑回归
#建议逻辑回归模型
lr=LR()
x=data1.iloc[:,:1].as_matrix()
lr.fit(x,y)
print('模型建立结束')
print('模型平均正确率:{0}'.format(lr.score(x,y)))
可以看到模型正确率达到75%。