我正在尝试为scikit learn准备一个数据集,计划构建pandas数据框架,将其提供给决策树分类器。
这些数据代表具有不同标准的不同公司,但某些标准可以具有多个值-例如“客户细分”-对于任何给定的公司,这些值可以是任何或全部:中小企业、中型市场、企业等。还有其他类似的标准/列具有多个可能的值。我需要根据单个价值做出决策,而不是综合决策-因此A公司适用于中小企业,A公司适用于中端市场,而不是针对中小企业和中端市场的客户A的“分组”。
有没有关于如何处理这个问题的指导?我是否需要为给定公司的每个变量生成行,以便输入到学习例程中?使得输入:
Company,Segment
A,SMB:MM:ENT变成:
A, SMB
A, MM
A, ENT以及可能来自其他条件/列的任何其他变体-例如,也可以包含多个值的“客户垂直”?这似乎会大大增加数据集的大小。有没有更好的方法来组织这个数据和/或处理这个场景?
我的最终目标是让用户通过简单的问题完成一个简短的调查,并将他们的回答映射到价值,以获得对给定细分市场、垂直市场、产品类别等的“正确”公司的预测。但我正在努力构建正确的学习数据集来实现这一目标。
发布于 2016-04-20 06:03:50
让我们试一试。
df = pd.DataFrame({'company':['A','B'], 'segment':['SMB:MM:ENT', 'SMB:MM']})
expended_segment = df.segment.str.split(':', expand=True)
expended_segment.columns = ['segment'+str(i) for i in range(len(expended_segment.columns))]
wide_df = pd.concat([df.company, expended_segment], axis=1)
result = pd.melt(wide_df, id_vars=['company'], value_vars=list(set(wide_df.columns)-set(['company'])))
result.dropna()https://stackoverflow.com/questions/36729803
复制相似问题