Модель для прогнозирования возраста в г - PullRequest
0 голосов
/ 17 октября 2018

У меня ~ 50 000 клиентов, из которых 10 000 известны по возрастной группе (до 65 лет и старше).У меня есть история брендов, приобретенных каждым покупателем.Я хочу построить модель, чтобы предсказать, к какой возрастной группе принадлежит клиент, основываясь на истории покупок.Я запускаю модель, и она показывает некоторые ошибки (далее ниже).

Вопросы:

  1. Можно ли использовать модель naiveBayes для прогнозирования возрастной группы, к которой принадлежит клиент?

  2. Как понять, почему моймодель не работает

  3. Вместо age_group какую модель использовать для прогнозирования возраста, если у меня есть возраст клиента?

Заранее большое спасибо

# building train and test sets
set.seed(100) 
train_set_indexes <- sample (1:nrow(demand_by_customer_brand_year_2018_row), size = 5000) 

train_set <- demand_by_customer_brand_year_2018_row [train_set_indexes, ]
test_set <- demand_by_customer_brand_year_2018_row [-train_set_indexes, ]

# Applying a model (naiveBayes) on train set

library(e1071)
model_age <- naiveBayes(Customer_Age_Group ~ ., data = train_set)

# Predicting the class labels of the train set
predicted_labels <- predict(model_age, test_set)
summary(model_age)

True_labels <- test_set[,1]
head(True_labels)

table1 <- table (True_labels,predicted_labels)
table1


# output of summary(model_age)

        Length Class  Mode   
apriori   2    table  numeric
tables  741    -none- list   
levels    0    -none- NULL   
call      4    -none- call  

# Output when processing table1 <- table (True_labels,predicted_labels)

Error in table(True_labels, predicted_labels) : object 'True_labels' not found

1 Ответ

0 голосов
/ 17 октября 2018

Я решил проблему:

До того, как у меня был формат chr:
'data.frame': 1000 obs.из 742 переменных: $ Customer_Age_Group: chr "Mom" "Mom" "Mom" "Senior" ...

Когда я преобразовал его в множитель с 2 уровнями, он работал 'data.frame': 1000 obs.из 742 переменных: $ Customer_Age_Group: Коэффициент с 2 уровнями "Мама", "Старший": 1 1 1 2 1 1

...