逻辑回归的优点:
(1)预测结果是介于0和1之间的概率;
(2)可以适用于连续性和类别性自变量;
(3)容易使用和解释。
逻辑回归的缺点:
(1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
(2)预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着log(odds)值的变化,概率变化很小,而中间概率的变化很大。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。
我们在线性回归的基础上,修改得到逻辑回归。主要内容为:
定义sigmoid方法,使用sigmoid方法生成逻辑回归模型
定义损失函数,并使用梯度下降法得到参数
将参数代入到逻辑回归模型中,得到概率
将概率转化为分类
import pandas as pd
from sklearn.linear_model import LogisticRegression
# 读取文件 DataFrame
train = pd.read_table('horseColicTraining.txt',header=None)
test = pd.read_table('horseColicTest.txt',header=None)
# 两个数据集作同样的操作,获得数据集和标签
train_label = train[21]
train.drop([21],axis=1,inplace=True)
test_label = test[21]
test.drop([21],axis=1,inplace=True)
# 调用模型,但是并未经过任何调参操作,使用默认值
lr_model = LogisticRegression()
# 训练模型
lr_model.fit(train,train_label)
# 获取测试集的评分
print(lr_model.score(test,test_label))
相关代码已上传GitHub,仅供参考学习使用。