【发布时间】:2013-04-25 00:39:05
【问题描述】:
我正在尝试了解一些尝试根据广告发布来预测价格的 Python 代码。
在拟合文本矢量化器之前,函数会对广告描述des 和广告标题titles 执行hstack((des, titles))。
问题:做hstack的原因是什么?打印出来时,des 和 merged 之间没有任何区别。 merged 似乎被用作训练数据,而不是分别传入 des 和 titles。这是如何工作的?
矢量化函数
def fit(des, titles, sal, clf, alpha):
tRidge = time()
vect = TfidfVectorizer(min_df=1,ngram_range=(1,3),max_features=24000000)
vect2 = TfidfVectorizer(min_df=1,ngram_range=(1,3),max_features=24000000)
des = vect.fit_transform(des)
titles = vect2.fit_transform(titles)
merged = hstack((des, titles))
print des, "\n\n\n\n"
print titles, "\n\n\n\n"
print merged
rr = linear_model.Ridge(alpha= alpha)
rr.fit(merged,sals)
return vect, vect2, rr
结果
(0, 2991) 0.0923069427531
(0, 2989) 0.156938669001
(0, 2988) 0.183108029528
(0, 2984) 0.183108029528
(0, 2983) 0.0923069427531
(0, 2982) 0.0923069427531
(0, 2981) 0.0923069427531
(0, 2976) 0.0923069427531
(0, 2974) 0.0784693345005
(0, 2973) 0.1373027904
(0, 2968) 0.0923069427531
(0, 2967) 0.0923069427531
(0, 2966) 0.183108029528
(0, 2859) 0.0610360098426
(0, 2858) 0.0610360098426
(0, 2855) 0.0548137869472
(0, 2811) 0.0923069427531
(0, 2810) 0.0610360098426
(0, 2807) 0.0548137869472
(0, 2671) 0.0923069427531
(0, 2670) 0.0923069427531
(0, 2663) 0.0784693345005
(0, 2662) 0.0784693345005
(0, 2659) 0.0819523573892
(0, 2642) 0.0923069427531
: :
(9, 225) 0.0518713890037
(9, 208) 0.105028746631
(9, 155) 0.0518713890037
(9, 154) 0.0518713890037
(9, 153) 0.0518713890037
(9, 152) 0.0518713890037
(9, 151) 0.0518713890037
(9, 149) 0.0440954196221
(9, 140) 0.0835380774247
(9, 135) 0.0518713890037
(9, 134) 0.0518713890037
(9, 132) 0.0881908392442
(9, 131) 0.0771565630894
(9, 122) 0.0518713890037
(9, 121) 0.0518713890037
(9, 118) 0.0518713890037
(9, 117) 0.0518713890037
(9, 116) 0.0771565630894
(9, 25) 0.0518713890037
(9, 8) 0.0518713890037
(9, 7) 0.0440954196221
(9, 6) 0.0440954196221
(9, 5) 0.0518713890037
(9, 4) 0.0518713890037
(9, 3) 0.0518713890037
(0, 69) 0.42208707303
(0, 68) 0.42208707303
(0, 27) 0.42208707303
(0, 26) 0.42208707303
(0, 24) 0.379058050386
(0, 0) 0.379058050386
(1, 62) 0.42435658025
(1, 61) 0.42435658025
(1, 60) 0.42435658025
(1, 28) 0.42435658025
(1, 23) 0.42435658025
(1, 22) 0.315606501824
(2, 59) 0.346009923908
(2, 58) 0.346009923908
(2, 44) 0.346009923908
(2, 43) 0.346009923908
(2, 42) 0.346009923908
(2, 7) 0.346009923908
(2, 6) 0.346009923908
(2, 5) 0.346009923908
(2, 0) 0.205467906151
(3, 70) 0.343926205461
(3, 69) 0.227413915309
(3, 68) 0.227413915309
(3, 41) 0.343926205461
: :
(7, 16) 0.231189334057
(7, 12) 0.271958221129
(7, 11) 0.271958221129
(7, 10) 0.271958221129
(8, 76) 0.265672282889
(8, 75) 0.265672282889
(8, 74) 0.265672282889
(8, 73) 0.265672282889
(8, 72) 0.265672282889
(8, 53) 0.265672282889
(8, 52) 0.22584571227
(8, 51) 0.22584571227
(8, 35) 0.265672282889
(8, 18) 0.265672282889
(8, 17) 0.265672282889
(8, 16) 0.22584571227
(8, 15) 0.265672282889
(8, 14) 0.265672282889
(8, 13) 0.265672282889
(9, 65) 0.435367791014
(9, 64) 0.435367791014
(9, 63) 0.370102397554
(9, 22) 0.323795863959
(9, 9) 0.435367791014
(9, 8) 0.435367791014
(0, 2991) 0.0923069427531
(0, 2989) 0.156938669001
(0, 2988) 0.183108029528
(0, 2984) 0.183108029528
(0, 2983) 0.0923069427531
(0, 2982) 0.0923069427531
(0, 2981) 0.0923069427531
(0, 2976) 0.0923069427531
(0, 2974) 0.0784693345005
(0, 2973) 0.1373027904
(0, 2968) 0.0923069427531
(0, 2967) 0.0923069427531
(0, 2966) 0.183108029528
(0, 2859) 0.0610360098426
(0, 2858) 0.0610360098426
(0, 2855) 0.0548137869472
(0, 2811) 0.0923069427531
(0, 2810) 0.0610360098426
(0, 2807) 0.0548137869472
(0, 2671) 0.0923069427531
(0, 2670) 0.0923069427531
(0, 2663) 0.0784693345005
(0, 2662) 0.0784693345005
(0, 2659) 0.0819523573892
(0, 2642) 0.0923069427531
: :
(7, 3669) 0.231189334057
(7, 3665) 0.271958221129
(7, 3664) 0.271958221129
(7, 3663) 0.271958221129
(8, 3729) 0.265672282889
(8, 3728) 0.265672282889
(8, 3727) 0.265672282889
(8, 3726) 0.265672282889
(8, 3725) 0.265672282889
(8, 3706) 0.265672282889
(8, 3705) 0.22584571227
(8, 3704) 0.22584571227
(8, 3688) 0.265672282889
(8, 3671) 0.265672282889
(8, 3670) 0.265672282889
(8, 3669) 0.22584571227
(8, 3668) 0.265672282889
(8, 3667) 0.265672282889
(8, 3666) 0.265672282889
(9, 3718) 0.435367791014
(9, 3717) 0.435367791014
(9, 3716) 0.370102397554
(9, 3675) 0.323795863959
(9, 3662) 0.435367791014
(9, 3661) 0.435367791014
【问题讨论】:
-
你不知道
type函数吗?如果您想知道“foo是什么类型的对象”,而不是执行print foo并尝试猜测,执行print type(foo)您会得到答案。然后你就可以上网查了。或者,您通常可以跳过所有这些,直接在交互式解释器中执行help(foo)。 -
我是 python 新手,感谢您的提示!
<class 'scipy.sparse.csr.csr_matrix'> -
好吧,
csr_matrix只是一个“压缩稀疏行矩阵”。当你有一个很多行都是空的巨大矩阵时,它很方便,但基本上,你可以把它想象成一个普通的旧矩阵。 -
@abarnert:实际上,只要矩阵包含很多零,它就会节省空间,而不仅仅是当有空行时。与更直接的坐标稀疏矩阵格式相比,“压缩行”名称是指行索引的压缩表示。
标签: python numpy machine-learning nlp scikit-learn