
本文旨在详细阐述在机器学习模型中,如何将经过对数变换(logarithmic transformation)处理后的预测结果准确地还原回原始数值尺度。我们将探讨对数变换的目的、模型训练与预测过程,并重点讲解使用指数函数(`np.exp()`)进行反向变换的方法,同时强调在评估模型性能时,确保预测值和真实值处于相同尺度下的重要性。
在机器学习实践中,数据预处理是至关重要的一步。当目标变量(或某些特征)呈现高度偏斜分布(如长尾分布)时,直接用于模型训练可能会导致模型性能下降,例如线性模型可能难以捕捉非线性关系,或违反某些统计假设。对数变换是一种常用的技术,它通过将数据映射到对数空间来:
以下代码片段展示了如何对数据集中的特定列进行对数变换,同时处理非正值的情况:
import numpy as np
import pandas as pd
from sklearn.metrics import mean_absolute_error
# 假设 dtk 是原始DataFrame,dtd 是将要进行变换的DataFrame
# 为演示目的,我们创建一个模拟的 dtk 和 dtd
dtk_data = {
'value_eur': [1000, 20000, 500000, 15000, 300000, 0, 500],
'wage_eur': [500, 10000, 250000, 7500, 150000, 0, 250],
'other_feature': [10, 20, 30, 15, 25, 5, 12]
}
dtk = pd.DataFrame(dtk_data)
dtd = dtk.copy() # dtd 将用于存储变换后的数据
# 对 'value_eur' 和 'wage_eur' 进行对数变换
# 注意:np.log() 只能处理正数,因此需要先过滤掉非正值
mask_value = dtd['value_eur'] > 0
dtd.loc[mask_value, 'value_eur'] = np.log(dtk.loc[mask_value, 'value_eur'])
mask_wage = dtd['wage_eur'] > 0
dtd.loc[mask_wage, 'wage_eur'] = np.log(dtk.loc[mask_wage, 'wage_eur'])
print("变换后的数据 (部分):")
print(dtd.head())在数据经过对数变换后,我们使用这些变换后的数据来训练机器学习模型。例如,如果 value_eur 是我们的目标变量 y,并且我们对其进行了对数变换,那么模型将学习预测 log(value_eur)。
以下是模型训练和预测的示例流程:
SuperDesign
开源的UI设计AI智能体
216
查看详情
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor # 假设使用随机森林回归器
from sklearn.model_selection import GridSearchCV
# 准备 X 和 y
X = dtd.drop(['value_eur'], axis=1)
y = dtd['value_eur']
# 过滤掉因为对数变换而可能产生的 NaN/inf 值(如果原始数据包含0或负数)
# 在实际应用中,需要更完善的 NaN 处理策略
valid_indices = y.notna() & X.notna().all(axis=1)
X = X.loc[valid_indices]
y = y.loc[valid_indices]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 假设 gs.best_estimator_ 已经通过 GridSearchCV 获得
# 这里我们直接实例化一个回归器作为示例
regressor = RandomForestRegressor(random_state=42)
# 训练模型
regressor.fit(X_train, y_train)
# 在测试集上进行预测
regs = regressor.predict(X_test)
# 此时 regs 中的值是 log-transformed 的预测值
print("\nLog-transformed 预测值 (部分):")
print(regs[:5])
print("\nLog-transformed 真实值 (部分):")
print(y_test.head())模型预测出的 regs 是目标变量的对数变换值。为了获得原始尺度的预测值,我们需要执行反向变换。对数变换的逆运算是指数函数,即 exp(log(x)) = x。在 NumPy 中,这可以通过 np.exp() 函数实现。
重要提示: 当计算评估指标(如 MAE, RMSE)时,如果希望在原始数据尺度上进行评估,则预测值和真实值都必须还原到原始尺度。仅仅还原预测值而真实值仍是对数变换后的,会导致评估结果的偏差和误解。
# 将预测值从对数尺度还原到原始尺度
y_pred_original_scale = np.exp(regs)
# 将测试集真实值从对数尺度还原到原始尺度,以便进行公平的评估和比较
y_test_original_scale = np.exp(y_test)
# 计算在原始尺度上的平均绝对误差 (MAE)
mae_original_scale = mean_absolute_error(y_test_original_scale, y_pred_original_scale)
print(f"\n原始尺度上的平均绝对误差 (MAE): {mae_original_scale:.2f}")
# 结果展示
results_original_scale = pd.DataFrame({
'预测值 (原始尺度)': y_pred_original_scale,
'真实值 (原始尺度)': y_test_original_scale
})
print("\n预测结果与真实值 (原始尺度,部分):")
print(results_original_scale.head())通过上述步骤,我们可以确保在机器学习模型中使用对数变换时,不仅能利用其优点改善模型性能,还能准确地将预测结果还原到原始业务含义的尺度,从而进行正确的解释和评估。
以上就是机器学习中对数变换预测结果的反向还原的详细内容,更多请关注其它相关文章!
# 正态分布
# 金华网站推广便宜
# 哈尔滨关键词排名怎么样
# 元氏市场网站推广好处
# 南宁移动端seo
# 宁远租房网站建设文案
# 杜镇专业网站建设
# seo教学免费课程seo博客
# 建瓯营销推广招聘网
# 天马行空近义词网站建设
# 唐山网站建设品牌大全
# ai
# 过滤掉
# 职业发展
# 如何应对
# 进行了
# 只对
# 在对
# 指数函数
# 官网
# 验证码
# red
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
J*aScript模拟悬停与点击:自动化网页动态元素交互指南
原子笔记app误删找回教程
B站怎么快速升级 B站用户等级提升攻略【详解】
《淘票票》添加到苹果钱包教程
firefox火狐浏览器最新官网主页_ firefox火狐浏览器平台入口直达官方链接
优化Google Charts Gauge:在数据库无数据时显示默认值
C++二维数组动态分配方法_C++指针与数组内存布局
《书耽》更换手机号方法
C++ bind函数使用教程_C++参数绑定与函数适配器的应用
作业帮网页版不用下载入口 在线问老师快速答疑
邦丰播放器频道搜索设置
J*aScript实现网页表单实时输入字段比较与验证教程
XPath动态元素定位:如何精准选择文本内容变化的元素
GBA模拟器手柄按键设置
mysql中如何分析索引使用情况_mysql索引使用分析方法
如何定制PrimeNG Sidebar的背景颜色
百度网盘如何设置上传限额
win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】
《随手记》启用语音备注方法
汽车之家网页版免费登录_汽车之家官网首页直接进入
AffinityDesigner图层蒙版怎么用_AffinityDesigner图层蒙版设计应用
韩剧圈正版官网入口_韩剧圈官方指定登录
抖音团长模式怎么做?团长模式是什么意思?
MongoDB聚合管道:高效统计列表中各项的文档数量
NumPy 高性能技巧:基于多列条件查找最近邻行索引的向量化实现
解决J*aScript动态图片上传中ID重复问题:在同一页面显示多张独立图片
《鹿路通》退余额方法
PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素
iCloud官方网站 iCloud网页版在线登录入口
Win10如何彻底关闭OneDrive Win10禁用云同步功能【纯净】
《美篇》取消会员自动续费方法
b站如何管理订阅_b站订阅标签分类管理
飞飞漫画漫画阅读官网_飞飞漫画漫画阅读官网进入阅读
Cassandra中复合主键、二级索引与ORDER BY排序的限制与解决方案
快递物流路径揭秘
研招网官方网站招生平台入口_中国研究生招生信息网官网登录
智慧团建活动报名入口 智慧团建活动报名入口手机端官网
TikTok搜索结果不显示怎么办 TikTok搜索刷新与优化方法
《下一站江湖2》武器获取方法
Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】
汽水音乐网页版登录 汽水音乐网页端官方入口
《伊瑟》凶影追缉库卢鲁boss攻略
如何外贸网站设计-能留住客户提升用户体验!
多闪电脑版下载_多闪PC端模拟器使用
《绝区零》2.3前瞻|直播|内容介绍
铁路12306入口 铁路12306官网版入口登录网址
《搜书吧》阅读书籍方法
mysql镜像配置如何设置用户权限组_mysql镜像配置用户组与权限分级管理方法
向往的生活小游戏启动处_向往的生活小游戏立即启动
2025-12-01
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。