Авторы

Рэндалл Берд, Рияж Дхолакия, Суджал Патель и Бипроджойти Пол

Введение

Добро пожаловать в нашу статью! Мы очень рады объяснить и поделиться своими мыслями о том, как прогнозировать рейтинги приложений в Google Play Store. Мы по-прежнему начинаем с основных определений интеллектуального анализа данных и переходим к алгоритмам с нашим набором данных Google Play Store.

Нажмите здесь, чтобы получить доступ к коду на GitHub:

https://github.com/riyazhdholakia/PredictGooglePlayStoreAppRatings

Интеллектуальный анализ данных

Интеллектуальный анализ данных — это процесс просмотра набора данных и поиска корреляций, аномалий и/или закономерностей, которые могут быть полезны. Другими словами, он имеет большой набор данных, полный разрозненной информации, и пытается понять его, находя осмысленность. Например, если такая компания, как Macys, хотела предсказать продажи нового товара, она могла посмотреть на похожие товары.

Питон

Большинство специалистов по данным используют python из-за отличных встроенных библиотечных функций и приличного сообщества. Python теперь имеет 70 000 библиотек. Python — самый простой язык программирования по сравнению с другими языками. Это основная причина, по которой специалисты по данным чаще используют python, для машинного обучения и анализа данных аналитики данных хотят использовать какой-то язык, который прост в использовании. Это одна из основных причин использования python. В частности, для специалистов по данным самые популярные данные, созданные в библиотеке с открытым исходным кодом, называются панда. Как мы видели ранее в нашем предыдущем задании, когда нам нужно построить диаграмму рассеяния, тепловые карты, графики, встроенная библиотека python для трехмерных данных очень полезна.

Программное обеспечение

Мы используем Anaconda Navigator для запуска Jupyter Notebook. Затем мы выбираем Python 3 для кодирования.

Данные

Существуют различные способы поиска данных. Самый идеальный способ найти данные — это поискать их в Интернете. Существует большое количество веб-сайтов, которые могут предоставить большие данные, например, Data.Gov, The Federal Reserve, Kaggle.

Наш набор данных

Kaggle: https://www.kaggle.com/lava18/google-play-store-apps

Набор данных был получен путем удаления из Google Play Store.

Знание предметной области

Трудно делать проекты в области, которую вы не знаете или не понимаете. Вы должны понимать ситуацию с данными и их важность. Предположим, вы хотите построить модель для предсказания того, насколько часто требуется замена масла в японских автомобилях. Вы должны знать предметную область, чтобы понимать, какие переменные собирать, чтобы использовать данные для прогнозирования результата. Если вы разбираетесь в предметной области, вы будете понимать ложные срабатывания, выбросы и лучше измерять ошибки. Если у вас нет домена по производству автомобилей, запчастей, моделей автомобилей и т. д., вы не сможете сделать модель. После того, как вы получите данные и модель, вы должны понять и проанализировать данные, чтобы вы могли сообщить о своих выводах. Это лишь несколько важных причин, по которым важно знание предметной области.

Тело

Теперь у вас есть представление о интеллектуальном анализе данных, давайте приступим к нему!

Гипотеза

Прогнозировать рейтинги приложений в Google Play Store.

Независимые переменные

Независимые переменные, у которых нет переменных-зависимостей, которые могут изменить результат независимых переменных. Другое название независимых переменных — переменные-предикторы. В данных независимые переменные также будут известны как регрессоры, контролируемые переменные, управляемые переменные, объясняющая переменная, переменная воздействия и/или входная переменная. Большую часть времени компании хотят контролировать независимую переменную, чтобы увидеть взаимосвязь факторов зависимых переменных и результата.

Зависимые переменные

Зависимые переменные наоборот. Там результат зависит от другой переменной. Зависимые переменные могут измерять влияние независимых переменных. Зависимые переменные обычно зависят от независимых переменных. Другое название зависимых переменных — прогнозируемые переменные. В данных зависимые переменные также будут известны как переменная отклика, регрессионная переменная, измеряемая переменная, наблюдаемая переменная, переменная отклика, объясняемая переменная, переменная результата, экспериментальная переменная и/или выходные переменные.

Предварительная обработка

Предварительная обработка важна для преобразования необработанных данных в более желательный формат. Прохождение процесса предварительной обработки может помочь с полнотой и убедительностью. Например, вы можете увидеть, были ли записаны определенные значения или нет. Кроме того, вы можете увидеть, насколько достоверны данные. Это также может помочь определить, насколько согласуются значения. Нам нужна предварительная обработка, потому что большинство реальных данных грязные. Данные могут быть зашумленными, т.е. данные могут содержать выбросы или вообще ошибки. Данные также могут быть неполными, т. е. могут быть некоторые отсутствующие значения.

Хранение данных становится все проще и проще, большинство организаций хранят большие объемы данных для различных целей, таких как аудит, информация, прогнозирование и т. д., что оказывается выгодным для организации. Но в то же время объемные данные, называемые большими данными, увеличивают вероятность появления зашумленных данных. Кроме того, поскольку эти данные будут поступать из разных источников, существует более высокая вероятность несогласованности. Даже в меньшем наборе данных есть отсутствующие записи и несогласованные форматы. Все эти аномалии мешают сохранению данных, могут привести к низкому качеству майнинга, прогнозный анализ может сместиться не в ту сторону. В то время как фиалки являются причиной хранения данных, поэтому важно сделать данные необходимыми, что мы называем предварительной обработкой. Это обеспечивает точность, полноту, согласованность, своевременность, достоверность и интерпретируемость данных.

Типы данных

Тип атрибутов

Это Первый шаг Данных Предварительная обработка данных. Мы различаем разные типы атрибутов, а затем предварительно обрабатываем данные. Итак, вот описание типов атрибутов.

1. Качественный (номинальный (N), порядковый (O), двоичный (B)).

2. Количественный (дискретный, непрерывный)

Похоже, в полях «Рейтинг», «Тип», «Рейтинг содержания» и «Версия Android» отсутствуют значения. Но у большинства из них отсутствуют значения в колонке Рейтинг. Во-первых, мы проверили, есть ли какие-либо пропущенные значения/значения NaN.

Очевидно, что первое значение этой записи отсутствует (имя приложения), а все остальные значения соответственно распространяются в обратном направлении, начиная с «Категории» по направлению к «Текущая версия»; а последний столбец «Android Ver» остается пустым. Лучше скинуть всю запись вместо

учитывайте эти необоснованные значения при очистке каждого столбца!

Многие алгоритмы машинного обучения могут поддерживать категориальные значения без дальнейших манипуляций, но есть и другие алгоритмы, которые этого не делают. Нам нужно подготовить все данные для модели, поэтому мы преобразуем категориальные переменные (переменные, которые хранятся в виде текстовых значений) в числовые переменные.

Существует две стратегии обработки отсутствующих данных: либо удаление записей с этими отсутствующими значениями, либо замена отсутствующих значений определенным значением, таким как (среднее, медиана или мода) значение столбца. Мы использовали медиану для заполнения значений. Использование медианы дало лучшие результаты, чем среднее, при замене пропущенных значений.

Нормализация или стандартизация

Термины нормализация и стандартизация иногда используются взаимозаменяемо, но обычно они относятся к разным вещам. Нормализация обычно означает масштабирование переменной так, чтобы она имела значение от 0 до 1, в то время как стандартизация преобразует данные так, чтобы они имели среднее значение, равное нулю, и стандартное отклонение, равное 1. Нормализация делает обучение менее чувствительным к шкале признаков, поэтому мы можем лучше решать коэффициенты. Стандартизация имеет тенденцию улучшать процесс обучения, потому что числовые условия задач оптимизации улучшаются. Мы не нормализовали и не стандартизировали этот набор данных, в этом не было необходимости.

Фиктивные переменные

Фиктивная переменная может иметь только количественное значение 0 и 1. 1 означает, что значение существует, а 0 означает, что оно отсутствует. Это помогает с категорическим эффектом. Мы можем реализовать эту функцию в наших данных. В этом случае нам не нужны никакие фиктивные переменные. Пример для других наборов данных, предположим, у нас есть функция, в которой есть мужчины и женщины. Мы можем добавить фиктивную переменную Xi, которая сообщает нам «мужской 1» или «не мужской 0». В этом случае это поможет для прогнозирования.

Описательная статистика

Проще говоря, описательная статика представляет собой конкретную выборку большого набора данных. Это дает нам коэффициент, который суммирует данные. Описательная статика может быть измерена путем измерения. Один по центральной тенденции, другой по стандартному отклонению. Центральная тенденция разделилась на медиану, среднее значение и моду.

Среднее

Среднее — это среднее. Таким образом, он рассчитывается путем сложения всех цифр и последующего деления на количество цифр.

Режим

Режим означает, что в наборе данных какое значение встречается чаще.

Медиана

Медиана — это цифра, которая оказалась в середине набора данных.

Стандартное отклонение

Стандартное отклонение представляет собой квадрат дисперсии. Это один из способов измерения данных. Чтобы рассчитать стандартное отклонение, сначала найдите среднее значение. Затем каждое число будет вычтено из среднего. Затем возьмите среднее значение этих квадратов разностей. После этого возьмем квадрат разницы, тогда мы закончим.

Ниже эти графики могут помочь нам узнать больше о наших данных.

Тепловая карта корреляции

Контролируемое обучение

Обучение с учителем берет известный входной набор в наборе данных и пытается изучить модель регрессии или классификации. Другими словами, при контролируемом обучении люди учат машины тому, как учиться на данных через известные входные/выходные данные. Примером этого может быть человек, обучающий машину распознавать одну карту (в колоде карт). Во-первых, он может показать автомату, как распознать символ карты, то есть бубну, трефу, пику, черву. После этого номер или лицо можно распознать. Двигаясь вперед, то есть после завершения процесса обучения, машина будет знать, как читать следующую карту, и даст точный ответ по ее номинальной стоимости.

Обучение без учителя

Неконтролируемое обучение — это тип машинного обучения, при котором для обучения модели не требуются размеченные данные. Другими словами, компьютер обучается сам и не нуждается в контроле со стороны человека. Неконтролируемое обучение также является способом машинного обучения, который помогает в кластерном анализе. Кластерный анализ помогает найти скрытые закономерности в данных, используя сходство. По сути, помогает делать ссылки на входные данные без помеченных ответов. Распространенными алгоритмами являются иерархическая кластеризация, k-средние и смешанные модели (например, смешанные модели Гаусса). В качестве примера представьте себе пруд с различными видами рыб, а затем представьте себе устройство, которое может классифицировать и группировать различные виды рыб без какого-либо контролируемого обучения тому, как проводить классификацию. Искусство компьютера, использующего алгоритм без помощи человека, — это обучение без учителя. Одним из популярных алгоритмов обучения без учителя, который может разделить рыбу, может быть кластеризация k означает. Когда k означает кластеризацию, целью алгоритма является присвоение различным точкам данных определенной группы, т. е. разделение рыбы по типу. Где точки данных сгруппированы с использованием сходства признаков. Если информация не предоставляется, неконтролируемое обучение будет работать хорошо.

Тренировочный и тестовый сплит

Разделяя обучающие и тестовые наборы, большая часть данных используется для обучающих наборов, и только некоторые данные используются для тестовых наборов. Разделение данных на наборы для обучения и тестирования является важной частью оценки моделей интеллектуального анализа данных. Используя аналогичные данные для обучения и тестирования, вы можете свести к минимуму последствия несоответствия данных и лучше понять характеристики модели. Мы разделили наши данные на 75 обучающих и 25 тестовых. В основном люди используют 80% обучающих наборов и 20% тестовых наборов.

Алгоритмы

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

K-ближайшего соседа

KNN — самый простой алгоритм машинного обучения с учителем. Это самый простой алгоритм машинного обучения, который вы можете найти на scikit-learn. Мы можем использовать KNN для решения сложных задач. С помощью KNN мы можем выполнять распознавание образов и интеллектуальный анализ данных. KNN определяет сходство. Из заданного набора данных KNN находит общие группы между атрибутами. Мы разделяем данные на обучающую и тестовую выборку. Тогда мы сможем увидеть, насколько это будет похоже на результат.

Случайный лес

Случайный лес в основном создает лес деревьев решений и делает его случайным. Мы увидим взаимосвязь между нашими деревьями и результатом, который мы собираемся получить. Например, если я решаю, какой фильм посмотреть в это воскресенье, и мне нужно, чтобы мои друзья посоветовали мне. Мои друзья будут задавать мне случайный вопрос, например, какой жанр сначала, а затем какой конкретный тип фильмов этого жанра. Итак, здесь предложения друга рассматриваются как дерево решений. Наконец, я выберу фильм, набравший наибольшее количество голосов. Это результат. Это пример алгоритма случайного леса.

Вот некоторые из преимуществ и недостатков классификаторов случайного леса:

Преимущества

Одним из преимуществ модели случайного леса является то, что она никогда не превосходит модель. Он может обрабатывать пропущенные значения. Мы можем использовать случайный лес как для классификации, так и для регрессии. Случайный лес может помочь нам определить наиболее важную часть нашего обучающего набора данных.

Недостатки

Случайные леса помогают прогнозировать в реальном времени, но по своей природе это медленно. Это сложный алгоритм, поэтому иногда его трудно реализовать.

Кластеризация

Кластеризация — это, по сути, группа элементов или элементов. Подумайте о пачке карандашей, это связка карандашей против одного карандаша. Термин кластеризации используется по-разному. Кластеризация в интеллектуальном анализе данных может помочь нам увидеть тенденции и сравнить данные. Это действительно помогает на графиках, особенно когда каждое значение окрашено.

Кластеризация K-средних

Алгоритм кластеризации K-средних работает путем сравнения или использования сходства для каждой точки данных. Это обычно используется с неконтролируемым обучением. Термин K означает количество сгруппированных групп. Затем мы получаем результаты центров кластеров. Затем мы можем построить это, а также наши исходные кластеризованные данные. Например, K-означает, что вы должны быть экспертом в своих данных. Это означает, что числа кластеризации должны быть известны до запуска алгоритма. K-Means работает, когда данные имеют форму перевернутого конуса.

Наш K равен 4, ищите точку локтя на графике ниже.

Иерархическая кластеризация

Точно так же иерархическая кластеризация также кластеризует ваши данные. Это также обычно используется с неконтролируемым

Обучение. Это также вернет центры кластеризованных данных. Процесс, в котором результаты будут различаться. Он будет объединять небольшие кластеры вместе, чтобы сформировать более крупные кластеры, пока не останется только один кластер. Затем вы решаете в дендрограмме, какие значения кластера вы хотите извлечь. Все будет зависеть от данных, которые у вас есть. Иерархическая кластеризация работает по-другому, потому что он сделает кластеризацию за вас. Он будет объединять кластеры, пока не останется только один. Вы увидите это на графике, на котором вы определите количество кластеров. Обычно вы хотите следовать эмпирическому правилу. Это хорошо, особенно если у вас мало знаний о вашем наборе данных. Кроме того, иерархическая кластеризация лучше работает с небольшими наборами данных. Мы не будем использовать это, так как кластеризация K-средних работала лучше для нас.

K-образный крест

K-кратное пересечение - это метод, который используется для разделения набора данных на K кратностей для тестирования. Где каждая складка используется в качестве тестового набора в какой-то момент. Это метод, который используется для включения ограниченных данных. K-кратность также менее предвзята, чем другие методы. Другими словами, это стратегия, используемая для оценки способности модели к новой информации. Существуют обычные стратегии, которые вы можете использовать для выбора оценки k для вашего набора данных. Обычно используются незначительные отклонения от перекрестной проверки, например, стратифицированные и перефразированные, которые доступны в scikit-learn. Перекрестная проверка — это измеримый метод, используемый для оценки опыта моделей ИИ. Он регулярно используется в прикладном ИИ для просмотра и выбора модели для данной пророческой демонстрационной проблемы, поскольку он прост, прост в реализации и дает оценки способностей, которые по большей части имеют меньшую склонность, чем другие стратегии.

Заключение

После прохождения этих алгоритмов и процесса мы пришли к выводу, что наша гипотеза верна. Это означает, что вы можете прогнозировать рейтинги приложений, однако перед началом процессов классификации и регрессии необходимо выполнить значительную предварительную обработку.

Данные о приложениях в Play Store обладают огромным потенциалом для успеха компаний, занимающихся разработкой приложений. Разработчики могут получить полезную информацию для работы и захвата рынка Android! Это показывает, что, учитывая размер, тип, цену, рейтинг контента и жанр приложения, мы можем предсказать точность около 91%, если приложение будет иметь более 100 000 установок и станет хитом в магазине Google Play.

Забавные факты

Автомобили и транспортные средства и развлечения не имеют приложений с высоким рейтингом в этих категориях, это было бы отличным местом для инноваций в новом приложении.

Чтобы получить доход от рекламы, сосредоточьтесь на 40 самых часто устанавливаемых приложениях, чтобы получить максимальное количество просмотров.

Функции «Размер», «Тип», «Цена», «Рейтинг контента» и «Жанр» должны использоваться для наиболее точного определения того, получит ли приложение максимальное количество установок.

В заключение, мы надеемся, что вам понравилось узнавать о процессе интеллектуального анализа данных в наборе данных, а нам понравилось ломать голову. Мы также прекрасно провели время, написав эту статью, и продолжим делиться информацией о интеллектуальном анализе данных. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам по электронной почте, через Medium, LinkedIn или GitHub.

Ресурсы

Середина:

· https://towardsdatascience.com/why-and-how-to-cross-validate-a-model-d6424b45261f

· https://towardsdatascience.com/hypothesis-testing-in-machine-learning-using-python-a0dc89e169ce

Каггле:

· https://www.kaggle.com/lava18/google-play-store-apps

YouTube:

· https://www.youtube.com/watch?v=6kZ-OPLNcgE

· https://www.youtube.com/watch?v=s-9Qqpv2hTY

Загрузите наш код на GitHub:

· https://github.com/riyazhdholakia/PredictGooglePlayStoreAppRatings

Опубликуйте нашу статью:

· https://medium.com/quickknowledge/predict-google-play-store-app-ratings-7a2634c65d87