机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

目录

  • 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告
    • 1 逻辑回归算法
      • 1.1 概念理解
      • 1.2 算法导入
      • 1.3 算法优缺点
    • 2 LogisticRegression理解
      • 2.1查看参数定义
      • 2.2 参数理解
      • 2.3 方法
      • 2.4基本格式
    • 3 数据标准化处理
      • 3.1 0~1标准化
        • 3.1.1概念
        • 3.1.2公式
      • 3.2 z标准化
        • 3.2.1概念
        • 3.2.2公式
        • 3.2.3算法导入和实现
    • 4 预测逻辑回归数据
      • 4.1问题及理解
      • 4.2 数据预处理
        • 数据标准化统一
        • 数据测试数据和训练数据划分
      • 4.3 预测数据和分类结果
        • 4.3.1分类结果报告

1 逻辑回归算法


1.1 概念理解

是用于处理因变量为分类变量的回归问题,常见的是二分类问题,可以处理预测的值是为分类变量的问题,它实际上是一种分类方法

1.2 算法导入

from sklearn.linear_model import LogisticRegression

1.3 算法优缺点

  • 优点:
    • 实现简单,易于理解和实现;
    • 计算代价不高,速度很快,存储资源低。
  • 缺点:
    • 容易欠拟合,分类精度可能不高。

2 LogisticRegression理解


2.1查看参数定义

def __init__(self,penalty="l2",*,dual=False,tol=1e-4,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,)

2.2 参数理解

  • Penalty:正则化方式,有l1和l2两种。用于指定惩罚项中使用的规范。
    • newton-cg、sag和lbfgs求解算法只支持L2规范。L1G规范假设的是模型的参数满足拉普拉斯分布,L2假设的模型参数满足高斯分布。
  • Dual:按默认即可。对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。
  • Tol:float,默认值:1e-4,容许停止标准,即我们说的要迭代停止所需达到的精度要求
  • C:正则化强度,为浮点型数据。正则化系数λ的倒数,float类型,默认为1.0,必须是正浮点型数。像SVM一样,越小的数值表示越强的正则化
  • fit_intercept:指定是否应该将常量(即偏差或截距)添加到决策函数中,相当于是否加入截距项b,默认加入。
  • intercept_scaling:仅在正则化项为”liblinear”,且fit_intercept设置为True时有用。float类型,默认为1。
  • class_weight:用于标示分类模型中各种类型的权重,可以是一个字典或者’balanced’字符串,默认为None
  • random_state:随机数产生器在对数据进行洗牌时使用的种子,仅在正则化优化算法为sag,liblinear时有用
  • Solver:{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’},优化拟合参数算法选择默认为liblinear。solver参数决定了我们对逻辑回归损失函数的优化方法,有四种算法可以选择,分别是:
    • liblinear:使用坐标轴下降法来迭代优化损失函数。使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。
    • newton-cg:牛顿法,sag方法使用一阶导数,而牛顿法采用了二阶泰勒展开,这样缩减了迭代轮数,但是需要计算Hsssian矩阵的逆,所以计算复杂度较高。【也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。】
    • Lbfgs:拟牛顿法,用较低的代价寻找Hessian矩阵的近似逆矩阵,便有了拟牛顿法。【拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。】
    • Sag:即随机平均梯度下降,是求解无约束优化问题最经典,最简单的方法之一。【即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。】
    • Saga:线性收敛的随机优化算法。【线性收敛的随机优化算法的的变种。】

liblinear适用于小数据集,而sag和saga适用于大数据集因为速度更快。

  • max_iter:算法收敛最大迭代次数,int类型,默认为100仅在正则化优化算法为newton-cg, sag和lbfgs才有用,算法收敛的最大迭代次数。
  • multi_class:分类方式选择参数,str类型,可选参数为ovr和multinomial,默认为ovr。
  • verbose:日志冗长度,int类型,默认为0。就是不输出训练过程,1的时候偶尔输出结果,大于1,对于每个子模型都输出。
  • warm_start:热启动参数,bool类型,默认为False。如果为True,则下一次训练是以追加树的形式进行(重新使用上一次的调用作为初始化)。
  • n_jobs:并行数。int类型,默认为1。1的时候,用CPU的一个内核运行程序,2的时候,用CPU的2个内核运行程序。为-1的时候,用所有CPU的内核运行程序。

2.3 方法

  • fit(x,y):训练模型,x为特征数据,y为结果
    score(x,y):拟合度,x,y为已知的数据及结果,计算fit()模型与数据的拟合度在[0,1]间,趋于1优,趋于0劣
  • predict([[]数据]):预测数据结果,括号内为二维数组

2.4基本格式

lg = LogisticRegression()
x=特征数据
y=数据结果
lg.fit(x,y)
result = lg.predict(x1)

先引用LogisticRegression()函数,根据历史特征数据和数据结果,训练fit()模型,然后预测x1的回归结果result

3 数据标准化处理

3.1 0~1标准化

3.1.1概念

对原始数据的线性变换,结果映射在[0,1]区间。

3.1.2公式

在这里插入图片描述

3.2 z标准化

3.2.1概念

基于原始数据的均值(mean )和标准差(stand ard deviation)进行数据的标准化。

3.2.2公式

在这里插入图片描述

3.2.3算法导入和实现

z标准化Amount列数据

from sklearn.preprocessing import StandardScaler
data['Amount'] = scaler.fit_transform(data[['Amount']])

4 预测逻辑回归数据


4.1问题及理解

问题:给定数据,预测分类

特征数据:除类别列外,其他有关列
类别标签:类别列
第一列为时间,无关,最后一列为类别给定的数据:
在这里插入图片描述

4.2 数据预处理

数据标准化统一

Amount列不是z标准化处理的结果,需要进行z标准化处理

data['Amount'] = scaler.fit_transform(data[['Amount']])
数据测试数据和训练数据划分
from sklearn.model_selection import train_test_split
# 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr,x_te,y_tr,y_te = \train_test_split(x_all, y_all, train_size=0.3,random_state=0)

4.3 预测数据和分类结果

代码展示:

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, cross_val_predict, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
from sklearn.model_selection import cross_val_score
from sklearn.metrics import confusion_matrix
# 标准化处理
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
# 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr,x_te,y_tr,y_te = \train_test_split(x_all, y_all, test_size=0.3,random_state=1000)
# 逻辑回归方法引用
lg = LogisticRegression(C=1)
# 训练集训练模型
lg.fit(x_tr,y_tr)
# 预测测试集结果
re_pr = lg.predict(x_te)
# 拟合度评分
score = lg.score(x_te,y_te)
# 分类结果报告
print(metrics.classification_report(y_te, re_pr))

运行结果:

在这里插入图片描述

4.3.1分类结果报告
  • precision 精确率,从预测值出发
    Precision=TP/(TP + FP)
  • recall 召回率,从真实值出发
    Recall =TP/(TP + FN)

    其中:
    TP (True Positive):正确预测的正样本数量。
    TN (True Negative):正确预测的负样本数量。
    FP (False Positive):错误预测的正样本数量(实际上是负样本)。
    FN (False Negative):错误预测的负样本数量(实际上是正样本)。

    上图0,1,为类别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/500932.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家政上门小程序如何创建?家政服务怎么能少了小程序帮手

在如今这个“忙到没时间打扫”的时代,家政服务变得越来越受欢迎。为了提高效率、减少沟通成本,很多家政公司都已经开始借助小程序的力量。那么,家政上门小程序到底该如何创建呢?小程序又是如何帮助家政服务更好地满足客户需求的呢?本文将为…

机器学习-感知机-神经网络-激活函数-正反向传播-梯度消失-dropout

文章目录 感知机工作流程 神经网络区别各种各样的神经网络 激活函数激活函数类型Sigmoid 函数ReLU函数Leaky ReLU 函数Tanh 函数 正向传播反向传播梯度消失(gradient vanish)如何解决 Dropout使用 PyTorch实战神经网络算法(手写MNIST数字识别)viewsoftmax和log-softmaxcross-en…

生态碳汇涡度相关监测与通量数据分析实践技术应用

1.以涡度通量塔的高频观测数据为例,基于MATLAB开展上机操作: 2.涡度通量观测基本概况:观测技术方法、数据获取与预处理等 3.涡度通量数据质量控制:通量数据异常值识别与剔除等 4.涡度通量数据缺失插补:结合气象数据…

Win11电脑Cursor默认打开markdown文件,如何修改markdown文件默认打开方式为Typora?

问题 Windows 11电脑上最近新装了cursor,导致我的markdown文件的默认打开方式被自动设置为cursor,那么我想将默认打开方式设置为Typora,应该怎么做呢? 解决方法 选中一个markdown文件,右击,选择属性。 …

基本算法——回归

目录 创建工程 加载数据 分析属性 创建与评估回归模型 线性回归 回归树 评估 完整代码 结论 本节将通过分析能源效率数据集(Tsanas和Xifara,2012)学习基本的回归算法。我们将基 于建筑的结构特点(比如表面、墙体与屋顶面…

PP模块部分BAPI函数

工艺路线 BAPI_ROUTING_CREATE 创建工艺路线 BAPI_ROUTING_EXISTENCE_CHECK 检查工艺路线是否存在 参考操作集 BAPI_REFSETOFOPERATIONS_CREATE 创建参考操作集 BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考操作集是否存在 计划订单 BAPI_PLANNEDORDER_CREATE 创建计划订单 BAPI…

【SpringBoot】多数据源事务卡死@DSTransactional,当某一个数据库挂掉了,系统卡死问题解决

记录最近发生并解决的一个问题 原因 在一个事务内,操作多个数据库,当其中一个数据库挂掉后,默认无限重连,导致事务无法正常结束,导致系统卡死 解决 将无限重连改成有限次数即可 datasource:db1:driver-class-name…

迅为RK3568开发板编译Android12源码包-设置屏幕配置

在源码编译之前首先要确定自己想要使用的屏幕并修改源码,在编译镜像,烧写镜像。如下图所示: 第一步:确定要使用的屏幕种类,屏幕种类选择如下所示: iTOP-3568 开发板支持以下种类屏幕: 迅为 LV…

重装操作系统后 Oracle 11g 数据库数据还原

场景描述: 由于SSD系统盘损坏,更换硬盘后重装了操作系统,Oracle数据库之前安装在D盘(另一个硬盘),更换硬盘多添加一个盘符重装系统后盘符从D变成E,也就是之前的D:/app/... 变成了现在的 E:/app/...,重新安装…

企业二要素如何用C#实现

一、什么是企业二要素? 企业二要素,通过输入统一社会信用代码、企业名称或统一社会信用代码、法人名称,验证两者是否匹配一致。 二、企业二要素适用哪些场景? 例如:信用与金融领域 1.信用评级:信用评级…

丢弃法hhhh

一个好的模型需要对输入数据的扰动鲁棒 丢弃法:在层之间加入噪音,等同于加入正则 h2和h5变成0了 dropout一般作用在全连接隐藏层的输出上 Q&A dropout随机置零对求梯度和求反向传播的影响是什么?为0 dropout属于超参数 dropout固定随…

shell学习数学运算符和字符串(三)

这里写目录标题 一、数学运算符1、基本语法2、expr运算3、(())4、let运算5、bc命令6、中括号[] 二、字符串1、单双引号2、字符串拼接3、获取字符串长度4、字符串提取 一、数学运算符 1、基本语法 ( ( ) ) 或者 (())或者 (())或者{}expr ,-,*,/,%加减乘除取余 2、expr运算 ex…

【Java设计模式-1】单例模式,Java世界的“独苗”

今天咱们要一起探秘Java设计模式中的一个超级有趣又超级实用的家伙——单例模式。想象一下,在Java的代码王国里,有这么一类特殊的存在,它们就像独一无二的“独苗”,整个王国里只允许有一个这样的家伙存在,这就是单例模…

无人机飞手培训机构大量新增,考取飞手证参军入伍还有优势吗?

尽管无人机飞手培训机构大量新增,考取飞手证参军入伍仍然具有显著优势。以下是对这一观点的详细阐述: 一、无人机飞手证在军队中的通用优势 1. 法规遵从与安全保障: 根据《民用无人驾驶航空器系统驾驶员管理暂行规定》等相关法规&#xff0…

计算机网络原理(一)

嘿! 新年的第一篇博客,大家新年快乐呀!希望大家新的一年要多多进步噢! 1.TCP/IP的四层/五层参考模型有哪些层,各层的特点是?计算机网络分层的好处是? TCP/IP 四层参考模型 应用层:直接为用户…

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!DeepSeek-V3上线即开源;OpenAI 发布高级推理模型 o3https://mp.weixin.qq.com/s/9qU_zzIv9ibFdJZ5cTocOw?token47960959&langzh_CN 「青稞大模型Weekly」,持…

【C++】B2089 数组逆序重存放

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯问题描述题目:数组逆序重排输入格式输出格式输入输出样例 💯我的代码实现**代码分析****优化建议** 💯老师的做法与分析方法1&#xff1…

dfs复习

dfs前置知识 0小朋友崇拜圈 - 蓝桥云课 通过深搜,去找到该点指向的下一个点,然后返回所成的环的大小,保留最大的环的大小 通过添加时间戳,记录该点被遍历的时间,如果下一个点有被添加过时间戳,如果时间戳是大于等于我们的最小时间戳的(等于说明该点自成环),那么成环,…

QT---------自定义插件和库

自定义界面组件 设计和使用自定义界面组件 (以 TBattery 为例) 假设我们要创建一个自定义的电池显示组件 TBattery&#xff0c;我们可以从 QWidget 派生一个新的类&#xff1a; #include <QWidget> #include <QPainter>class TBattery : public QWidget {Q_OBJE…

物理知识1——电流

说起电流&#xff0c;应该从电荷说起&#xff0c;而说起电荷&#xff0c;应该从原子说起。 1 原子及其结构 常见的物质是由分子构成的&#xff0c;而分子又是由原子构成的&#xff0c;有的分子是由多个原子构成&#xff0c;有的分子只由一个原子构成。而原子的构成如图1所示。…