从稀疏矩阵使用 GBC 构建模型时获取具有序列错误的数组元素



我从稀疏矩阵数据框构建分类器模型时出错。

错误

C:UsersAshokEapenAnaconda3libsite-packagessklearnutilsvalidation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
    380                                       force_all_finite)
    381     else:
--> 382         array = np.array(array, dtype=dtype, order=order, copy=copy)
    383 
    384         if ensure_2d:
ValueError: setting an array element with a sequence.

我的代码

 cv = CountVectorizer( max_features = 5000,analyzer='word') 
 tf = cv.fit_transform(data.pop('Clean_addr'))
 for i, col in enumerate(cv.get_feature_names()):
    data[col] = pd.SparseSeries(tf[:, i].toarray().ravel(), fill_value=0)
    train = data.drop(['Stop_Type','Co_Name','Cust_ID','Phone','Shpr_ID','Resi_Cnt','Buz_Cnt','Nearby_Cnt','parseNumber','removeString','Qty','bins','Co_Name_Flag'], axis=1)
    Y = data['Resi']
    gbc = GradientBoostingClassifier(max_depth = 7, n_estimators=1500, min_samples_leaf=10)
    print('Training GBC')
    #fit classifier, look for best
    gbc.fit(X_train, y_train)

我该如何解决这个问题? 请轻松找到火车的分割数据框X_train

    Lat Lng Weight  Resi_Ratio  Resi_Area   Product categorizeNumber    ResiR   bins_qty    ab  ... yi  yin ying    yip yiu yu  yue yuen    yuet    yuk
49291   22.334624   114.195812  0.23    1.000000    U   IE  Mobile  0.67646 1   0   ... 0   0   0   0   0   0   0   0   0   0
43012   22.373704   114.106212  0.50    0.014925    N   IP  undefined   0.162105    1   0   ... 0   0   0   0   0   0   0   0   0   0
3237    22.268394   114.129232  1.55    0.050000    N   IP  Landline    0.105263    1   0   ... 0   0   0   0   0   0   0   0   0   0
52313   22.339494   114.148902  0.30    0.011538    N   IP  undefined   0   1   0   ... 0   0   0   0   0   0   0   0   0   0

Y_train

Out[37]:
4987     N
47455    N
31422    N
44714    N
56879    N
26408    N
43667    N
18978    N
39741    N
20614    Y
6660     N
35500    N
57861    N
12971    N
35515    N
41007    N
58319    Y
51216    N
5292     N
26321    Y
12624    N
21936    N
29168    Y

更新了 X_train 和 Y_train

首先,

我假设你的意思是你的X数据是稀疏格式,而不是你的y

如果您查看sklearn/utils/validation.py中的源代码,您会发现您的错误是 if ...首先检查传递的数组是否稀疏的 else 语句(在本例中为格式为"coo"、"csr"或"csc")。

因此,您的X数据似乎不是这些格式之一。

相关内容

  • 没有找到相关文章

最新更新