Алгоритмы классификатора
ВСТУПЛЕНИЕ
В машинном обучении классификация используется для классификации нового наблюдения в определенный набор / категорию на основе обучающего набора данных, содержащих наблюдения, категория которых известна заранее. Самый распространенный пример - это классы «спам» или «не спам» для электронных писем. В электронной коммерции алгоритмы классификатора могут использоваться для классификации отзывов на основе слов. Конкретные слова в языке заранее классифицируются по их положительным или отрицательным настроениям.
Классификация - это пример обучения с учителем. Тренировочная выборка правильно определила наблюдения. Алгоритмы классификатора используются для создания кластера / наборов из некатегоризованных неконтролируемых данных на основе сходства и / или расстояния от набора обучающих данных.
СТАТИСТИКА ЗА АНАЛИЗОМ
В простой модели классификатора простой подсчет положительных и отрицательных точек данных будет определять общие положительные или отрицательные множества. С этим есть проблема. Например, в случае слов в предложениях «Отлично» и «Хорошо» оба являются положительными словами. Но «отлично» имеет большее влияние, чем «хорошо». Нам необходимо обучить нашу модель взвешиванию идентифицированных точек данных.
Границы модели классификатора могут быть простой линией для разделения «положительного» и «отрицательного» результата на более сложную гиперплоскость для разделения нескольких групп.
Достоверность модели можно проверить, используя ошибку или точность модели наряду с «ложноположительными» и «ложноотрицательными».
ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ
- Python
- GraphLab
- 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 месяцев) только сегодня чуть не подавилась этим, и я больше никогда не отдам ей. Если бы я не находился в пределах слышимости, это могло бы привести к летальному исходу. Странный звук, который она издавала, привлек мое внимание, и когда я подошел к ней и обнаружил, что передняя изогнутая нога глубоко заскользила по ее горлу, а ее лицо стало багрово-синим, я запаниковал. Я вытащил его, и ее вырвало на весь ковер, прежде чем она закричала. Не могу поверить, как мое мнение об этой игрушке изменилось с обязательного на то, что нельзя использовать. Пожалуйста, не оставляйте без внимания комментарии об опасности удушья, они не преувеличены! »