Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以在一列为列表的数据帧上使用h2o决策树?_Python_Machine Learning_Data Science_Decision Tree_H2o - Fatal编程技术网

Python 是否可以在一列为列表的数据帧上使用h2o决策树?

Python 是否可以在一列为列表的数据帧上使用h2o决策树?,python,machine-learning,data-science,decision-tree,h2o,Python,Machine Learning,Data Science,Decision Tree,H2o,我目前有一个df,既有数值也有分类值。问题是其中一列有分类值列表: 颜色:[[红,蓝,绿],[红,黑]…] 我试着用: #将df转换为h2o帧 data=h2o.H2OFrame(万神殿数据) 但出现以下错误: ValueError:`python_obj`不是一个平面列表列表 有没有一种方法可以保持列“Colors”,并简单地以某种方式将列表展平,以便用coma分隔值?如果可能的话,算法会起作用吗?如果不可能,我还能做什么 def listToString(lis): return "

我目前有一个
df
,既有数值也有分类值。问题是其中一列有分类值列表:
颜色:[[红,蓝,绿],[红,黑]…]

我试着用:
#将df转换为h2o帧

data=h2o.H2OFrame(万神殿数据)

但出现以下错误:
ValueError:`python_obj`不是一个平面列表列表

有没有一种方法可以保持列“Colors”,并简单地以某种方式将列表展平,以便用coma分隔值?如果可能的话,算法会起作用吗?如果不可能,我还能做什么

def listToString(lis):
    return ",".join(lis)

df["Colors"] = df['Colors'].apply(listToString)

这将
[红、蓝、绿]
转换为
红、蓝、绿
即一个字符串。

问题是,算法然后选择“红、蓝、绿”作为一个字符串,而不是3种不同的颜色。也就是说,如果一个单元格是“红、蓝、绿”,而另一个单元格是“蓝、绿、红”,它们将被视为不同的单元格。是的,它们将不相同。如果您希望模型对它们进行相同的处理,那么您也可以对这些字符串进行排序,使相同的颜色模式始终看起来相同,或者使用编码来解决此问题。我只需要一个能够区分不同列表项的模型。在list1=[蓝、红、绿],list2=[蓝、黑、绿]的情况下,对列表进行排序没有多大意义,因为这两个列表将被视为两个不同的项目,而不是理解它们共享两种相似的颜色。使用编码将使模型不那么精确,因为维数将随着颜色的增加而呈指数增长。另外,根据我的理解,由于其他原因,使用一种热编码对决策树是有害的。