sklearn.svm.SVR с разреженной матрицей создает ошибку - PullRequest
0 голосов
/ 21 сентября 2019

Я работал над проектом машинного обучения по прогнозированию просмотров одного видео на Youtube на основе его описания, названия и т. Д.

Я обработал свои данные, и это выглядит примерно так:

array([[<40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 184135 stored elements in Compressed Sparse Row format>,
        <40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 503609 stored elements in Compressed Sparse Row format>,
        <40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 1942999 stored elements in Compressed Sparse Row format>,
        ..., 0.0, 1.0, 0.0],
       ...,
       [<40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 184135 stored elements in Compressed Sparse Row format>,
        <40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 503609 stored elements in Compressed Sparse Row format>,
        <40379x2500 sparse matrix of type '<class 'numpy.int64'>'
    with 1942999 stored elements in Compressed Sparse Row format>,
        ..., 0.0, 1.0, 0.0]], dtype=object)

Разреженные матрицы - это тексты, которые преобразуются с помощью sklearn.feature_extraction.text.CountVectorizer, а 1 и 0 - это просто категориальные данные, обрабатываемые OneHotEncoder ()

I, затем импортируются и настраиваются SVR:

from sklearn.svm import SVR

svr_rbf = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
svr_rbf.fit(train_x, train_y)

Возвращает:

ValueError                                Traceback (most recent call last)
<ipython-input-14-8f4a9c1f1ed0> in <module>
      2 
      3 svr_rbf = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
----> 4 svr_rbf.fit(train_x, train_y)

/opt/conda/lib/python3.6/site-packages/sklearn/svm/base.py in fit(self, X, y, sample_weight)
    144         X, y = check_X_y(X, y, dtype=np.float64,
    145                          order='C', accept_sparse='csr',
--> 146                          accept_large_sparse=False)
    147         y = self._validate_targets(y)
    148 

/opt/conda/lib/python3.6/site-packages/sklearn/utils/validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)
    717                     ensure_min_features=ensure_min_features,
    718                     warn_on_dtype=warn_on_dtype,
--> 719                     estimator=estimator)
    720     if multi_output:
    721         y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,

/opt/conda/lib/python3.6/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
    494             try:
    495                 warnings.simplefilter('error', ComplexWarning)
--> 496                 array = np.asarray(array, dtype=dtype, order=order)
    497             except ComplexWarning:
    498                 raise ValueError("Complex data not supported\n"

/opt/conda/lib/python3.6/site-packages/numpy/core/numeric.py in asarray(a, dtype, order)
    536 
    537     """
--> 538     return array(a, dtype, copy=False, order=order)
    539 
    540 

ValueError: setting an array element with a sequence.

Я также пытался обучить DNN (тензор потока), но возвращает то же сообщение.Пожалуйста, помогите и спасибо заранее!

...