简介
- logistic回归是监督学习模型,只支持二分类任务;
- 决策函数是在线性回归的形式上套上一层sigmoid函数层,将y值映射到[0, 1]区间,表示分类为正类的概率;
- 线性模型可解释性较好,逻辑回归模型常用在信用评估、医疗诊断等评分卡模型;
求解参数
- 极大似然估计
正类概率:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9b00eb876ca00417ff912a8140987c42.png)
- 最小化交叉熵损失函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bccca9d9d3c269e21dbc4d50ac028353.png)
- 说明
两种方法等价,均为凸优化问题,可以采用梯度下降法、牛顿法等进行参数求解;
优缺点
- 优点:可解释性好、模型复杂度低;
- 缺点:在线性可分数据集上表现较好,但在复杂学习任务(线性不可分场景)容易欠拟合;
sklearn实战
重要参数
class sklearn.linear_model.LogisticRegression(
penalty='l2',
dual=False,
tol=1e-4,
C=1.0,
fit_intercept=True,
intercept_scaling=1,
class_weight=None,
random_state=None,
solver='liblinear',
max_iter=100,
multi_class='ovr',
verbose=0,
warm_start=False,
n_jobs=1
):
分类任务
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
data = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data["data"], data["target"], test_size=0.3, random_state=40)
model = LogisticRegression()
model.fit(X_train, y_train)
print("train acc: ", model.score(X_train, y_train))
print("test acc: ", model.score(X_test, y_test))