Классификация URL-адресов по категориям - Машинное обучение

[Я подхожу к этому как к постороннему человеку в машинном обучении. Это просто похоже на проблему классификации, которую я должен быть в состоянии решить с довольно хорошей точностью с помощью Machine Larning.]

Учебный набор данных:
У меня есть миллионы URL-адресов, каждый из которых помечен определенной категорией. Есть ограниченное количество категорий (50-100).

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

Поэтому я хочу построить коробку, в которой INPUT URL, ВЫХОД Category, Как мне построить эту коробку, управляемую ML?

Как бы мне ни хотелось понять основные принципы математической работы этого метода, сейчас гораздо больше внимания уделяется его выполнению, поэтому я стремлюсь к концептуальному пониманию задействованных систем и процессов. Я полагаю, что машинное обучение - это тот момент, когда вы можете подходить к решению достаточно простых задач таким образом.
Если вы чувствуете, что я неправ, и мне нужно глубоко понять основы, чтобы извлечь выгоду из ML, дайте мне знать.

Я строю это в экосистеме AWS, поэтому я открыт для использования Amazon ML, если он делает вещи быстрее и проще.

2 ответа

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

Хорошо, я укушу

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

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

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

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

Это важные соображения при ведении статистики, и часто люди видят, как легко это сделать from sklearn.svm import SVC или что-то в этом роде и взбеситься. Вот так тебя ловят штаны вокруг лодыжек.

Как мне построить эту коробку, управляемую ML?

У вас, кажется, нет даже элементарного понимания того, как подходить к проблемам машинного / статистического обучения. Я настоятельно рекомендую вам пройти курс типа "Введение в статистическое обучение" или "Введение в регрессионное моделирование", чтобы подумать о том, как вы переводите имеющиеся у вас URL-адреса в значимые функции, которые имеют значительный класс предсказания URL-адресов. Подумайте о том, как вы можете разложить URL на отдельные части, которые могут дать некоторую информацию о том, к какому классу относится определенный URL. Если вы классифицируете espn.com домены по спорту, было бы довольно важно разобрать nba снаружи http://www.espn.com/nba/team/roster/_/name/cleты не думаешь?

Удачи с вашим проектом.

Редактировать:

Однако, чтобы подтолкнуть вас вперед: каждая проблема ML сводится к некоторой функции, отображающей входные и выходные данные. Ваши выводы являются классами URL. Ваши входы - это URL. Однако машины понимают только цифры, верно? URL не являются номерами (AFAIK). Поэтому вам нужно найти способ перевести информацию, содержащуюся в URL, в то, что мы называем "функциями" или "переменными". Начнем с того, что в одном месте будет горячее кодирование различных частей каждого URL. Подумайте, почему я упомянул пример ESPN выше, и почему я извлек такую ​​информацию, как nba из URL. Я сделал это, потому что, если я пытаюсь предсказать, к какому виду спорта относится данный URL, nba это мёртвая распродажа (то есть очень вероятно, что она будет сильно предсказывать спорт).

Я полагаю, что машинное обучение - это тот момент, когда вы можете подходить к решению достаточно простых задач таким образом.

Это не. Построение эффективного решения ML требует как понимания масштабов / ограничений проблемы (в вашем случае, новые категории с течением времени? Требования времени выполнения? Частота выполнения? Требования к задержке? Стоимость ошибок? И многое другое!). Эти ограничения будут влиять на то, какие типы проектирования / обработки объектов вы можете посмотреть, и на какие типы моделей вы будете смотреть. Ваша конкретная проблема может также иметь проблемы с данными, отличными от IID, что является допущением большинства методов ML. Это повлияет на то, как вы оцениваете точность вашей модели.

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

Другие вопросы по тегам