#python #pandas #machine-learning #scikit-learn
#python #pandas #машинное обучение #scikit-learn
Вопрос:
Я пытаюсь изучить ML в твите.
Я конвертирую твиты через
df['vectorised_words'] = vectorizer.transform(df.tweet)
что дает мне pandas.core.series.Series
, и мой векторизатор CountVectorizer
Мои X
и Y
следующие:
X = df['vectorised_words']
y = df['is_hate_speech'].astype(int)
где X — это текст (например "This is a sample tweet"
), а Y
логическое значение — True
или False
.
Затем я хочу выполнить следующее:
svc_1 = SVC(kernel='linear')
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=46)
svc_1.fit(X_train, y_train)
Однако функция подгонки выдает следующую ошибку:
TypeError: float() argument must be a string or a number, not 'csr_matrix'
Если я суммирую массив с плавающей запятой, я думаю, что логика преобразования будет потеряна. Что я делаю не так?
Ответ №1:
Кажется, вы пытаетесь поместить целую разреженную матрицу в один столбец фрейма данных pandas, что не так.
Просто определите свой X
как
X = vectorizer.transform(df.tweet.values)
и все должно быть в порядке.