machine-learning
Обучаемое обучение
Поиск…
классификация
Представьте себе, что система хочет обнаружить яблоки и апельсины в корзине фруктов. Система может выбирать фрукты, извлекать некоторые свойства (например, вес этих фруктов).
Предположим, что у Системы есть Учитель! который учит системе, какие объекты являются яблоками и которые являются апельсинами . Это пример контролируемой проблемы классификации . Он контролируется, потому что мы обозначили примеры. Это классификация, потому что выход - это предсказание того, к какому классу относится и наш объект.
В этом примере мы рассмотрим 3 функции (свойства / пояснительные переменные):
- вес выбранного фрукта больше, чем .5gram
- размер больше 10 см
- цвет красный
(0 означает Нет, а 1 означает Да)
Таким образом, для представления яблока / апельсина мы имеем серию (называемую вектором) из 3 свойств (часто называемых признаками признаков)
(например, [0,0,1] означает, что этот вес плода не больше 5 мм, а его размер не больше 10 см, а цвет его красный)
Итак, мы произвольно выбираем 10 фруктов и измеряем их свойства. Затем учитель (человек) называет каждый фрукт вручную как apple => [1] или orange => [2] .
например) Учитель выбирает плод, который является яблоком. Представление этого яблока для системы может быть примерно таким: [1, 1, 1] => [1]. Это означает, что этот фрукт имеет вес более 1 кг. , 5 грамм , 2. размер больше 10 см и 3. цвет этого плода красный, и, наконец, это яблоко (=> [1])
Таким образом, для всех 10 плодов учитель помещает каждый плод в виде яблока [=> 1] или оранжевый [=> 2], и система обнаруживает их свойства. как вы догадываетесь, у нас есть серия векторов (называемых ее матрицей) для представления всего 10 плодов.
Фруктовая классификация
В этом примере модель научится классифицировать фрукты с определенными функциями, используя этикетки для обучения.
Вес | цвет | этикетка |
---|---|---|
0,5 | зеленый | яблоко |
0.6 | пурпурный | слива |
3 | зеленый | арбуз |
0,1 | красный | вишня |
0,5 | красный | яблоко |
Здесь модель возьмет вес и цвет как функции для прогнозирования метки. Например, [0.15, 'red'] должно приводить к предсказанию «вишни».
Введение в контролируемое обучение
Существует довольно много ситуаций, когда у одного есть огромное количество данных и использование которых он должен классифицировать объект в одном из нескольких известных классов. Рассмотрим следующие ситуации:
Банковское дело. Когда банк получает запрос от клиента на банковскую карточку, банк должен решить, следует ли выдавать или не выдавать банковскую карточку, исходя из характеристик своих клиентов, которые уже пользуются карточками, для которых известна кредитная история.
Медицина: может быть интересна разработка медицинской системы, которая диагностирует пациента, независимо от того, имеет ли он или нет конкретное заболевание, на основании наблюдаемых симптомов и медицинских тестов, проведенных на этом пациенте.
Финансы. Финансовая консалтинговая фирма хотела бы предсказать тенденцию цены акции, которая может быть классифицирована как вверх, вниз, так и без тренда, основанная на нескольких технических характеристиках, которые влияют на движение цены.
Экспрессия генов. Ученый, анализирующий данные экспрессии генов, хотел бы идентифицировать наиболее важные гены и факторы риска, связанные с раком молочной железы, с тем чтобы отделить здоровых пациентов от пациентов с раком молочной железы.
Во всех приведенных выше примерах объект классифицируется на один из нескольких известных классов, основанный на измерениях, выполненных по ряду характеристик, которые он может считать дискриминирующими объекты разных классов. Эти переменные называются предикторными переменными, а метка класса называется зависимой переменной. Обратите внимание, что во всех приведенных выше примерах зависимая переменная категорична .
Чтобы разработать модель для задачи классификации, мы требуем для каждого объекта данных о наборе заданных характеристик вместе с метками класса, к которым относятся объекты. Набор данных делится на два набора в заданном соотношении. Больший из этих наборов данных называется набором данных обучения, а другой - набором тестовых данных . Набор учебных данных используется при разработке модели. Поскольку модель разработана с использованием наблюдений, чьи метки классов известны, эти модели известны как контролируемые модели обучения .
После разработки модели модель оценивается по ее производительности с использованием набора тестовых данных. Цель классифицирующей модели состоит в том, чтобы иметь минимальную вероятность ошибочной классификации по невидимым наблюдениям. Наблюдения, не используемые в разработке модели, известны как невидимые наблюдения.
Индукция дерева решений является одной из методов построения классификации. Модель дерева решений, построенная для категориально-зависимой переменной, называется деревом классификации . Зависимая переменная может быть числовой в определенных проблемах. Модель дерева решений, разработанная для числовых зависимых переменных, называется деревом регрессии .
Линейная регрессия
Поскольку надзорное обучение состоит из целевой или конечной переменной (или зависимой переменной), которая должна быть предсказана из заданного набора предикторов (независимых переменных). Используя этот набор переменных, мы генерируем функцию, которая отображает входы на нужные выходы. Процесс обучения продолжается до тех пор, пока модель не достигнет желаемого уровня точности данных обучения.
Поэтому есть много примеров алгоритмов контролируемого обучения, поэтому в этом случае я хотел бы сосредоточиться на линейной регрессии
Линейная регрессия Используется для оценки реальных значений (стоимость домов, количество вызовов, общий объем продаж и т. Д.) На основе непрерывной переменной (ов). Здесь мы устанавливаем связь между независимыми и зависимыми переменными, устанавливая лучшую линию. Эта линия наилучшего соответствия известна как линия регрессии и представлена линейным уравнением Y = a * X + b.
Лучший способ понять линейную регрессию - пережить этот опыт детства. Скажем, вы просите ребенка в пятом классе устраивать людей в своем классе, увеличивая порядок веса, не спрашивая их веса! Как вы думаете, что будет делать ребенок? Он / она, вероятно, будет выглядеть (визуально анализировать) на высоте и строить людей и организовывать их, используя комбинацию этих видимых параметров.
Это линейная регрессия в реальной жизни! Ребенок фактически понял, что высота и строение будут соотнесены с весом соотношением, которое выглядит как приведенное выше уравнение.
В этом уравнении:
Y – Dependent Variable
a – Slope
X – Independent variable
b – Intercept
Эти коэффициенты a и b производятся на основе минимизации суммы квадратов разности расстояний между точками данных и линией регрессии.
Посмотрите на приведенный ниже пример. Здесь мы определили линию наилучшего соответствия, имеющую линейное уравнение y = 0,2811x + 13,9 . Теперь, используя это уравнение, мы можем найти вес, зная высоту человека.
Линейная регрессия состоит в основном из двух типов: простая линейная регрессия и множественная линейная регрессия. Простая линейная регрессия характеризуется одной независимой переменной. И, множественная линейная регрессия (как следует из названия) характеризуется несколькими (более 1) независимыми переменными. Найдя наилучшую линию, вы можете поместить полиномиальную или криволинейную регрессию. И они известны как полиномиальная или криволинейная регрессия.
Просто намек на реализацию линейной регрессии в Python
#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)
Я дал представление о понимании контролируемого обучения, сводящегося к алгоритму линейной регрессии, а также фрагмента кода Python.