Как решить проблему ValueError: не удалось преобразовать строку в число с плавающей точкой: когда каждый мой столбец содержит более 10 уникальных символьных значений? - PullRequest
0 голосов
/ 23 сентября 2019

Я знаю, что этот вопрос задавался 100 раз, но я не могу найти конкретную проблему.Мой набор данных очень большой с 5 столбцами (минимум), и каждый столбец состоит из более чем 20 уникальных значений в строковом типе.Я применил Label encoder в своей тренировочной модели, но если он продолжит хранить уникальные значения, он не даст точного результата, а если я использую OneHotEncoder, тогда он увеличит размер моих наборов данных и будет равен memory issue.

Я работаю над созданием классификатора дерева решений, я читал об этом, что он поддерживает значения типов символов, но я получаю ValueError: could not convert string to float:, поэтому я подумал о том, чтобы изменить его на целое, но снова столкнулся с другой проблемой огромного хранения

print(mydataset)

     col1   col2   col3   col4  col5
1    abc    def     ghi   jkl   mno
2    pqr    stu     vwx   yza   bcd  
3    efg    hig     jkl   mnl   opq
.    .      .       .     .     .
.    .      .       .     .     .
.    .      .       .     .     .
1000 rfg    dyj     okl   ohj   wed   

Выше я дал приблизительное представление о моем наборе данных.На самом деле у меня есть 40000 полей в моем наборе данных.Есть ли какое-либо другое решение, где я также могу справиться с огромным использованием памяти при преобразовании значений моего поля в int и обучении моей модели напрямую?

Заранее спасибо

...