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

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

目录

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

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

相关文章

Linux(Ubuntu24.04)源码编译安装VTK7.1.1记录

VTK(Visualization Toolkit)是一个开源的3D可视化开发工具包,用于开发可视化和图形处理应用程序。VTK提供了一系列的算法和工具,用于创建、渲染和处理复杂的3D图形和数据。VTK由C编写,并提供了Python、Java和Tcl等语言…

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64 工具下载安装设置国内镜像源(永久) node-v20.18.0-x64 工具 系统:Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v2…

如何轻松安全地销售旧 Android 手机

众所周知,手机不断更新换代。当您想要的手机终于到货时,您可能迫不及待地将旧 Android 手机更新为最新手机。在此之前,你们中的一些人可能会考虑以最多的钱卖掉旧的Android手机。 但永远不要冲动地卖掉你的旧 Android 手机!为了安…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑|OKG Research 转眼间,2024年已经进入尾声,Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年,OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”,尝试把一整年的研究内容浓缩成精华。我们一共…

【从零开始入门unity游戏开发之——unity篇04】unity6基础入门——场景窗口(Scene)和层级窗口(Hierarchy)介绍

文章目录 场景窗口(Scene)和层级窗口(Hierarchy)一、层级窗口(Hierarchy)1、添加新的对象(物体)2、Hierarchy层级窗口快捷键3、搜索 二、Scene场景窗口1、工具栏控制台2、操作物体位…

Mac中配置vscode(第一期:python开发)

1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意:xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括:C/C 编…

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份,并在需要时进行编辑。这可以做到吗?如何做到?作为助手我需要下载什么工具吗? 当您的 Android 手机上存储了如此多的重要联系人,而您又不想丢失它们时&#…

学习threejs,导入AWD格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AWDLoader AWD模型加…

【OAA 】面向对象分析:从概念到实践

🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 我们都知道Java是一门面向对象的开发语言,在软件开发的广袤天地中,面向对象分析(Object-Oriented Analysis,简称…

jvm结构介绍

JVM结构概述 Java虚拟机(JVM)是Java程序的运行环境,它负责将Java字节码转换为机器码并执行。JVM的结构主要包括类加载子系统、运行时数据区、执行引擎、本地接口以及垃圾收集器。 1. 类加载子系统(Class Loader Subsystem&#xf…

Nginx常用配置之详解(Detailed Explanation of Common Nginx Configurations)

Nginx常用配置详解(图文全面总结) Nginx Nginx 是一款轻量级的高性能 HTTP、 和反向代理服务器。 Nginx,被广泛用于负载均衡、静态文件服务、和代理.........等。 Nginx,以高并发、低内存占用、和高可用性著称,大部分的大厂以及公司都在使…

Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)

参考文章 penHarmony南向开发笔记(一)开发环境搭建 OpenHarmony(鸿蒙南向开发)——标准系统移植指南(一) OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二&…

ubuntu 使用s3fs配置自动挂载对象存储

一、环境准备 1.有访问对象存储权限的AKSK 2.服务器、对象存储 二、实施步骤 sudo apt update sudo apt install s3fs echo "AK:SK" >/home/ubuntu/.passwd-s3fs ---位置自定义 chmod 600 /home/ubuntu/.passwd-s3fs ---权限必须要有 mkdir /data sudo s3fs …

聚铭网络受邀参加2024年南京市信息技术应用创新产业供需对接会

近日,备受瞩目的2024年南京市信息技术应用创新产业供需对接会(‘宁工品推’信创、商用密码专场)”在中国(南京)软件谷云密城圆满举办。聚铭网络作为信创领域的杰出代表厂商,受邀出席本次大会,为…

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题,首先需要理解这两者旋转的本质区别及其资源开销。 AWTK的屏幕旋转: AWTK旋转的实现方式: AWTK 是一个用户界面工具包,它通过图形渲染系统处理所有控件和窗口的旋转。当你使用 w…

RS485方向自动控制电路分享

我们都知道RS485是半双工通信,所以在传输的时候需要有使能信号,标明是发送还是接收信号,很多时候就简单的用一个IO口控制就好了,但是有一些低成本紧凑型的MCU上,一个IO口也是很珍贵的,因此,如果…

UE5材质节点Frac/Fmod

Frac取小数 Fmod取余数 转场效果 TimeMultiplyFrac很常用 Timesin / Timecos 制作闪烁效果

图神经网络_GNN从入门到入门

文章目录 0 提出背景1 网络结构2 GNN算法2.1 算法描述2.2 举个栗子 3 GNN本质4 应用领域5 代码案例5.1 PyG的下载5.2 常用数据集介绍5.3 one demo 0 提出背景 经典的深度神经网络适用于 欧几里得数据(Euclidean data),比如我们常常用卷积神经…

CDGA数据治理工程师-学习笔记

目录 第一章 数据管理 组织管理数据的目标: 数据管理的原则: 数据生命周期: 数据管理战略的组成应包括: 第二章 数据伦理 目标 数据伦理活动 数据处理伦理问题 贝尔蒙特 数据伦理准则 违背伦理进行数据处理的风险 建立…

AWS K8s 部署架构

Amazon Web Services(AWS)提供了一种简化的Kubernetes(K8s)部署架构,使得在云环境中管理和扩展容器化应用变得更加容易。这个架构的核心是AWS EKS(Elastic Kubernetes Service),它是…