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

news2025/5/11 16:21:41

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

目录

  • 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告
    • 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.coloradmin.cn/o/2272310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICLR2017 | Ens | 深入研究可迁移的对抗样本和黑盒攻击

Delving Into Transferable Adversarial Examples And Black-Box Attacks 摘要-Abstract引言-Introduction对抗深度学习和可迁移性-Adversarial Deep Learning And Transferability对抗深度学习问题生成对抗样本的方法评估方法 非目标性对抗样本-Non-Targeted Adversarial Exam…

在IDEA中如何用git拉取远程某一分支的代码

想要在idea中拉取远程某一分支的代码,我们可以在idea中使用git命令 1.选择idea的Terminal窗口 2.使用git -v 命令查看一下git的版本,顺便测试一下能否使用git命令(不能使用的话需要在idea中进行相关配置) 3.使用 git fetch命令更新…

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

🍬引言 🍬什么是低代码平台? 低代码平台(Low-Code Platform)是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比,低代码平台大大简化了开发过程&a…

基于51单片机(STC32G12K128)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、定时器02、矩阵按键模块3、8X8彩色点阵屏 四、主函数总结 系列文章目录 前言 《贪吃蛇》,一款经典的、怀旧的小游戏,单片机入门必写程序。 以《贪吃蛇》为载体,熟悉各种屏幕…

【开源】创建自动签到系统—QD框架

1. 介绍 QD是一个 基于 HAR 编辑器和 Tornado 服务端的 HTTP 定时任务自动执行 Web 框架。 主要通过抓包获取到HAR来制作任务模板,从而实现异步响应和发起HTTP请求 2. 需要环境 2.1 硬件需求 CPU:至少1核 内存:推荐 ≥ 1G 硬盘:推…

【区块链】零知识证明基础概念详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 零知识证明基础概念详解引言1. 零知识证明的定义与特性1.1 基本定义1.2 三个核心…

豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery

[豆包ai 生成动态tree 增、删、改以及上移下移 htmljquery) 人工Ai 编程 推荐一Kimi https://kimi.moonshot.cn/ 推荐二 豆包https://www.doubao.com/ 实现效果图 html 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

Redis(一)基本特点和常用全局命令

目录 一、Redis 的基本特点 1、速度快&#xff08;但空间有限&#xff09; 2、储存键值对的“非关系型数据库” 3、 功能丰富 4、 支持集群 5、支持持久化 6、主从复制架构 二、Redis 的典型应用场景 1、作为存储热点数据的缓存 2、作为消息队列服务器 3、作为把数据…

SpringMVC(三)请求

目录 一、RequestMapping注解 1.RequestMapping的属性 实例 1.在这里创建文件&#xff0c;命名为Test: 2.复现-返回一个页面&#xff1a; 创建test界面&#xff08;随便写点什么&#xff09;&#xff1a; Test文件中编写&#xff1a; ​编辑 运行&#xff1a; 3.不返回…

K8s集群平滑升级(Smooth Upgrade of K8S Cluster)

简介&#xff1a; Kubernetes ‌ &#xff08;简称K8s&#xff09;是一个开源的容器编排和管理平台&#xff0c;由Google开发并维护。它最初是为了解决谷歌内部大规模容器管理的问题而设计的&#xff0c;后来在2014年开源&#xff0c;成为云原生技术的核心组成部分。‌‌1 K8…

NO.1 《机器学习期末复习篇》以题(问答题)促习(人学习),满满干huo,大胆学大胆补!

目录 一、新手初学&#xff1f;该如何区分[人工智能] [机器学习] [深度学习]&#xff1f; [1]浅谈一下我的理解 [2]深度交流一下 人工智能&#xff08;AI, Artificial Intelligence&#xff09; 机器学习&#xff08;ML, Machine Learning&#xff09; 深度学习&#xff0…

零基础也能建站: 使用 WordPress 和 US Domain Center 轻松五步创建网站 (无需编程)

创建一个网站可能听起来很复杂&#xff0c;但只要使用正确的工具&#xff0c;你可以通过五个简单步骤构建一个专业网站 — — 无需编写任何代码&#xff01;在本教程中&#xff0c;我们将使用 WordPress 和 US Domain Center 指导你完成整个过程。完成后&#xff0c;你将拥有一…

pdf预览 报:Failed to load module script

pdf 预览报&#xff1a; Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “application/octet-stream”. Strict MIME type checking is enforced for module scripts per HTML spec. 报错原因&#xff1a…

【JVM】总结篇之对象内存布局 执行引擎

文章目录 对象内存布局对象的实例化对象的内存布局对象的方问定位 执行引擎 对象内存布局 对象的实例化 new对象流程&#xff1f;&#xff08;龙湖地产&#xff09; 对象创建方法&#xff0c;对象的内存分配。&#xff08;360安全&#xff09; 1.判断对象对应的类是否加载、链…

力扣hot100——动态规划 多维动态规划

前言&#xff1a;题太多了TAT&#xff0c;只贴了部分我觉得比较好的题 32. 最长有效括号 class Solution { public:int longestValidParentheses(string s) {int n s.size();s " " s;vector<int> dp(n 1, 0);int ans 0;for (int i 2; i < n; i) {if…

leecode1143.最长公共子序列

这道题目和最长重复子数组是一个类型的不同之处在于text1[i]!text2[j]时dp[i][j]时他的值是继承上一行或上一列的最大值&#xff0c;二者dp数组的含义也不一样&#xff0c;这里的dp[i][j]表示的是以text[i]和text2[j]为结尾的子序列最大长度&#xff0c;这也是导致两种问题当判…

Multisim更新:振幅调制器+解调器(含仿真程序+文档+原理图+PCB)

前言 继3年前设计的&#xff1a;Multisim&#xff1a;振幅调制器的设计&#xff08;含仿真程序文档原理图PCB&#xff09;&#xff0c;有读者表示已经不能满足新需求&#xff0c;需要加上新的解调器功能&#x1f602;&#x1f602;&#x1f602;&#xff0c;鸽了很久这里便安排…

计算机网络复习(zcmu考试系统练习题)

温馨提示&#xff0c;Ctrl &#xff0b;F搜索关键词 练习网址&#xff1a;https://xxks.zcmu.edu.cn 术语辨析 数据链路层 该层在两个通信实体之间传送以帧为单位的数据&#xff0c;通过差错控制方法,使有差错的物理线路变成无差错数据链路。 网络层 负责使分组以适当的路径…

计算机网络——期末复习(5)期末考试样例1(含答案)

考试题型&#xff1b; 概念辨析&#xff15;个、计算与分析&#xff13;个、综合题&#xff13;&#xff0d;&#xff14;个 必考知识点&#xff1a; 概述&#xff1a;协议 体系结构 物理层&#xff1b;本次考核较少 链路层&#xff1a;CSMA/CD 退避二进制算法 &#xff0…

「Mac畅玩鸿蒙与硬件51」UI互动应用篇28 - 模拟记账应用

本篇教程将介绍如何创建一个模拟记账应用&#xff0c;通过账单输入、动态列表展示和实时统计功能&#xff0c;学习接口定义和组件间的数据交互。 关键词 UI互动应用接口定义动态列表实时统计数据交互 一、功能说明 模拟记账应用包含以下功能&#xff1a; 账单输入&#xff1…