通常,对于使用Python的SciKit和线性代数/机器学习来说,这是相当新的,所以我似乎无法解决以下问题:
我有一个训练集和一个数据测试集,其中包含连续值和离散/分类值。 CSV文件被加载到Pandas DataFrames中,并且形状匹配,分别为(1460,81)和(1459,81)。
但是,在使用Pandas的get_dummies之后,DataFrame的形状将更改为(1460,306)和(1459,294)。 因此,当我使用SciKit线性回归模块进行线性回归时,它会为306个变量建立模型,并尝试仅使用294个变量来预测一个变量。 那么,这自然会导致以下错误:
ValueError: shapes (1459,294) and (306,1) not aligned: 294 (dim 1) != 306 (dim 0)
我该如何解决这个问题? 我能以某种方式重塑(1459,294)以匹配另一个吗?
谢谢,我希望我已经说清楚了:)
在处理分类数据时,这是一个非常普遍的问题。关于如何最好地处理此问题,存在不同的意见。
一种可能的方法是将一个功能应用于分类特征,以限制可能的选项集。例如,如果要素包含字母,则可以对A,B,C,D和"其他/未知"要素进行编码。这样,您可以在测试时应用相同的功能并从问题中抽象出来。当然,显而易见的缺点是,通过减少功能空间,您可能会丢失有意义的信息。
另一种方法是在您的训练数据上建立模型,自然而然地创建任何假人,并将其作为模型的基准。