【sklearn学习】逻辑回归
逻辑回归的优点:
- 使用于分类问题中的回归算法
- 逻辑回归对线性关系的拟合效果好
- 逻辑回归计算快
- 逻辑回归返回的分类结果不固定,而是以小数的形式呈现的类概率数字
- 逻辑回归有抗噪能力强的特点,在小数据集上表现较好
sklearn.linear_model.LogisticRegression
class sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)
penalty:字符串,指定正则化策略,'l1'或'l2'
dual:bool,默认为True,求解对偶形式
C:float,指定惩罚项系数的倒数,如果值越小,则正则化项越大
fit_intercept:bool,是否需要计算b值
intercept_scaling:float,只有当solver='liblinear'才有意义
使用损失函数衡量参数为θ的模型拟合训练集时产生的信息损失的大小,并以此衡量参数θ的优劣
在模型拟合过程中,让损失函数最小化的参数组合
正则化用来防止模型过拟合,常用的有L1正则化和L2正则化
L1范式表示每个参数的绝对值之和
L2范式表示为参数向量中的每个参数的平方和的开方值
L1正则化会将参数压缩到0,L2正则化只会让参数尽量小,不会取到0
import matplotlib as plt
import pandas as pd
from sklearn.datasets import fetch_california_housing
from sklearn.datasets import load_breast_cancer, load_wine
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
cancer = load_breast_cancer()
data_train, data_test, target_train, target_test = train_test_split(cancer.data, cancer.target, test_size=0.2, random_state=0)
lr = LogisticRegression(max_iter=300, solver='liblinear', random_state=0)lr.fit(data_train, target_train)
train_score = lr.score(data_train, target_train)
print("train score:", train_score)
test_score = lr.score(data_test, target_test)
print("test score:", test_score)
def test_LogisticRegression_C(*data):'''测试 LogisticRegression 的预测性能随 C 参数的影响:param data: 可变参数。它是一个元组,这里要求其元素依次为:训练样本集、测试样本集、训练样本的标记、测试样本的标记:return: None'''X_train,X_test,y_train,y_test=dataCs=np.logspace(-2,4,num=100)scores=[]for C in Cs:regr = LogisticRegression(C=C, max_iter=300, solver='liblinear')regr.fit(X_train, y_train)scores.append(regr.score(X_test, y_test))## 绘图fig=plt.figure()ax=fig.add_subplot(1,1,1)ax.plot(Cs,scores)ax.set_xlabel(r"C")ax.set_ylabel(r"score")ax.set_xscale('log')ax.set_title("LogisticRegression")plt.show()test_LogisticRegression_C(data_train,data_test,target_train,target_test) # 调用 test_LogisticRegression_C
对于线性回归,多重共线性会有影响,需要使用方差过滤和方差膨胀因子VIF消除共线性
多元逻辑回归
- multi_class
'ovr'表示分类问题是二分类
'multinomial'表示处理多分类
’auto'根据数据的分类情况自动确定分类类型
- solver
'liblinear':坐标下降法
‘lbfgs':拟牛顿法
’newton-cg':牛顿法的一种,海森矩阵优化迭代损失函数
'sag':随机平均梯度下降
’saga'
样本不平衡与参数class_weight
通过重复样本方式平衡类别
【sklearn学习】逻辑回归相关推荐
- sklearn的逻辑回归
官方逻辑回归链接 sklearn.linear_model.LogisticRegression - scikit-learn 1.0.2 documentationhttps://scikit-le ...
- sklearn之逻辑回归和岭回归
过拟合与欠拟合 过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象.(模型过于复杂) 欠拟合:一个假设在训练 ...
- Python+sklearn使用逻辑回归算法预测期末考试能否及格
封面图片:<Python程序设计实验指导书>,董付国编著,清华大学出版社 ================= 虽然名字中带有"回归"二字,但实际上逻辑回归是一个用于分类 ...
- 【机器学习之逻辑回归】sklearn+python逻辑回归详解
文章目录 一.逻辑回归 二.算法原理介绍 三.代码实现 3.1 sklearn-API介绍 3.2 sklearn-代码实现 3.3 python手写代码实现 四.总结 五.算法系列 一.逻辑回归 逻 ...
- sklearn入门——逻辑回归
什么是逻辑回归 逻辑回归也叫对数几率回归,在西瓜书中有介绍,吃瓜的时候也学过,可惜呀,脑子不好使,全忘了.重新学一下吧.... 在理解对数几率回归之前需要先理解线性回归.线性回归的任务,就是构造一个预 ...
- sklearn之逻辑回归LR
对于线性回归,由于都是求线性参数:逻辑回归,由于其呈S型,具有在坐标轴两个左右边进行急剧上升下降的趋近1或者0,因此具有分类特性. 决策树是天生的过拟合,而线性回归是天生的欠拟合: L1范式可以完成 ...
- Sklearn笔记--逻辑回归调参指南
1 逻辑回归概述 pθ(y=1∣x)=δ(θ⊤x)=11+e−θ⊤xpθ(y=0∣x)=e−θ⊤x1+e−θ⊤x\begin{array}{c} p_{\theta}(y=1 | x)=\delta\ ...
- 李宏毅深度学习——逻辑回归
这就是logistic regression的原理 logistic regression相比于linear regression而言,外面套了一个sigmoid函数 y_hat是110而不是10 ...
- python机器学习基础05——sklearn之逻辑回归+分类评价指标
文章目录 逻辑回归 逻辑回归的损失函数 逻辑回归API 分类模型的评价指标 混淆矩阵 准确率 召回率(较多被使用) 精确率 f1-score:精确率和召回率的调和平均数 AUC 逻辑回归 逻辑回归是经 ...
- Sklearn学习-iris数据集学习
Sklearn学习-逻辑回归(iris数据集) 使用load_iris加载数据集,查看包含的keys 查看数据的列名,分类目标的名称 获取data和target,并打印各自的shape 拆分训练集和测 ...
最新文章
- SAP QM 将业务上的偏差管理集成进入SAP系统?
- zabbix linux网卡流量,如何使用zabbix3.2监控Windows网卡流量
- Scala(三):类
- 软件工程结对开发团队成员以及题目介绍
- (转载)C++之tinyXML使用
- %hd %d %ld %u ......
- P4231 三步必杀 二次差分
- 杭电 4548 美素数
- 数学归纳法证明时间复杂度
- vscode代码对比功能
- 员工信息管理系统--C语言
- python可视化计算器_使用Python自带GUI tkinter编写一个期权价格计算器
- android 如何读取u盘中数据恢复,U盘数据恢复常见问题及恢复方法汇总
- 资历越深,越是负资产
- 当你提出的分手被当真,应该如何去挽回
- 软考 | 2019年上半年 软件设计师 下午试卷
- 走进Dubbo——RPC框架简介
- 华为防火墙的基本安全策略
- 自动化测试+性能面试题整理--个人最新【持续更新】
- Docker 磁盘空间使用分析与清理 解决磁盘空间不足
热门文章
- quill鼠标悬浮 出现提示_外设报道——DELUX多彩M618X垂直鼠标颠覆创新
- Android开发之API29以上Environment.getExternalStoragePublicDirectory废弃的问题
- Android开发之非常好用的日志工具类(公司项目挖出来的)
- java 固定listview_listview Button始终放在底部示例
- 使用apache配置基于IP地址的虚拟主机
- iOS开发如何实现消息推送机制
- Windows 2003 Server 用户隔离
- Java 的抽象特性:抽象类与接口深度解析
- 【Linux】/dev/null 21 详解
- 大数据学习路线copy自淘宝