【发布时间】:2017-07-14 12:10:14
【问题描述】:
我正在尝试使用 Patsy(带有 sklearn、pandas)来创建一个简单的回归模型。 R 风格的公式创建是一个主要的吸引力。
我的数据包含一个名为“ship_city”的字段,其中可以包含印度的任何城市。由于我将数据划分为训练集和测试集,因此有几个城市只出现在其中一个集中。下面给出一个代码sn-p:
df_train_Y, df_train_X = dmatrices(formula, data=df_train, return_type='dataframe')
df_train_Y_design_info, df_train_X_design_info = df_train_Y.design_info, df_train_X.design_info
df_test_Y, df_test_X = build_design_matrices([df_train_Y_design_info.builder, df_train_X_design_info.builder], df_test, return_type='dataframe')
最后一行抛出如下错误:
patsy.PatsyError:将数据转换为分类时出错:观察 值为 'Kolkata' 的值与任何预期水平都不匹配
我相信这是一个非常常见的用例,其中训练数据不会包含所有类别字段的所有级别。 Sklearn 的 DictVectorizer 可以很好地处理这个问题。
有什么方法可以让 Patsy 完成这项工作?
【问题讨论】:
标签: python scikit-learn patsy