установка элемента массива с ошибкой последовательности в scikit learn GradientBoostingClassifier - PullRequest
0 голосов
/ 05 сентября 2018

Вот мой код, у кого есть идеи что не так? Ошибка происходит, когда я звоню fit,

import pandas as pd
import numpy as np
from sklearn.ensemble import (RandomTreesEmbedding, RandomForestClassifier,
                              GradientBoostingClassifier)
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer

n_estimators = 10
d = {'f1': [1, 2], 'f2': ['foo goo', 'goo zoo'], 'target':[0, 1]}
df = pd.DataFrame(data=d)
X_train, X_test, y_train, y_test = train_test_split(df, df['target'], test_size=0.1)

X_train['f2'] = CountVectorizer().fit_transform(X_train['f2'])
X_test['f2'] = CountVectorizer().fit_transform(X_test['f2'])

grd = GradientBoostingClassifier(n_estimators=n_estimator, max_depth=10)
grd.fit(X_train.values, y_train.values)

1 Ответ

0 голосов
/ 05 сентября 2018

Проблема с CountVectorizer:

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer

d = {'f1': [1, 2], 'f2': ['foo goo', 'goo zoo'], 'target':[0, 1]}
df = pd.DataFrame(data=d)
df['f2'] = CountVectorizer().fit_transform(df['f2'])

df.values:

array([[1,
        <2x3 sparse matrix of type '<class 'numpy.int64'>'
    with 4 stored elements in Compressed Sparse Row format>,
        0],
       [2,
        <2x3 sparse matrix of type '<class 'numpy.int64'>'
    with 4 stored elements in Compressed Sparse Row format>,
        1]], dtype=object)

Мы видим, что мы смешиваем разреженную матрицу с плотной матрицей. Вы можете преобразовать его в плотный с помощью: todense():

dense_count = CountVectorizer().fit_transform(df['f2']).todense()

где dense_count - это что-то вроде:

matrix([[1, 1, 0],
        [0, 1, 1]], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...