Готовлю анализ базы данных с сайта:
https://www.kaggle.com/c/predicting-loan-default/data
Моя переменная emp_length принимает около 3000 различных значений. Некоторые значения совпадают или содержат одно и то же ключевое слово (например, учетная запись, бухгалтер, бухгалтерский учет, специалист по учетным записям, акт.). Некоторые слова содержат ошибки или являются сокращениями. Я хочу уменьшить значения, чтобы упростить имена и закодировать как числовые значения. Я пытался найти ключевые слова с интеллектуальным анализом текста в R, но не уверен, что это правильный путь. У кого-нибудь есть идеи по этому поводу?
Попробуйте адаптировать этот подход "науки о данных":
Пример входных данных:
emp_length<-c("account","accountant","accounting","account specialist","Data Scientist","Data Science Expert")
Расстояние между строками + кластеризация
cluster<-kmeans(stringdistmatrix(emp_length,emp_length,method = "jw"),centers=2)
cluster_n<-cluster$cluster
Возможная группировка этикеток
cbind(emp_length,cluster_n)
emp_length cluster_n
[1,] "account" "2"
[2,] "accountant" "2"
[3,] "accounting" "2"
[4,] "account specialist" "2"
[5,] "Data Scientist" "1"
[6,] "Data Science Expert" "1"
Это может помочь в обнаружении метки для группировки и преобразования в числовой формат.
Вы можете применить одну или несколько методик, описанных в этом разделе stackoverflow.com/questions/15376075/…, по матрице строк, чтобы найти оптимальное количество кластеров.
Хорошо, большое спасибо. У меня один вопрос, как выбрать центры, когда я не знаю, сколько у меня уровней?