为 Sklearn 重塑数据

2023-12-03

我有一个颜色列表:

initialColors = [u'black' u'black' u'black' u'white' u'white' u'white' u'powderblue'
 u'whitesmoke' u'black' u'cornflowerblue' u'powderblue' u'powderblue'
 u'goldenrod' u'white' u'lavender' u'white' u'powderblue' u'powderblue'
 u'powderblue' u'powderblue' u'powderblue' u'powderblue' u'powderblue'
 u'powderblue' u'white' u'white' u'powderblue' u'white' u'white']

我有这些颜色的标签,如下所示:

labels_train = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

0意味着颜色由女性选择,1是指男性。我将使用另一组颜色来预测性别。

因此,对于我的初始颜色,我将名称转换为数字特征向量,如下所示:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(initialColors)
features_train = le.transform(initialColors)

之后我的features_train好像:

[0 0 0 5 5 5 4 6 0 1 4 4 2 5 3 5 4 4 4 4 4 4 4 4 5 5 4 5 5] 

最后,我这样做:

from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(features_train, labels_train)

但我有一个错误:

/Library/Python/2.7/site-packages/sklearn/utils/validation.py:395: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
  DeprecationWarning)
Traceback (most recent call last):
  File "app.py", line 36, in <module>
    clf.fit(features_train, labels_train)
  File "/Library/Python/2.7/site-packages/sklearn/naive_bayes.py", line 182, in fit
    X, y = check_X_y(X, y)
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 531, in check_X_y
    check_consistent_length(X, y)
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 181, in check_consistent_length
    " samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [1, 70]

I did:

features_train = features_train.reshape(-1, 1)
labels_train = labels_train.reshape(-1, 1)
clf.fit(features_train, labels_train)

我有一个错误:

/Library/Python/2.7/site-packages/sklearn/utils/validation.py:526: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
  y = column_or_1d(y, warn=True)

我也尝试过:

features_train = features_train.reshape(1, -1)
labels_train = labels_train.reshape(1, -1)

但不管怎么说:

Traceback (most recent call last):
  File "app.py", line 36, in <module>
    clf.fit(features_train, labels_train)
  File "/Library/Python/2.7/site-packages/sklearn/naive_bayes.py", line 182, in fit
    X, y = check_X_y(X, y)
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 526, in check_X_y
    y = column_or_1d(y, warn=True)
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 562, in column_or_1d
    raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (1, 29)

我的问题是我不明白在我的情况下重塑数据的最佳方法是什么。您能帮我选择一种重塑数据的方法吗?


快速回答:

  • Do features_train = features_train.reshape(-1, 1);
  • 不要做labels_train = labels_train.reshape(-1, 1). Leave labels_train就这样。

一些细节:

您似乎对估算器需要二维数据数组输入的原因感到困惑。你的训练向量X有一个形状 (n_samples, n_features). So features_train.reshape(-1, 1)对于您的情况来说是正确的,因为您只有 1 个功能并且想让numpy来推断有多少个样本。这确实解决了您的第一个错误。

Your 目标值y有一个形状 (n_samples,),它需要一个一维数组。当你这样做时labels_train = labels_train.reshape(-1, 1),将其转换为二维列向量。这就是你收到第二次警告的原因。注意,这是一个警告,意思是fit()弄清楚并进行了正确的转换,即您的程序继续运行并且应该是正确的。

当你这样做时:

features_train = features_train.reshape(1, -1)
labels_train = labels_train.reshape(1, -1)

首先,这是一个错误的转换features_train对于你的情况,因为X.reshape(1, -1)表示您有 1 个样品并希望让numpy来推断有多少个特征。这不是你想要的,但是fit()不知道并且会相应地处理它,给你错误的结果。

话虽这么说,你的最后一个错误并不是来自features_train = features_train.reshape(1, -1)。它来自labels_train = labels_train.reshape(1, -1). Your labels_train现在的形状 (1, 29) 既不是行向量也不是列向量。尽管我们可能知道它应该被解释为目标值的一维数组,fit()还没有那么聪明,不知道该怎么办。

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

为 Sklearn 重塑数据 的相关文章

随机推荐

  • SSRS 列表报告中的分组依据

    我正在制作 SSRS 报告 我必须按客户名称进行分组 数据集将是这样的 从客户中选择Column1 Column2 Column2 按客户名称分组 Expected Report Layout Customer Name Jim Mouse
  • 是否有一个 css 属性不会改变任何内容以及我们可以在哪里存储信息?

    是否有一个 css 属性不会改变任何内容 我在写作时经常需要这个来进行测试scss只是为了看看我是否正确创建了一个 css 选择器 例如 我很高兴有这样的东西foo helloworld1 稍后我就可以改变的值foo并检查开发人员工具中的值
  • Spring Security OAuth2:InsufficientAuthenticationException

    首先 我禁用基本身份验证 security basic enabled false 然后我访问授权页面 http localhost 8080 oauth authorize client id client response type c
  • 如果在 iframe 中则隐藏标题

    我需要隐藏基于 WordPress 的网站的标头 以防该网站加载到 iFrame 中 我应该用 javascript 函数还是 css 来实现 我该怎么做呢 我找到了这个
  • 电话号码的 UITextField

    我想知道如何格式化我用于电话号码的文本字段 即像iPhone上的 添加新联系人 页面 当我输入新手机时 例如1236890987 它将其格式设置为 123 689 0987 我已经将键盘设置为数字键盘 这是我的解决方案 效果很好 实时格式化
  • 在MATLAB中绘制椭圆和椭球体

    如何使用 MATLAB 绘制椭圆和椭球体 x 2 a 2 y 2 b 2 1 n 40 a 0 b 2 pi c 0 d 2 pi for i 1 n u a b a i 1 n 1 for j 1 m v a d c j 1 m 1 x
  • try catch 块中未捕获异常

    我做一个简单的抛出 测试抛出 它没有被我的catch std 异常 e 是因为我正在抓一个std 异常 e 我的意思是 只有从 std exception 派生的异常类才会被捕获吗 如果不是 是我做错了什么还是正常的 顺便说一句 两个 ca
  • 使用JAVA在HANA中插入数组

    我有一个对象数组列表 并尝试将该列表插入到 HANA 中 所以我的插入代码看起来像 PreparedStatement stmt conn prepareStatement INSERT INTO SCHEMA TABLE VALUES A
  • 在 inno Setup 中使用 DOM 添加节点到 xml - 奇怪的问题

    非常奇怪的问题 我使用 DOM 编辑 xml 文件 需要与我们交互的应用程序的 exe config 文件 但是由于我必须批量添加几个类似的部分 所以我创建了一个函数来插入整个需要的块 调用这个函数一次就完美了 之后使用不同的参数再次调用它
  • 使用 GROUP SEPARATOR 的 Explode() 函数

    根据发现通过MySQL GROUP CONCAT 转义这个我有用GROUP CONCAT SELECT topic response response GROUP CONCAT comment SEPARATOR 0x1D AS comme
  • 你能用 javascript (jxa) 编写文件夹操作吗?

    我正在寻找 AppleScript 的直接翻译 on adding folder items to this folder 但我似乎无法在任何地方找到它 无论是术语的用法还是关键字 this folder 本身 使用 Automator 我
  • 在引导输入字段中放置清除按钮

    我试图在输入字段内 搜索图标之前的右侧放置一个清除按钮 但它不起作用 x 显示在输入字段的前面 我使用绝对定位 right 0 和 top 4px 您可以在这里查看我的示例 http www bootply com YUwdJ5Kvx6 一
  • Delphi Windows 服务设计

    Delphi Windows 服务设计 我从未创建过 Windows 服务 但一直在阅读我发现的所有内容 我遇到的所有文章或示例在实现上都非常基础 并且范围有限 还没有看到任何超出此范围或解决特定场景的内容 所以 我已经掌握了我可能会找到的
  • jQuery 的“uploadProgress”未在“$.ajax”中触发

    我是 jQuery 新手 现在正在处理文件上传 我想在每次上传图像时添加一些进度条 我用的是uploadProgress在 jQuery 中 但它似乎不起作用 这是我的代码 form on submit function e var fil
  • Progress 元素内的 html 文本

    您好 有人可以帮我处理这个进度 html 元素吗 我需要能够在进度的右侧放置一个文本值 并根据进度是否减少文本来配合该元素 progress webkit appearance none progress webkit progress b
  • 在 OleDbCommand 中使用“... where Column like ...”不起作用

    我正在使用 C 从 Access 我认为是 2003 或 2007 数据库中选择某些内容 但它没有选择任何内容 我在 Access 本身中尝试了 SQL 语法 它似乎工作正常 我对 C 和 Access 相当陌生 到目前为止我所拥有的 Ol
  • Jquery 从脚本标签获取文本时出现问题?

    我有这个小 HTML 文档
  • 在 Windows 10 中批量运行 VBS 脚本时解压缩文件错误

    运行VBS时解压码在 Win 10 中执行批处理 出现以下错误 鉴于其他人之前曾报告过它可以工作 这可能是什么原因 更改目标目录或显式设置它们不会影响该错误 echo off setlocal enabledelayedexpansion
  • python:直接编辑ISO文件

    是否可以获取 ISO 文件并直接编辑其中的文件 即不解压 更改文件并重新打包 1 可以用Python来做吗 我该怎么做呢 您可以用于列出和提取 我测试了第一个 https github com barneygale iso9660 blob
  • 为 Sklearn 重塑数据

    我有一个颜色列表 initialColors u black u black u black u white u white u white u powderblue u whitesmoke u black u cornflowerblu