Вводная серия по машинному обучению (2) — как создать полноценный проект по машинному обучению,Часть 7!
Первые шесть статей цикла:
- Серия «Введение в машинное обучение» (2) — «Как создать полноценный проект по машинному обучению» (1)
- Получение наборов данных машинного обучения и построение наборов тестов
- Предварительная обработка данных для разработки признаков (часть 1)
- Предварительная обработка данных для разработки признаков (часть 2)
- Масштабирование функций и кодирование функций для разработки функций
- Разработка функций (конец)
Первые шесть статей начинаются с конечной цели проекта, поиска и сбора данных, до предварительной обработки данных и разработки функций.Затем вам нужно приступить к выбору подходящей модели алгоритма для обучения, оценки и тестирования.
Поэтому мы разберем сводку и сравнение наиболее часто используемых алгоритмов машинного обучения, в том числе:
- Линейная регрессия
- логистическая регрессия
- Древо решений
- случайный лес
- Опорные векторные машины
- Наивный Байес
- Алгоритм KNN
- Алгоритм K-средних
- Повышение
- GBDT
- оптимизация
- Сверточная нейронная сеть
Из-за недостатка места кратко представлены основные принципы, преимущества и недостатки каждого алгоритма, и, чтобы каждая статья не была слишком длинной, ее можно разделить на две или три статьи для введения.
1. Линейная регрессия
Кратко
определение: Линейная регрессия — это регрессионный анализ, в котором используется функция наименьших квадратов, называемая уравнением линейной регрессии, для моделирования связи между одной или несколькими независимыми переменными и зависимыми переменными.
Эта функция представляет собой линейную комбинацию одного или нескольких параметров модели, называемых коэффициентами регрессии (все независимые переменные — квадраты).Случай только с одной независимой переменной называется простой регрессией, а случай с более чем одной независимой переменной называется множественной регрессией..
Функция модели для линейной регрессии выглядит следующим образом:
Его функция потерь выглядит следующим образом:
Найти оптимальное решение параметров через обучающий набор данных, то есть решение может быть полученоВектор параметров, где вектор параметров здесь тоже можно разбить на параметры, представляют значения веса и смещения соответственно.
Путь к нахождению оптимального решенияНаименьшие квадраты и градиентный спуск.
Преимущества и недостатки
Преимущества: результаты просты для понимания и несложны в вычислительном отношении. Недостаток: плохо подходит для нелинейных данных. Применимые типы данных: числовые и номинальные данные. Тип алгоритма: Алгоритм регрессии
Код
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)
2. Логистическая регрессия
Кратко
Алгоритм логистической регрессии основан на функции Sigmoid, или Sigmoid — это функция логистической регрессии. Сигмовидная функция определяется следующим образом:. Диапазон функции составляет (0,1).
Таким образом, выражение функции логистической регрессии выглядит следующим образом:
Функция стоимости логистической регрессии выглядит следующим образом:
Алгоритм градиентного спуска можно использовать для поиска параметров, минимизирующих функцию стоимости. Его формула метода градиентного спуска:
Преимущества и недостатки
преимущество
- Прост в реализации и широко используется в промышленных задачах;
- Объем вычислений очень мал, скорость очень высока, а ресурсы хранения невелики.;
- Легко наблюдать выборочные оценки вероятности
- Мультиколлинеарность не является проблемой для логистической регрессии, ее можно решить с помощью регуляризации L2.
недостаток
- легкийНедообучение, как правило, менее точное
- может только справитьсядвухкатегорийныйпроблема (софтмакс, полученный на этой основе, может использоваться для множественной классификации) и долженЛинейно отделимый;
- Пространство функций большоеКогда производительность логистической регрессии не очень высока;
- плохо справляетсяБольшое количество многоклассовых функций или переменных
- Для нелинейных признаков требуется преобразование.
Применимые типы данных: числовые и номинальные данные. Категория: Алгоритмы классификации. Пробный сценарий: Решите задачу бинарной классификации.
Код
#Import Library
from sklearn.linear_model import LogisticRegression
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create logistic regression object
model = LogisticRegression()
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Equation coefficient and Intercept
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)
#Predict Output
predicted= model.predict(x_test)
3. Дерево решений
Кратко
определение: Модель дерева решений классификации — это древовидная структура, описывающая классификацию экземпляров. Дерево решений состоит из узлов и направленных ребер. Существует два типа узлов: внутренние узлы и листовые узлы. Внутренние узлы представляют функцию или атрибут, а конечные узлы представляют класс.
Обучение дереву решений, по сути, вводит набор правил классификации из обучающего набора данных, который также можно назватьОцените модель условной вероятности из обучающего набора данных. Функция потерь, которую он использует, обычноРегуляризованная функция максимального правдоподобия, стратегия которого состоит в том, чтобы минимизировать функцию потерь как целевую функцию.
Алгоритм обучения дерева решений обычно представляет собой процесс рекурсивного выбора оптимальной функции и разделения обучающих данных в соответствии с этой функцией, чтобы каждый набор подданных имел наилучший процесс классификации.
Генерация дерева решений соответствует локальному выбору модели, а обрезка дерева решений соответствует глобальному выбору модели. Генерация дерева решений учитывает только локальный оптимум, в то время как обрезка дерева решений учитывает глобальный оптимум..
Обучение дереву решений обычно состоит из 3 шагов:Выбор признаков, генерация дерева решений и обрезка дерева решений.
Выбор функции
Критерием выбора признаков обычно являетсяПрирост информации или коэффициент прироста информации.
Определение прироста информации показано на следующем рисунке:
Среди них энтропия (S) представляет собой информационную энтропию выборочного набора S, A представляет собой набор атрибутов, а прирост информации (S, A) представляет собой информацию о значении целевой функции, полученном после знания атрибута A. Чем больше это, тем больше больше информации.
Недостатком получения информации является то, чтоСуществует проблема смещения выбора функций с большим количеством значений.. Для решения этой проблемы можно использовать коэффициент прироста информации.
Следовательно, коэффициент получения информации от признака A к обучающему набору данных D определяется следующим образом:
Коэффициент прироста информации также существует дляПредпочтительны атрибуты с меньшим количеством возможных значенийПроблема.
Генерация дерева решений
Кратко представим алгоритм генерации дерева решений, включая алгоритм ID3, C4.5.
ID3
Ядром алгоритма ID3 является применение критерия получения информации для выбора признаков в каждом узле дерева решений и рекурсивное построение дерева решений.
Идея алгоритма ID3 заключается в следующем:
- Первый заключается в расчете информационного прироста каждой функции для текущего набора.
- Затем выберите функцию с наибольшим приростом информации в качестве функции принятия решений текущего узла.
- Разделите на разные подузлы в соответствии с разными категориями признаков (например, возрастные признаки — молодые, среднего возраста, старые, затем разделены на 3 поддерева)
- Затем продолжайте рекурсию на дочерних узлах, пока все функции не будут разделены.
Недостатком ID3 является то, что
1) Легко вызватьпереоснащение(подгонка); 2)Может обрабатывать только номинальные данные (дискретные); 3)Расчет прироста информации зависит от функций с большим количеством функций, и атрибут с наибольшим значением атрибута не обязательно является лучшим.; 4)Плохая помехоустойчивость, долю положительных и отрицательных примеров в обучающих примерах контролировать сложнее
C4.5
Алгоритм C4.5 наследует преимущества алгоритма ID3 и улучшает алгоритм ID3 в следующих аспектах:
- Использование скорости прироста информации для выбора атрибутов преодолевает недостаток выбора атрибутов с большим количеством значений при использовании прироста информации для выбора атрибутов;
- обрезка при строительстве дерева;
- Он может завершить обработку дискретизации непрерывных атрибутов;
- Возможность обработки неполных данных.
Алгоритм C4.5 имеет следующие преимущества:Сгенерированные правила классификации просты для понимания и обладают высокой точностью..
Недостатки:
- Алгоритмы неэффективны, в процессе построения дерева набор данных нужно многократно просматривать и сортировать последовательно, что приводит к неэффективности алгоритма
- **Ограничение памяти** подходит только для наборов данных, которые могут находиться в памяти. Когда обучающий набор слишком велик для размещения в памяти, программа не может работать.
Фактически, из-за недостатков коэффициента прироста информации алгоритм C4.5 не выбирает напрямую атрибут-кандидат раздела с наибольшим коэффициентом прироста информации, аСначала найдите атрибуты с более высоким приростом информации, чем средний уровень, из атрибутов раздела-кандидата, а затем выберите атрибут с самым высоким коэффициентом прироста информации..
Для небольших наборов данных лучше всего использовать ID3 или C4.5.Классификация дерева решений обычно подходит только для небольших данных.. Когда значений атрибутов много, лучше всего выбрать алгоритм C4.5, а эффект от ID3 будет очень плохим.
обрезка
В процессе охвата дерева, если нет операции обрезки, оно будет выглядеть так, будто каждый лист представляет собой отдельный класс. Это полностью подходит для нашего тренировочного набора, но он очень недружелюбен к тестовому набору, а способность к обобщению оставляет желать лучшего.Поэтому нам нужно сократить некоторые ветви и листья, чтобы сделать модель более обобщаемой.По разным временным точкам обрезка делится на предобрезку и постобрезку.Предварительная обрезка выполняется во время создания дерева решений, постобрезка выполняется после создания дерева решений.
Обрезка деревьев решений часто достигается за счет минимизации общей функции потерь или функции стоимости дерева решений. Проще говоря, это сравнение функции потерь или точности всего дерева до и после обрезки, чтобы определить, требуется ли обрезка.
Существует множество алгоритмов обрезки дерева решений, конкретная ссылкаАлгоритм обрезки дерева решенийЭта статья.
Преимущества и недостатки
преимущество
-
Простой расчет и хорошая интерпретируемость, он больше подходит для обработки выборок с отсутствующими значениями атрибутов и может обрабатывать нерелевантные функции.;
-
эффективный, дерево решений нужно построить только один раз и использовать многократно.
-
Сложность времени обучения низкая, а процесс прогнозирования относительно быстрый., максимальное количество вычислений на прогноз не превышает глубины дерева решений. Для N выборок, каждая из которых содержит M атрибутов, без учета затрат на непрерывную дискретизацию атрибутов и рост поддерева, средняя временная сложность алгоритма дерева решений составляет всего. Построить дерево решений со сложностью наихудшего случая, где глубина дерева обычно растет логарифмически.
недостаток
- Классификационная способность одного дерева решений слаба, и трудно иметь дело с непрерывными переменными.;
- легко переобучить(После появления случайных лесов явление переобучения уменьшается);
- Возможно или в ловушке локальных минимумов
- нет онлайн обучения
Переоснащение деревьев решений
1.обрезка
- Предварительная обрезка: разработайте жесткие условия при разделении узлов, если нет, прекратите разделение напрямую (чтобы дерево решений не могло быть оптимальным и оно не могло дать лучших результатов).
- Постобрезка: после того, как дерево создано, один узел используется для замены поддерева, а классификация узла принимает основную классификацию в поддереве (этот метод тратит впустую предыдущий процесс создания). 2.Перекрестная проверка 3.случайный лес
Код
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import tree
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create tree object
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
4. Случайный лес
Введение
случайный лесОтносится к классификатору, который использует несколько деревьев для обучения и прогнозирования выборок.
Он состоит из нескольких CART (дерево классификации и регрессии). Для каждого дерева свойИспользуемый обучающий набор выбирается из общего обучающего набора с заменой, что означает, что некоторые выборки в общей обучающей выборке могут появляться несколько раз в обучающей выборке дерева или никогда не появляться в обучающей выборке дерева. При обучении узлов каждого дереваИспользуемые признаки извлекаются случайным образом из всех признаков в определенной пропорции без замены., предполагая, что общее количество признаков равноM
, то это соотношение может быть.
Преимущества и недостатки
преимущество
- Он хорошо работает с набором данных и имеет большое преимущество перед другими алгоритмами во многих текущих наборах данных.
- оно можетОбработка очень многомерных (много функций) данных, и не делать выбор функции
- Важность признаков можно оценить
- При создании случайного леса используется несмещенная оценка ошибки обобщения.
- быстрая тренировка, легко распараллелить
- В процессе обучения можно обнаружить взаимодействие между функциями.
- Реализация относительно проста
- Для несбалансированных наборов данных это может сбалансировать ошибку
- Может применяться к наборам данных с отсутствующими функциями и при этом иметь хорошую производительность.
недостаток
- Было показано, что случайные лесагромкий шумбудет соответствовать задачам классификации или регрессии
- Для данных с атрибутами с разными значениямиАтрибуты с большим количеством значений будут иметь большее влияние на случайные леса., поэтому веса атрибутов, созданные случайным лесом для такого рода данных, не заслуживают доверия.
Код
Простой пример использования алгоритма случайного леса в sklearn:
#Import Library
from sklearn.ensemble import RandomForestClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create Random Forest object
model= RandomForestClassifier()
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
резюме
Кратко представлены первые четыре алгоритма: линейная регрессия, логистическая регрессия, дерево решений и случайный лес. Последние три алгоритма используются чаще, особенно алгоритм логистической регрессии. Во многих конкурсах алгоритмов логистическая регрессия будет рассматриваться в первую очередь. выполнить весь процесс алгоритма, а затем рассмотреть возможность замены на основе сложных моделей алгоритмов. Случайный лес – это обновленная версия дерева решений с более высокой производительностью, которую также можно использовать для оценки важности функций. Его можно использовать для выбора функций. Он относится к последнему из трех основных методов выбора функций, встроенному выбору. метод, функции учащегося выбираются автоматически.
Ссылаться на:
- «Статистические методы обучения»
- Различные регрессионные решения: традиционная регрессия, логистическая регрессия, взвешенная регрессия/ядерная регрессия, гребневая регрессия, обобщенная линейная модель/экспоненциальное семейство
- Алгоритм обрезки дерева решений
- Серия "Дерево решений" (5) - КОРЗИНА
- Сводка RandomForest по случайному лесу
- Личное резюме распространенных алгоритмов машинного обучения (для интервью)
Добро пожаловать, чтобы обратить внимание на мою общедоступную учетную запись WeChat — машинное обучение и компьютерное зрение, или отсканируйте QR-код ниже, давайте общаться, учиться и прогрессировать вместе!