[899]数值特征-对数据进行log变化

2023-11-16

对于一些标签和特征来说,分布不一定符合正态分布,而在实际的运算过程中则需要数据能够符合正态分布

因此我们需要对特征进行log变化,使得数据在一定程度上可以符合正态分布

进行log变化,就是对数据使用np.log(data+1) 加上1的目的是为了防止数据等于0,而不能进行log变化

代码:

第一步:导入数据

第二步:对收入特征做直方图,同时标出中位数所在的位置,即均值

第三步:对收入特征做log变化,使用np.log(data+1)

第四步:对log收入特征做直方图,标出中位数线的位置,即均值

结论:我们可以发现变化后的特征在一定程度上更加接近正态分布

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 第一步导入数据
ffc_survey_df = pd.read_csv('datasets/fcc_2016_coder_survey_subset.csv', encoding='utf-8')

# 第二步对数据的收入做直方图
fig, ax = plt.subplots()
ffc_survey_df['Income'].hist(color='#A9C5D3', bins=30)
plt.axvline(ffc_survey_df['Income'].quantile(), color='r', label='Binary line')
plt.legend(fontsize=18, loc='best')
ax.set_xlabel('Income', fontsize=12)
ax.set_ylabel('Frequency', fontsize=12)
ax.set_title('Income_hist', fontsize=12)
plt.show()

image.png

# 第三步:对收入的数据进行log变化
ffc_survey_df['log_income'] = np.log(ffc_survey_df['Income'].values+1)
print(ffc_survey_df[['Income', 'log_income']].head())

image.png

log前后的数据

# 第四步:对log变化后的数据画出直方图
fig, ax = plt.subplots()
ffc_survey_df['log_income'].hist(color='#A9C5D3', bins=30)
plt.axvline(ffc_survey_df['log_income'].quantile(), color='r', label='Binary line')
plt.legend(fontsize=18, loc='best')
ax.set_xlabel('log_Income', fontsize=12)
ax.set_ylabel('Frequency', fontsize=12)
ax.set_title('Income_hist', fontsize=12)
plt.show()

image.png

来源:https://www.cnblogs.com/my-love-is-python/p/10322080.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[899]数值特征-对数据进行log变化 的相关文章

随机推荐

  • Vscode代码量统计

    Vscode代码量统计 安装vscode扩展插件 开始统计 结果 安装vscode扩展插件 插件商城中搜索 VS Code Counter 开始统计 安装完毕后 重新加载vscode 快捷键ctrl shift p输入指令 结果
  • angular中@ViewChild、@ViewChildren的使用

    ViewChild和 ViewChildren会在父组件钩子方法ngAfterViewInit调用之前赋值 获取DOM节点 1 在html中给DOM节点设置一个模板应用变量myBox div 我是一个div div 2 在js中引入View
  • nvm安装完node后确无法使用node和npm

    问题 nvm安装了两个node版本后 使用use切换到指定版本 确还是不能使用node和npm 解决办法 找到nvm得安装位置 打开setting配置文件发现node的位置是错误的 两个版本的node都是安装在nvm文件夹下的 所以修改配置
  • TensorFlow基础(六)--TensorFlow中常用的优化器的对比与选择(Optimizer)

    目录 1 优化器的作用 2 常用的优化器 Optimizer 3 各种优化器的对比 3 1三种梯度下降法的对比 3 2 SGD 梯度下降 3 3 Momentum 3 4 NAG Nesterov accelerated gradient
  • Windows10系统服务优化及分析(批处理)

    对于Win10来说 除了UI的变动外 微软还根据用户体验做了一些功能的增强和更改 在我看来 Win10本身启动的服务都是为了系统运作更加完美而增加的 但是对于很多人来说 Win10的很多功能很少用 甚至用不到 对于这样的功能如果不关闭的话
  • Java中IO流,输入输出流概述与总结

    总结的很粗糙 以后时间富裕了好好修改一下 1 Java语言定义了许多类专门负责各种方式的输入或者输出 这些类都被放在java io包中 其中 所有输入流类都是抽象类InputStream 字节输入流 或者抽象类Reader 字符输入流 的子
  • 09FMPEG的AVFrame结构体分析

    09FMPEG的AVFrame结构体分析 概述 该结构体位于libavutil库中的frame h中 1 AVFrame结构体 typedef struct AVFrame define AV NUM DATA POINTERS 8 指向图
  • Anaconda环境下的opencv实现人脸检测

    文章内容 本文主要介绍python3 9 Anaconda pytorch Jupyter Opencv安装教程 以及opencv的图片加载以及人脸检测 目录 一 anaconda的安装 二 pytorch的安装 三 Jupyter的配置
  • 订单系统设计 —— 数据同步与监控

    文章目录 一 方案背景 1 1考虑因素 1 2 数据特点 二 增量同步方案 2 1 并发消费 2 2 顺序消费 2 3 1 N关联数据 三 存量同步方案 3 1 并发同步 3 2 基于视图同步 四 监控与补偿机制 4 1 延迟监控 4 2
  • js逆向-ast混淆还原入门案例(1)

    recast资料太少 在大佬的建议下转到babel了 搬运各个地方的案例学习后 分享给大家 也给自己一个记录 案例需2个文件 运行文件1 run js 源码文件1 read js 1 read js var 0x2075 wrw3EMKc
  • 解决Python报错:URLError: <urlopen error [Errno 11004] getaddrinfo failed>

    原因 获取地址信息失败 通常是由于自动选择的DNS服务器不行 解决方法 更换DNS服务器 控制面板 win R control gt 网络和Internet 2 打开网络共享中心 3 打开当前连接的网络 以wifi为例 4 打开属性
  • 网页空间和服务器,服务器内存和网页空间

    服务器内存和网页空间 内容精选 换一换 使用主机迁移服务前 请参考以下步骤准备好账号 权限及源端 目的端服务器环境 已在华为云注册账号 并完成实名认证 已获取账号迁移权限 如果使用账号登录 默认拥有迁移权限 可无需配置迁移权限 如果使用IA
  • R notes (1): lm()

    R notes lm Reference Fitting Linear Models Usage Arguments Details Reference https www rdocumentation org packages stats
  • 2023最新版本Activiti7系列-身份服务

    身份服务 在流程定义中在任务结点的 assignee 固定设置任务负责人 在流程定义时将参与者固定设置在 bpmn 文件中 如果临时任务负责人变更则需要修改流程定义 系统可扩展性差 针对这种情况可以给任务设置多个候选人或者候选人组 可以从候
  • 第三代oid铺码软件_你好点读笔!自制小达人点读目录册之书名贴铺码

    之前跟大家分享了一下关于如何铺码的内容 你好点读笔 自制小达人点读目录册之如何铺码 主要是以铺 内容贴 码为例进行的 今天 我要和大家分享的是和 内容贴 密不可分的 书名贴 铺码的原理和之前内容码铺码原理和步骤基本一致 那么接下来 请随我一
  • 【DDIM加速采样方法】公式推导加代码分析。Denoising Diffusion Implicit Models

    DDIM加速采样方法 公式推导加代码分析 Denoising Diffusion Implicit Models 1 前言 ddim总览 2 均值 mu 3 方差 sigma
  • 华为od机试 java 地址分割

    题目 你的任务是编写一个程序 该程序将接收一个由逗号分隔的字符串 其中包含一个URL的前缀和后缀 然后将它们合并成一个完整的URL 合并规则如下 如果前缀的最后一个字符是斜杠 则删除它 如果后缀的第一个字符是斜杠 则删除它 在处理过的前缀和
  • 待续----serialVersionUID的解释

    serialVersionUID作用 序列化时为了保持版本的兼容性 即在版本升级时反序列化仍保持对象的唯一性 有两种生成方式 一个是默认的1L 比如 private static final long serialVersionUID 1L
  • configtx.yaml中文详解(Hyperledger Fabric 区块链网络运维工具configtxgen的配置文件)

    configtx yaml是Hyperledger Fabric区块链网络运维工具configtxgen用于生成通道创世块或通道交易的配置文件 configtx yaml的内容直接决定了所生成的创世区块的内容 本文将给出configtx y
  • [899]数值特征-对数据进行log变化

    对于一些标签和特征来说 分布不一定符合正态分布 而在实际的运算过程中则需要数据能够符合正态分布 因此我们需要对特征进行log变化 使得数据在一定程度上可以符合正态分布 进行log变化 就是对数据使用np log data 1 加上1的目的是