SSAS — Классификация — Разделение данных на: набор для обучения — набор для проверки — набор для тестирования

У меня есть набор из 300 000 записей исторических данных о покупках клиентов. Я начал проект интеллектуального анализа данных SSAS, чтобы выявить лучших клиентов.

Разделение данных: -90% непокупатели -10% покупатели

Я использовал различные алгоритмы SSAS (деревья решений и нейронные сети показали лучший рост) для изучения моих данных.

Цель проекта — определить/оценить клиентов в зависимости от того, кто с наибольшей вероятностью купит продукт.

В настоящее время я использовал все свои записи для этой цели. Такое ощущение, что чего-то не хватает в проекте. Сейчас я читаю две книги о интеллектуальном анализе данных. Оба они говорят о разделении интеллектуального анализа данных на разные наборы; однако ни один из них не объясняет, КАК на самом деле разделить их.

Я считаю, что мне нужно разделить майские записи на 3 набора и повторно запустить алгоритмы ssas.

Основные вопросы:

  1. Как разделить данные на обучающую, проверочную и тестовую выборки 1.1 Какое соотношение покупателей и непокупателей должно быть в обучающей выборке?
  2. Как я оцениваю своих клиентов в соответствии с вероятностью покупки продукта и наименее вероятной покупкой продукта.

person BI Dude    schedule 22.09.2013    source источник


Ответы (1)


Разделение вашего набора может быть сделано случайным образом, поскольку ваш набор данных большой, а количество покупателей не слишком мало (10%). Однако, если вы хотите быть уверены, что ваши наборы репрезентативны, вы можете взять 80% выборок ваших покупателей и 80% выборок не покупателей и смешать их, чтобы построить обучающий набор, который содержит 80% вашего общего набора данных и имеет то же соотношение покупателей и не покупателей, что и в исходном наборе данных, что делает подмножества репрезентативными. Вы можете разделить свой набор данных не на два подмножества, а на три: обучение, перекрестная проверка и тестирование. Если вы используете neural network, как вы сказали, вы должны использовать подмножество перекрестной проверки для настройки вашей модели (распад веса, скорость обучения, импульс...).

Что касается вашего второго вопроса, вы можете использовать нейронную сеть, как вы сказали, и получить результат, который будет в диапазоне [0, 1], если вы используете сигмоид в качестве функции активации в выходном слое в качестве вероятности. Я бы также рекомендовал вам взглянуть на collaborative filtering для этой задачи, потому что это поможет вам узнать, какие продукты могут быть покупателем, заинтересованным в использовании ваших знаний о других покупателях с аналогичными предпочтениями.

person pabaldonedo    schedule 22.09.2013
comment
Спасибо за ответ. Как использовать сигмоид в качестве функции активации выходного слоя в SSAS? - person BI Dude; 23.09.2013
comment
Если вы проверите документацию: technet.microsoft.com/en-us/library/ cc645901.aspx вы обнаружите, что Hidden neurons use a hyperbolic tangent function (tanh) for their activation function, whereas output neurons use a sigmoid function for activation вам не нужно ничего делать, это настройка по умолчанию. - person pabaldonedo; 23.09.2013