![]() |
![]() |
![]() |
![]() |
Как создать свою первую модель машинного обучения на Python |
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-09-11 13:43 В этой статье вы узнаете, как создать свою первую модель машинного обучения на Python. В частности, вы будете строить регрессионные модели, используя традиционную линейную регрессию, а также другие алгоритмы машинного обучения. 1. Ваша первая модель машинного обучения Так какую модель машинного обучения мы строим сегодня? В этой статье мы собираемся построить регрессионную модель, используя алгоритм случайного леса на наборе данных растворимости. После построения модели мы собираемся применить ее для прогнозирования с последующей оценкой производительности модели и визуализацией ее результатов. 2. Набор данных 2.1. Наборы данных игрушек Итак, какой набор данных мы собираемся использовать? Ответом по умолчанию может быть использование в качестве примера набора данных об игрушках, например набора данных Iris (классификация) или набора данных о жилье в Бостоне (регрессия). Хотя оба являются отличными примерами для начала, обычно большинство руководств фактически не загружает эти данные непосредственно из внешнего источника (например, из файла CSV), а вместо этого импортирует их из библиотеки Python, такой как Например, для загрузки набора данных Iris можно использовать следующий блок кода: Преимущество использования игрушечных наборов данных заключается в том, что их очень просто использовать: импортируйте данные непосредственно из библиотеки в формате, который можно легко применить для построения моделей. Обратной стороной этого удобства является то, что новички могут фактически не видеть, какие функции загружают данные, какие выполняют фактическую предварительную обработку, а какие строят модель и т. д. 2.2. Ваш собственный набор данных В этом уроке мы воспользуемся практическим подходом и сосредоточимся на создании реальных моделей, которые вы сможете легко воспроизвести. Поскольку мы собираемся считывать входные данные непосредственно из файла CSV, вы можете легко заменить входные данные своими собственными и переназначить описанный здесь рабочий процесс для них. Набор данных, который мы используем сегодня, — это 2.2.1. Загрузка данных Полный Чтобы их можно было использовать в любом проекте по науке о данных, содержимое данных из файлов CSV можно считывать в среду Python с помощью библиотеки Первая строка импортирует Входным аргументом внутри В этом уроке мы собираемся использовать набор данных о растворимости (доступен по адресу). Таким образом, мы будем загружать данные, используя следующий код: 2.2.2. Обработка данных Теперь, когда у нас есть данные в виде фрейма в переменной Как мы это делаем? Нам нужно будет разделить их на 2 переменные: Первые 4 столбца, за исключением последнего, будут присвоены переменной 2.2.2.1. Присвоение переменных X Чтобы назначить первые 4 столбца переменной Как мы видим, мы сделали это, отбросив или удалив последний столбец ( 2.2.2.2. Присвоение переменной y Чтобы назначить последний столбец переменной Как видно, мы сделали это, явно выбрав последний столбец. Для получения тех же результатов также можно использовать два альтернативных подхода, при этом первый заключается в следующем: А второй подход заключается в следующем: Выберите один из вышеперечисленных вариантов и перейдите к следующему шагу. 3. Разделение данных Разделение данных позволяет объективно оценить производительность модели на свежих данных, которые модель ранее не видела. В частности, если полный набор данных разделен на обучающий и тестовый с использованием соотношения разделения 80/20, то модель можно построить с использованием подмножества данных 80% (т. е. который мы можем назвать обучающим набором) и впоследствии оценить на 20% подмножестве данных (т.е. которое мы можем назвать тестовым набором). Помимо применения обученной модели к тестовому набору мы также можем применить ее к обучающему набору (т. е. к данным, которые в первую очередь использовались для построения модели). Последующее сравнение производительности модели обоих разделений данных (т. е. обучающего и тестового наборов) позволит нам оценить, является ли модель подходящей или переоснащенной . Недостаточное оснащение обычно происходит в том случае, если производительность обучающего и тестового наборов низкая, тогда как при переоснащении тестовый набор значительно уступает в производительности по сравнению с обучающим. Для выполнения разделения данных в В приведенном выше коде первая строка импортирует функцию Из приведенного выше кода мы видим, что одновременно создали 4 переменные, состоящие из разделенных переменных Теперь мы готовы использовать эти 4 переменные для построения модели. 4. Построение модели А вот и самое интересное! Теперь мы собираемся построить несколько регрессионных моделей. 4.1. Линейная регрессия 4.1.1. Построение модели Начнем с традиционной линейной регрессии. Первая строка импортирует Теперь, когда модель построена, мы собираемся применить ее для прогнозирования обучающего и тестового наборов следующим образом: Как мы видим в приведенном выше коде, модель ( 4.1.2. Производительность модели Теперь мы собираемся рассчитать показатели производительности, чтобы иметь возможность определить производительность модели. В приведенном выше коде мы импортируем функции Давайте поговорим об используемом здесь соглашении об именах: мы назначаем функцию не требующим пояснений переменным, явно указывающим, что содержит переменная. Например, Показатели производительности можно отобразить, просто распечатав переменные. Например, чтобы распечатать MSE для обучающего набора: что дает Чтобы увидеть результаты для остальных трех показателей, мы могли бы также распечатать их один за другим, но это было бы немного повторяющимся. Другой способ — создать аккуратное отображение четырех показателей следующим образом: который создает следующий кадр данных: ![]() 4.2. Случайный лес Случайный лес (RF) — это метод ансамблевого обучения, при котором объединяются прогнозы нескольких деревьев решений. Отличительной особенностью RF является встроенная важность функций (т. е. значения индекса Джини, которые он производит для построенных моделей). 4.2.1. Построение модели Давайте теперь построим RF?модель, используя следующий код: В приведенном выше коде первая строка импортирует функцию В этом примере мы устанавливаем Теперь мы собираемся применить построенную модель для прогнозирования обучающего и тестового наборов следующим образом: Аналогично тому, как это используется в 4.2.2. Производительность модели Давайте теперь посчитаем показатели производительности для построенной модели случайного леса следующим образом: Для консолидации результатов воспользуемся следующим кодом: который производит: ![]() 4.3. Другие алгоритмы машинного обучения Чтобы построить модели с использованием других алгоритмов машинного обучения (кроме того 4.3.1. Список регрессоров Давайте посмотрим на некоторые примеры регрессоров, из которых мы можем выбрать:
Более обширный список регрессоров можно найти в 4.3.2. Использование регрессора Допустим, то, что мы хотели бы использовать, Обратите внимание, как мы импортируем функцию регрессора После этого функция регрессора присваивается переменной (т. е. 4.4. Объединение результатов Напомним, что показатели производительности модели, которые мы ранее сгенерировали выше для моделей линейной регрессии и случайного леса, хранятся в переменных Поскольку обе переменные являются кадрами данных, мы собираемся объединить их с помощью Это создает следующий кадр данных: ![]() Следует отметить, что метрики производительности для дополнительных методов обучения также можно добавить, дополнив список Например, 5. Визуализация данных результатов прогнозирования Давайте теперь визуализируем взаимосвязь фактических значений Y с их прогнозируемыми значениями Y, то есть экспериментальным logS и прогнозируемыми значениями logS. Как показано выше, мы собираемся использовать Функция ![]() Линия тренда на графике с помощью Визуализированная диаграмма рассеяния показана выше. Что дальше? Поздравляем с созданием вашей первой модели машинного обучения! Что дальше, спросите вы. Ответ довольно прост: стройте больше моделей! Настраивайте параметры, пробуйте новые алгоритмы, экспериментируйте с добавлением новых функций в конвейер машинного обучения и, самое главное, не бойтесь совершать ошибки. На самом деле, самый быстрый путь к ускорению вашего обучения — это часто терпеть неудачи, вставать и пытаться снова. Обучение — это получение удовольствия от процесса, и если вы будете упорствовать достаточно долго, вы станете более уверенным на своем пути к тому, чтобы стать профессионалом в области данных, будь то специалист по науке о данных, аналитик данных или инженер по обработке данных. Но самое главное, как я всегда люблю говорить: Источник: habr.com Комментарии: |
|