我来自R,所以ScikitAPI对我来说还是很困惑。我是按照这个教程http://michelleful.github.io/code-blog/2015/06/20/pipelines/来学习管道的。所以我们创建一个假数据集仅供参考:
x1,x2,y
foo,zoo,1
bar,moo,2
goo,too,3
roo,zoo,4
too,moo,5
我的目标很简单:在y上训练一个线性回归,使用x1和x2的单独tfidf矩阵,加上x1和x2的一些自定义特性(例如,字长等)。在
让我们从一个更简单的任务开始,即只使用x1中的tfidf。以下是完整代码:
^{pr2}$我得到错误ValueError: dimension mismatch
,可能是因为有些术语不会出现在两个train/validation折叠中。正确的做法是什么?谢谢您!在
将您的列图表更改为:
您应该在
fit()
中声明并了解培训数据。目前,您正在重新拟合对transform()
的每个调用中的数据,这显然将在train和validation集中以不同的特性返回,正如您所建议的那样。在正确的方法是保留一个
TfidfVectorizer
,它在fit()期间学习数据,然后只转换transform()
中的新数据,而不是重新拟合新数据。在相关问题 更多 >
编程相关推荐