Что такое функция в машинном обучении?

Функция — это один столбец данных во входном наборе. Например, если вы пытаетесь предсказать, какое домашнее животное выберет кто-то, ваши входные данные могут включать возраст, домашний регион, доход семьи и т. д. Ярлык — это окончательный выбор, например, собака, рыба, игуана, рок и т. д. [1] [2].

Что такое «наблюдение» в статистике?

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

Что такое многомерные данные?

Высокоразмерные данные относятся к набору данных, в котором количество признаковp больше, чем количество наблюдений N, часто записывается как p ›› Н.

Например, набор данных, который имеет p = 6 объектов и только N = 3 наблюдения, будет считаться данными высокой размерности, поскольку количество признаков больше, чем количество наблюдений[ 3].

Одна распространенная ошибка, которую допускают люди, заключается в том, что они предполагают, что «высокоразмерные данные» просто означают набор данных, который имеет множество функций. Однако это неправильно. Набор данных может иметь 10 000 признаков, но если в нем 100 000 наблюдений, то он не является многомерным.

Почему многомерные данные являются проблемой?

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

Другими словами, становится невозможным найти модель, которая может описать взаимосвязь между переменными-предикторами и переменной-ответом, потому что у нас недостаточно наблюдений для обучения модели [3].

Примеры многомерных данных

Пример 1: Здравоохранение Данные

Пример 2: Финансовые Данные

Пример 3: Геномика Данные

Как обрабатывать многомерные данные

Существует два распространенных способа работы с многомерными данными[3]:

  1. Включите меньше функций.

Есть несколько способов решить, какие функции удалить из набора данных, в том числе:

  • Отбрасывание объектов с большим количеством отсутствующих значений. Если в заданном столбце в наборе данных много отсутствующих значений, вы можете полностью отбросить его без потери большого количества информации.
  • Отбрасывание объектов с низкой дисперсией: если в данном столбце в наборе данных значения меняются очень мало, вы можете отбросить его, так как он вряд ли предоставит столько полезной информации о переменная отклика по сравнению с другими функциями.
  • Отбрасывание признаков с низкой корреляцией с переменной отклика.Если определенный признак не имеет высокой корреляции с интересующей переменной отклика, вы, вероятно, можете исключить его из набора данных, так как он вряд ли окажется полезным. в модели.

2. Используйте метод регуляризации.

Еще один способ обработки многомерных данных без удаления признаков из набора данных — использовать такой метод регуляризации, как:

Каждый из этих методов можно использовать для эффективной работы с многомерными данными[3].

Практическое занятие: проект, связанный с машинным обучением

Мы хотим изучить проект классификации мобильных цен с ансамблевым обучением и, наконец, выбрать лучший алгоритм для набора данных, который имеет множество функций:[4][6]

Мой аккаунт kaggle для загрузки и редактирования кодов и сохранения наборов данных

Цель:

  • В этом проекте на основе мобильных спецификаций, таких как мощность аккумулятора, поддержка 3G, Wi-Fi, Bluetooth, оперативная память и т. д., мы прогнозируем ценовой диапазон мобильного телефона.

В этом наборе данных есть 21 функция (набор данных с множеством функций):

  • id: ID
  • battery_power: общая энергия, которую батарея может хранить за один раз, измеряется в мАч.
  • синий: есть Bluetooth или нет
  • clock_speed: скорость, с которой микропроцессор выполняет инструкции
  • dual_sim: поддерживает две SIM-карты или нет
  • fc: мегапиксели фронтальной камеры
  • four_g: есть 4G или нет
  • int_memory: внутренняя память в гигабайтах
  • m_dep: Мобильная глубина в см
  • mobile_wt: вес мобильного телефона.
  • n_cores: количество ядер процессора
  • ПК: мегапиксели основной камеры
  • px_height: высота разрешения в пикселях
  • px_width: ширина разрешения в пикселях
  • ram: оперативная память в мегабайтах
  • sc_h: высота экрана мобильного телефона в см
  • sc_w: Ширина экрана мобильного телефона в см
  • talk_time: максимальное время работы от одного заряда батареи, когда вы
  • three_g: есть 3G или нет
  • touch_screen: есть сенсорный экран или нет
  • Wi-Fi: есть Wi-Fi или нет

Использовать:

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

Прикладные модели:

Введение этого проекта:

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

Цель проекта: использовать обучающий набор данных для маркировки тестового набора данных.

Примечание. Убедитесь, что два набора данных близки по описанию, т. е. диапазон изменений каждой функции должен быть одинаковым в обоих наборах данных[4].

Шаг 1:

Загрузить данные

Шаг 2

Визуализация и анализ данных

Как оперативка зависит от цены?

Внутренняя память и ценовой диапазон

Процент телефонов, поддерживающих 3G

Процент телефонов, поддерживающих 4G

Мощность батареи в сравнении с ценовым диапазоном

Количество телефонов в сравнении с мегапикселями фронтальной и основной камеры

Мобильный вес и ценовой диапазон

Время разговора и ценовой диапазон

Шаг 3

Определение массивов x и y

Разделение данных

Шаг 4

Создание и обучение модели линейной регрессии

Результат оценки модели линейной регрессии составляет 0,913280148885276.

Создание и обучение модели KNN

Результат оценки модели KNN составляет 0,9212121212121213.

Метод локтя Для оптимального значения K

График Коэффициент ошибок в зависимости от значения K

Создание и обучение модели логистической регрессии

Результат оценки модели логистической регрессии составляет 0,6181818181818182.

Создание и обучение модели дерева решений

Результат оценки модели дерева решений составляет 0,8196969696969697.

Создание и обучение модели случайного леса

Результат оценки модели случайного леса составляет 0,8575757575757575.

Создание и обучение модели SVM

Выход модели SVM, оценка точности составляет 0,9651515151515152.

Наконец, алгоритмы SVM, KNN и линейной регрессии показали лучшие результаты.

Шаг 5

Результаты для линейной регрессии

Оценка линейной регрессии

Mean Absolute Error: 0.27023843059925123
Mean Squared Error: 0.10284763323854826
Root Mean Squared Error: 0.3206986642294418
R2 Score: 0.9132801488185276

Результаты для КНН

Классификационный отчет КНН

Матрица путаницы KNN

Тепловая карта КНН

Результаты для SVM

Отчет о классификации SVM

Тепловая карта SVM

Так как SVM имеет наибольшую точность (0,97%), мы выбираем его для прогнозирования и создания меток в свойстве predicted_price.

Шаг 6

Прогнозирование цены тестового набора данных с использованием SVM для прогнозирования

Импорт тестового набора данных

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

Модель

Выход модели SVM, оценка точности составляет 0,9651515151515152.

Прогнозируемый ценовой диапазон

Ярлыки, созданные в функции предсказания_цены

array([3, 3, 2, 3, 1, 3, 3, 1, 3, 0, 3, 3, 0, 0, 2, 0, 2, 1,  3, 2, 1, 3, 1, 1, 3, 0, 2, 0, 3, 0, 2, 0, 3, 0, 0, 1, 3, 1,  2, 1, 1, 2, 0, 0, 0, 1, 0, 3, 1, 2, 1, 0, 3, 0, 3, 1, 3, 1,  1, 3, 3, 3, 0, 1, 1, 1, 2, 3, 1, 2, 1, 2, 2, 3, 3, 0, 2, 0, 2, 3, 0, 3, 3, 0, 3, 0,  3, 1, 3, 0, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 0, 3, 0, 2,  0, 1, 2, 3, 3, 3, 1, 3, 3, 3, 3, 2, 3, 0, 0, 3, 2, 1, 2, 0,  3, 2, 3, 2, 0, 2, 2, 1, 3, 1, 1, 0, 3, 2, 1, 2, 1, 2, 2, 3,  3, 2, 2, 3, 2, 3, 1, 0, 3, 2, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3,  1, 0, 3, 0, 0, 0, 2, 1, 0, 1, 0, 0, 1, 2, 1, 0, 0, 1, 1, 2,  2, 1, 0, 0, 0, 1, 0, 3, 1, 0, 2, 2, 3, 3, 1, 2, 3, 2, 3, 2,  2, 1, 1, 0, 1, 2, 0, 2, 3, 3, 0, 2, 0, 3, 2, 3, 3, 1, 0, 1,  0, 3, 0, 1, 0, 2, 2, 1, 3, 1, 3, 0, 3, 1, 2, 0, 0, 2, 1, 3,  3, 3, 1, 1, 3, 0, 0, 2, 3, 3, 1, 3, 1, 1, 3, 2, 1, 2, 3, 3,  3, 1, 0, 1, 2, 3, 1, 1, 3, 2, 1, 3, 0, 1, 2, 1, 0, 3, 2, 3,  3, 2, 1, 3, 3, 2, 3, 1, 2, 1, 2, 0, 2, 3, 1, 0, 0, 3, 0, 3,  0, 1, 2, 0, 2, 3, 1, 3, 2, 2, 1, 2, 0, 0, 0, 1, 3, 2, 0, 0,  0, 3, 2, 0, 2, 3, 1, 2, 2, 2, 3, 1, 3, 3, 1, 2, 2, 3, 3, 0,  3, 0, 3, 1, 3, 1, 3, 3, 0, 1, 0, 3, 1, 3, 2, 3, 0, 0, 0, 0,  2, 0, 0, 2, 2, 1, 2, 2, 2, 0, 1, 0, 0, 3, 2, 0, 3, 1, 2, 2,  1, 2, 3, 1, 1, 2, 2, 1, 2, 0, 1, 1, 0, 3, 2, 0, 0, 1, 0, 0,  1, 1, 0, 0, 0, 2, 2, 3, 2, 3, 0, 3, 0, 3, 0, 1, 1, 0, 2, 0,  3, 2, 3, 3, 1, 3, 1, 3, 1, 3, 2, 0, 1, 2, 1, 1, 0, 0, 0, 1,  2, 1, 0, 3, 2, 0, 2, 2, 0, 0, 3, 1, 2, 0, 2, 3, 3, 0, 3, 0,  2, 3, 3, 3, 0, 2, 0, 2, 3, 0, 1, 1, 0, 0, 1, 1, 1, 3, 3, 3,  2, 3, 1, 2, 2, 3, 3, 3, 2, 0, 2, 1, 2, 2, 1, 0, 2, 2, 0, 0,  0, 3, 1, 0, 2, 2, 2, 0, 3, 1, 2, 2, 1, 3, 0, 2, 3, 0, 1, 1,  3, 3, 2, 1, 2, 3, 2, 0, 3, 1, 2, 0, 3, 3, 1, 2, 2, 2, 3, 0,  1, 2, 3, 1, 3, 2, 3, 1, 1, 0, 0, 3, 1, 0, 3, 2, 3, 2, 1, 3,  3, 3, 2, 3, 3, 1, 2, 0, 2, 2, 3, 1, 0, 1, 1, 2, 2, 2, 0, 0,  2, 2, 3, 2, 0, 2, 1, 3, 3, 0, 1, 3, 0, 2, 1, 1, 0, 0, 2, 1,  0, 1, 1, 2, 2, 0, 2, 2, 1, 0, 3, 0, 0, 3, 2, 0, 0, 1, 0, 0,  3, 0, 3, 1, 3, 1, 1, 3, 3, 0, 1, 1, 3, 2, 2, 2, 0, 3, 0, 2,  0, 2, 0, 1, 1, 1, 1, 2, 1, 3, 1, 3, 2, 2, 1, 3, 2, 0, 2, 2,  0, 3, 3, 0, 2, 1, 1, 2, 0, 3, 2, 0, 3, 2, 3, 0, 0, 3, 0, 2,  2, 3, 2, 2, 2, 2, 1, 2, 3, 0, 1, 0, 1, 2, 1, 0, 0, 1, 0, 0,  3, 0, 1, 2, 0, 1, 1, 1, 3, 0, 3, 2, 3, 0, 0, 1, 2, 2, 1, 0,  1, 2, 0, 1, 1, 0, 0, 3, 3, 0, 3, 1, 1, 3, 0, 1, 0, 2, 1, 0,  3, 1, 0, 3, 1, 1, 0, 3, 3, 3, 2, 3, 0, 3, 2, 0, 0, 0, 3, 3,  2, 0, 2, 1, 3, 0, 0, 2, 2, 0, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1,  2, 1, 0, 2, 2, 0, 2, 0, 0, 0, 0, 2, 3, 3, 3, 0, 1, 2, 1, 1,  0, 0, 2, 1, 0, 2, 0, 3, 2, 2, 1, 2, 0, 2, 1, 3, 0, 0, 3, 2,  3, 0, 0, 2, 3, 3, 1, 2, 2, 1, 0, 0, 3, 3, 0, 3, 0, 0, 0, 2,  2, 1, 2, 0, 3, 2, 1, 2, 3, 3, 0, 1, 1, 2, 1, 2, 2, 0, 1, 3,  1, 1, 3, 0, 2, 3, 2, 1, 1, 1, 3, 3, 0, 2, 3, 0, 2, 3, 2, 2,  2, 3, 2, 0, 1, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 1, 1, 1, 3, 1,  0, 1, 2, 3, 1, 0, 0, 3, 2, 2, 3, 0, 3, 3, 2, 1, 3, 0, 1, 3,  1, 1, 1, 1, 3, 2, 0, 3, 0, 2, 3, 0, 3, 1, 3, 3, 1, 0, 2, 3,  1, 0, 2, 1, 2, 1, 2, 0, 2, 2, 0, 2, 3, 2, 3, 0, 2, 1, 1, 2,  2, 3, 3, 0, 2, 1, 2, 1, 3, 1, 1, 3, 0, 1, 0, 0, 3, 3, 2, 0,  0, 0, 0, 3, 2, 3, 3, 0, 0, 2, 1, 0, 2, 2], dtype=int64)

Шаг 7

Добавление прогнозируемой цены в набор данных test.csv

мы добавляем функцию price_range в тестовый набор данных и, наконец, помечаем тестовый набор данных.

Вывод: Алгоритм SVM с точностью 0,97% показал лучшие результаты. Наша цель в этом практическом проекте состояла в том, чтобы пометить набор тестовых данных обучающим набором данных. Это помогает руководству производства телефонов отбрасывать бесполезные данные и проверять реальные данные. SVM — это алгоритм, используемый для оптимизации. Этот алгоритм хорошо работает, когда речь идет об оптимизации в пространстве и измерениях. Кроме того, если у нас есть наборы данных с большим количеством функций, алгоритм SVM также является лучшим. В рыночно-ориентированных проектах, которые смотрят на проблему с разных сторон и в продуктах разные параметры, алгоритм SVM более эффективен и его лучше учитывать[5].

[1] https://www.datarobot.com/wiki/feature/

[2] https://www.geeksforgeeks.org/ml-introduction-data-machine-learning/

[3] https://www.statology.org/high-Dimension-Data/

[4] https://www.kaggle.com/code/parisanahmadi/ml-mobile-price-classification-svm-0-96-acc/notebook

[5] https://github.com/parisa-ahmadi/DataScience-MachineLearning-Projects/blob/main/ML-mobile-price-Classification-SVM%200.96%25%20Acc.ipynb

[6] https://www.kaggle.com/search?q=mobile+price+classification+in%3Anotebooks

Сценаристы: Парисан Ахмади и Хирад Тайвар.

Контакт Париж: Medium, Kaggle

Контакт Hirad: Medium, Kaggle