【问题标题】:How to use a list of values as label in Python's Machine Learning如何在 Python 的机器学习中使用值列表作为标签
【发布时间】:2020-09-01 11:36:20
【问题描述】:

我遇到了一个问题,我不知道如何在 ML 模型中使用列表作为标签。基本上我有一个数据框如下:

我的功能集是一个数字列表,我的标签也是一个数字列表。我如何将一个与另一个相关联?我已经使用过二进制标签,但我无法使用非二进制标签进行管理。

ps:我知道我的数据缺乏预处理,出于处理速度的原因,我只加载了整个数据的一小部分

编辑 - 抱歉不够清楚:每个数字都是一个词。我的功能集是文本,我的标签是标题。我正在尝试构建一个模型,给定文本,它会根据训练后的模型生成标题

【问题讨论】:

  • 你能举一个“将一个与另一个联系起来”的例子吗?
  • 每个数字都是一个单词。我的功能集是文本,我的标签是标题。我正在尝试建立一个模型,给定一个文本,它会根据训练的模型生成一个标题

标签: python machine-learning multilabel-classification


【解决方案1】:

您可能想试试 sklearn 的MultiLabelBinarizer()。看看this post

【讨论】:

  • 我已经看过这个方法,不适合我的问题。我没有多个标签,我有一个标签可以有多个值,即非二进制。还是谢谢^^
  • 最近我有一个类似的项目->每个标签都包含多个值(并且每个标签的值不是二进制的)。而MultiLabelBinarizer() 会将标签的non-binary 值转换为binary representation。我建议你热切地阅读这篇文章:)
  • 不要犹豫,询问您是否需要任何进一步的帮助,如果有帮助,请为答案投票
  • 根据这篇文章,有趣的是,我的疑问恰好是算法的最关键点。谢谢大佬,真的很有帮助
【解决方案2】:

【讨论】:

    【解决方案3】:

    我想你可以试试 Pandas "get_dummies" 中内置的 OneHotEncoding。

    据我了解,您的数据看起来像(在此处给出“y”的示例):

    df
     
       a  b  y
    0  1  2  1
    1  4  5  2
    2  7  1  3
    3  4  7  1
    4  6  0  3
    5  7  9  2
    6  8  1  1
    

    y 列中的每个数字代表每个类别。

    所以你可以做的是:

    new_y = pd.get_dummies(df['y'], drop_first=True)

    It would be very helpful if you post some sample data here and what exactly you are willing to achieve.

    PS:除此之外,您还必须使用 Categorical_CrossEntropy 作为损失计算。

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 2020-11-11
      • 2020-03-03
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 2015-12-02
      • 2017-03-03
      相关资源
      最近更新 更多