Использование ошибки Adasyn () или SMOTE (): не удалось преобразовать строку в число с плавающей точкой - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь применить метод SMOTE или ADASYN для фрейма данных ALECD, который содержит два представляющих интерес столбца (тип события и примечания), тип события представляет категорию события, которую я разложил на целые числа (0-9), а примечания - столбец свободного текста. которые описывают события, у меня есть несбалансированное количество событий, и я пытаюсь применить SMOTE или ADASYN для устранения дисбаланса, предварительная обработка происходит следующим образом:

with open('2008-01-01-2018-01-01.csv', 'r') as csvfile:
    ALECD = pd.read_csv(csvfile, low_memory=False)
    print(ALECD.shape)


#Cleaning data ,deleting entries with missing notes and converting event types to number
ALECD = ALECD[pd.notnull(ALECD['notes'])]
print(ALECD.shape)
ALECD['category_id'] = ALECD['event_type'].factorize()[0]
category_id_ALECD = ALECD[['event_type', 'category_id']].drop_duplicates().sort_values('category_id')
category_to_id = dict(category_id_ALECD.values)
id_to_category = dict(category_id_ALECD[['category_id', 'event_type']].values)

Текстовое представление

tfidf = TfidfVectorizer(sublinear_tf=True, min_df=5, norm='l2', encoding='latin-1', ngram_range=(1, 2), stop_words='english')
features = tfidf.fit_transform(ALECD.notes).toarray()
labels = ALECD.category_id
print(features.shape)

разбиение набора данных на обучающий и тестовый набор

X_train, X_test, y_train, y_test = train_test_split(np.array(list(ALECD['notes'])).reshape(-1, 1), \
                                                    np.array(list(ALECD['event_type'])).reshape(-1 , 1), random_state=0)

Применить случайную передискретизацию

ada = ADASYN()
X_resampled, y_resampled = ada.fit_sample(X_train, y_train)

Error

ValueError: could not convert string to float: 'Pro-Houthi Saba news reported that coalition warplanes launched two air raids on Hodeidah airport on Friday, reportedly causing heavy damage. No fatalities or injuries were reported.'
...