如何处理 pandas 中的插补和热一编码?

2023-12-14

我正在尝试对我的数据集应用插补和热一种编码。我知道在应用插补时,数据的维度可能会发生变化,因此我手动处理了它。该模型运行良好,但后来我决定应用热一种编码。现在,该程序无法编译。我收到尺寸不匹配错误。

test_X = pd.get_dummies(test)
train_X = pd.get_dummies(train)

col_with_missingVal = (col for col in train_X.columns if train_X[col].isnull().any())
for col in col_with_missingVal:
    train_X[col + 'is_missing'] = train_X[col].isnull()
    test_X[col + 'is_missing'] = test_X[col].isnull()

#impute the data
imputer = Imputer()
imp_train_X = pd.DataFrame(imputer.fit_transform(train_X))
imp_test_X = pd.DataFrame(imputer.fit_transform(test_X))
imp_train_X.columns = train_X.columns
imp_test_X.columns = test_X.columns

#Fit the model
my_model = RandomForestRegressor()
my_model.fit(imp_train_X, train_y)

# Use the model to make predictions
predicted_prices = my_model.predict(imp_test_X) 

我在最后一行代码中收到以下错误:

ValueError: Number of features of the model must match the input. Model n_features is 293 and input n_features is 274

出现此错误的原因是什么?如何解决?


问题出在前两行。pd.get_dummies()如果训练和测试中的数据不同,将返回不同的列。

例如,如果在训练中,一列有 3 个类别,则将为它们创建 3 列,但可能会发生测试数据仅包含该特定列中的 2 个类别,因为在该列之后您将得到 2 列pd.get_dummies()。这将导致不同数量的列。

您可以在这里执行以下操作:

1) Easiest Use pd.get_dummies()在训练测试之前对整个数据进行分割,然后分割数据。但不推荐这样做,因为它会将测试数据的信息泄露给模型。

2)如果可以使用scikit的开发版本,则使用分类编码器执行单热编码。

3)在当前scikit版本中使用LabelEncoder + OneHotEncoder的组合来实现相同的效果。看我的另一个答案例如。

Note

也只能打电话transform()就测试数据而言,从来没有fit()。做这个:-

# If you call fit_transform(), the imputer will again learn the 
# new mean from the test data
# Which will lead to differences and data leakage.
imp_test_X = pd.DataFrame(imputer.transform(test_X))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 pandas 中的插补和热一编码? 的相关文章

  • 如何使用 Pycharm 运行 fast-api 服务器?

    我有一个简单的 API 函数 如下所示 from fastapi import FastAPI app FastAPI app get async def read root return Hello World 我正在使用启动服务器uvi
  • 将 numpy 数组及其大小写入二进制文件

    我需要将 2D numpy 数组写入文件 包括其尺寸 以便我可以从 C 程序中读取它并创建相应的数组 我编写了一些简单的代码来保存数组 并且可以从 C 读取它 但是如果我尝试先写入数组的大小 它总是会给我一个错误 这是我的简单 python
  • 如何检查给定的数字是否是2的幂?

    下面的代码不适用于某些输入 a i set 1 while i lt 10000 a add i i lt lt 1 N int input if N in a print True else print False 我最初的想法是检查每个
  • python win32com.client 调整窗口大小

    我正在使用 Python 3 4 1 通过 win32com client 控制 Windows 应用程序 我可以激活它 我可以发送击键 点击等 现在我想知道是否有办法调整窗口大小并将其设置到特定位置 我找不到方法 这里有一些代码片段 所以
  • 如何用pygame画一条虚线?

    我需要在坐标系上绘制正弦波和余弦波 就像在this https i stack imgur com DGI8g png图片 除了没能代表以外 我所有的工作都做得很好虚线和曲线与 pygame 一致 我有与我需要的类似的东西 但我怎样才能让它
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • 熊猫系列到二维数组

    所以 我使用了来自的答案将二维数组放入 Pandas 系列中 https stackoverflow com questions 38840319 put a 2d array into a pandas series将 2D numpy
  • Plotly:如何设置文本格式(下划线、粗体、斜体)

    使用注释时 我尝试在绘图中为文本添加下划线 我使用添加注释 import plotly graph objects as go g go FigureWidget make subplots rows 1 cols 1 g update l
  • 使用 Popen 打开进程并获取 PID

    我正在开发一个漂亮的小功能 def startProcess name path Starts a process in the background and writes a PID file returns integer pid Ch
  • 哈希 freezeset 与排序元组

    在 Python 中 给定一组可比较的 可散列的元素s 散列是否更好frozenset s or tuple sorted s 这取决于你在做什么 创建一个更快frozenset 比排序tuple but frozenset占用的内存比tu
  • 在基本 Tensorflow 2.0 中运行简单回归

    我正在学习 Tensorflow 2 0 我认为在 Tensorflow 中实现最基本的简单线性回归是一个好主意 不幸的是 我遇到了几个问题 我想知道这里是否有人可以提供帮助 考虑以下设置 import tensorflow as tf 2
  • 我应该在哪里对对象和字段进行 django 验证?

    我正在创建一个 Django 应用程序 它使用 Django Rest Framework 和普通的 django views 作为用户的入口点 我想对模型的独立字段以及整个对象进行验证 例如 字段 根据正则表达式函数输入的车牌是否正确 与
  • model.predict() 返回类而不是概率

    Hello 我是第一次使用 Keras 我训练并保存了一个模型 作为 json 文件及其权重 该模型旨在将图像分为 3 个类别 我的编译方法 model compile loss categorical crossentropy optim
  • python 中“重载”函数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在尝试在 python 中做这样的事情 def foo x y do something at position x y def foo pos foo pos x pos y 所以我想根据我提供的参数数量调
  • 将整数转换为特定格式的十六进制字符串

    我是 python 新手 有以下问题 我需要将整数转换为 6 个字节的十六进制字符串 例如 281473900746245 gt xFF xFF xBF xDE x16 x05 十六进制字符串的格式很重要 int 值的长度是可变的 格式 0
  • 如何通过 API Gateway 使用事件调用类型调用 Lambda 函数?

    文件说 默认情况下 Invoke API 采用 RequestResponse 调用类型 您可以选择通过将 Event 指定为 InitationType 来请求异步执行 因此 我可以发送到我的函数 python 的就是到处都是 Inspi
  • 为什么我的 Python 散点图不起作用?

    我使用 pylab 创建了一个非常简单的散点图 pylab scatter engineSize fuelMile pylab show 该程序的其余部分不值得发布 因为正是该行给我带来了问题 当我将 散点 更改为 绘图 时 它会绘制数据图
  • 如何将另一整列作为参数传递给 pandas fillna()

    我想用另一列中的值填充一列中的缺失值 使用fillna方法 我读到循环遍历每一行将是非常糟糕的做法 最好一次完成所有事情 但我不知道如何使用fillna 之前的数据 Day Cat1 Cat2 1 cat mouse 2 dog eleph
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • nltk 标记化和缩写

    我用 nltk 对文本进行标记 只是将句子输入到 wordpunct tokenizer 中 这会拆分缩写 例如 don t 到 don t 但我想将它们保留为一个单词 我正在改进我的方法 以实现更精确的文本标记化 因此我需要更深入地研究

随机推荐

  • 颤动箭头标签栏?

    How I can make the cursor of tab bar with an arrow like this 您可以使用自定义画家和选项卡指示器来实现您的愿望指示器 import package flutter material
  • 使用 TypeScript 的条件类型

    假设我有这个 type TypeMapping Boolean boolean String string Number number ArrayOfString Array
  • 如何在 Rust 结构中保存迭代器

    我正在尝试这样做 struct RwindIter iter Box
  • 需要帮助,出现错误“TypeError: __init__() 需要 5 个位置参数,但给出了 6 个”

    我刚刚开始上课并理解基本概念 但是我不明白为什么它会给我这个错误 My code import pygame pygame init screen pygame display set mode 400 300 done False whi
  • 使用 AND 运算符进行 Mongoose 文本搜索

    所以我想做的是用 mongoose 到 mongoDb 进行 AND 搜索 但结果来自 OR 搜索 有这方面的设置吗 查询如下所示 exampleModel find text search searchParams score meta
  • React js Web应用程序中的溢出问题

    这是我正在使用的样式表 在移动设备和平板电脑视图中使用此功能时会出现溢出问题 但在桌面视图中则没有任何问题 任何人都可以为此提出解决方案吗 我正在开发一个reactjs web应用程序并托管在firebase中 如果我添加较少数量的技术语言
  • 如何让两个tooltip id独立关闭,并记住cookie?

    我正在尝试使用 jQuery HTML 和 CSS 制作工具提示 每个工具提示的 ID 都不同 而且效果很好 因此我可以根据需要制作任意数量的工具提示并独立设置它们的样式 我不明白的是如何在不影响其他工具提示的情况下关闭工具提示 我使用 R
  • 无限水平滚动UIScrollView

    我有一个 UIScrollView 其内容大小为 1200x480 我上面有一些图像视图 其宽度加起来为 600 当向右滚动时 我只需增加内容大小并设置偏移量 以使一切变得平滑 然后我想添加其他图像 但这并不重要现在 所以基本上 当前在视口
  • 如何在没有 Ajax Toolkit 的情况下显示加载图像直到 gridview 完全加载?

    QUESTION 谁能建议如何在 gridview 完全加载之前显示加载图像 该网格视图将在页面加载时呈现 必须有一个简单的解决方案来检测 gridview 何时加载 加载 以便可以实现加载图像和 gridview 可见性之间的简单切换 请
  • Internet Explorer 8 支持 HTML 5 吗?

    IE8 是否支持 HTML5 它在 IE8 路线图上吗 IE8 beta 2 支持 HTML5 的两个 API 跨文档消息传递 and 非 SQL 存储 IE8 beta 2没有实现HTML5解析算法或新元素 没有
  • Spark:回归模型阈值和精度

    我有逻辑回归模式 我明确地将阈值设置为 0 5 model setThreshold 0 5 我训练模型 然后我想要获得基本统计数据 精确度 召回率等 这就是我评估模型时所做的 val metrics new BinaryClassific
  • Yii 迁移,未创建表

    我是 Yii 新手 仍在学习 我正在遵循书籍教程 在这里我按照书中所写创建了一个新的迁移 yiic migrate create create issue user and assignment tables 在 safeup 中我写了这个
  • LINQ 查询查找列表中的项目是否包含在另一个列表中

    我有以下代码 List
  • Java的时差[重复]

    这个问题在这里已经有答案了 为什么下面的Java代码的输出是04 18 23而不是03 18 23 public static void main String args SimpleDateFormat sdf new SimpleDat
  • 使用 getOpenFileNames 填充 QListWidget

    在下面的示例中 我想用打开 Qdialog 的文件填充我的 QListWidget 我不明白如何添加列表中选择的文件 我应该上新课吗 如何连接 setupList 和 addFiles 这两个方法 import sys from PyQt4
  • 如何将复选框添加到 uialertview 中?

    我是 iPhone 开发新手 我想在警报视图中添加一个复选框 过去两天我正在对此警报视图进行测试 但没有得到任何有效的演示项目 我正是想要这个警报框 谁能帮我 尝试使用此代码添加复选框alertview Swift let nameFiel
  • Pandas 版本之间的 MultiIndex/Reshaping 差异

    我有一个使用以下代码的 DataFrame import pandas as pd import numpy as np index pd DatetimeIndex 2017 05 04 2017 05 05 2017 05 08 201
  • Java 套接字数组

    我正在创建服务器和客户端 java 应用程序 我想创建一个数组来存储我的套接字 我正在使用 eclipse 当我输入这一行时 Socket sockets new Socket 3 Eclipse 给我一个错误 说 资源类型 Socket
  • 从主干集合中设置 Fuelux 数据网格源

    我正在尝试从我的主干集合中设置 Fuelux 数据网格源 示例来源在这里https github com ExactTarget fuelux tree master sample 我累了就像 function root factory i
  • 如何处理 pandas 中的插补和热一编码?

    我正在尝试对我的数据集应用插补和热一种编码 我知道在应用插补时 数据的维度可能会发生变化 因此我手动处理了它 该模型运行良好 但后来我决定应用热一种编码 现在 该程序无法编译 我收到尺寸不匹配错误 test X pd get dummies