Алгоритмы классификатора

ВСТУПЛЕНИЕ

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

Классификация - это пример обучения с учителем. Тренировочная выборка правильно определила наблюдения. Алгоритмы классификатора используются для создания кластера / наборов из некатегоризованных неконтролируемых данных на основе сходства и / или расстояния от набора обучающих данных.

СТАТИСТИКА ЗА АНАЛИЗОМ

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

Границы модели классификатора могут быть простой линией для разделения «положительного» и «отрицательного» результата на более сложную гиперплоскость для разделения нескольких групп.

Достоверность модели можно проверить, используя ошибку или точность модели наряду с «ложноположительными» и «ложноотрицательными».

ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ

  1. Python
  2. GraphLab
  3. S Frame (аналогично Pandas Dataframe)

ЗАГРУЗКА ДАННЫХ

Мы собираемся классифицировать обзоры продуктов Amazon, чтобы понять положительный или отрицательный отзыв. У Amazon рейтинг 5 звезд. Мы будем использовать это для сравнения нашего прогноза.

> product_reviews=graphlab.SFrame(‘amazon_baby.gl/’)
> product_reviews.head()

> product_reviews.show()

Создайте словарь слов, который будет использоваться моей моделью для классификации.

> product_reviews[‘wordcount’] = graphlab.text_analytics.count_words(product_reviews[‘review’])

Выберите один конкретный продукт, чтобы предсказать настроение отзывов. Vulli Shopie - игрушка-жираф для прорезывания зубов. Отфильтруйте все отзывы о продукте.

> vs_reviews = product_reviews[product_reviews[‘name’]==’Vulli Sophie the Giraffe Teether’]
> vs_reviews[‘rating’].show(view=’Categorical’)

АНАЛИТИКА ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МОДЕЛИ КЛАССИФИКАЦИИ

Отфильтруйте средний рейтинг 3. Рейтинг выше 4 означает положительный рейтинг.

> product_reviews = product_reviews[product_reviews[‘rating’] !=3]
> product_reviews[‘binrating’] = product_reviews[‘rating’] >= 4

Создайте набор обучающих и тестовых данных.

> train_data, test_data = product_reviews.random_split(0.8, seed=0)

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

> sentiment_model = graphlab.logistic_classifier.create (train_data,
                    target=’binrating’,
                    features=[‘wordcount’],
                    validation_set=test_data)

Оцените модель для тестовых данных и отобразите, используя кривую ROC (рабочие характеристики приемника).

> sentiment_model.evaluate(test_data, metric=’roc_curve’)

ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ

> sentiment_model.show(view=’Evaluation’)

91% точность - это хорошо.

Используя построенную нами модель, спрогнозируйте каждый отзыв об игрушке Vullie Sophie Giraffe.

> vs_reviews[‘predicted_sentiment_by_model’]=
sentiment_model.predict(vs_reviews, output_type=’probability’)

Наша модель зарекомендовала себя очень хорошо. Для большего количества настроений (ближе к 1) мы можем заметить, что звездный рейтинг продукта Amazon равен 5.

Мы можем просматривать самые положительные и отрицательные отзывы на основе прогнозов модели.

> vs_reviews=vs_reviews.sort(‘predicted_sentiment_by_model’, ascending=False)
> vs_reviews[0][‘review’]

«Софи, о Софи, твое время пришло. Моей внучке Вайолет 5 месяцев, и у нее начинаются зубки. Какую радость доставляет Вайолет маленькая Софи. Sophie изготовлена ​​из очень податливой резины, прочной, но не жесткой. Для Вайолет довольно легко повернуть Софи в неслыханные позы, чтобы заткнуть Софи ей в рот. Маленький носик и копыта идеально подходят для маленького рта, и слюнотечение имеет смысл. Краска на Софи - пищевое качество. Софи родилась в 1961 году во Франции. Производитель удивился, почему нет ничего доступного для младенцев, и сделал Софи из лучшего каучука, не содержащего фталатов, в День святой Софи, так родилось имя. С тех пор миллионы Софи населяют мир. Она мягкая, и малышам легко хвататься за ручонки. Вайолет особенно любит бугристую голову и рога Софи. У Софи длинная шея, которую легко взять и повернуть. У нее красивые большие пятна, которые привлекают внимание Вайолет. Софи издает счастливые писки, которые вызывают восторженные визги Вайолет. Она умеет заставить Софи пищать, и это приносит много радости. Гладкая кожа Софи успокаивает маленькие десны Вайолет. Рост Софи 7 дюймов, и это именно тот размер, который дети должны держать и любить. Как вы хорошо знаете, первое, что дети берут в рот, ложится им в рот - как замечательно иметь игрушку, которая стимулирует все чувства и помогает справиться с проблемой. прорезывания зубов. Софи достаточно мала, чтобы поместиться в карман или сумку любого размера. Софи - идеальная находка для малышей от нескольких месяцев до года. Как замечательно слышать хихиканье и смех, исходящие от младенцев, которые находят Софи неотразимой. Да здравствует Софи! Настоятельно рекомендуется. присроб 12–11–09 ”

Самый негативный отзыв.

> vs_reviews[-1][‘review’] # most negative

«Моему сыну (сейчас 2,5 года) очень понравилась его Софи, и я покупала по одной на каждый детский душ, на который ходила. Моя дочь (6 месяцев) только сегодня чуть не подавилась этим, и я больше никогда не отдам ей. Если бы я не находился в пределах слышимости, это могло бы привести к летальному исходу. Странный звук, который она издавала, привлек мое внимание, и когда я подошел к ней и обнаружил, что передняя изогнутая нога глубоко заскользила по ее горлу, а ее лицо стало багрово-синим, я запаниковал. Я вытащил его, и ее вырвало на весь ковер, прежде чем она закричала. Не могу поверить, как мое мнение об этой игрушке изменилось с обязательного на то, что нельзя использовать. Пожалуйста, не оставляйте без внимания комментарии об опасности удушья, они не преувеличены! »