Несколько дней назад, когда я проходил курс DS на сайте uaceit.com, я научился делать свой первый проект по науке о данных на Jupyter Notebook с использованием эффективного алгоритма машинного обучения, т. е. линейной регрессии. Я научился понимать данные и то, как мы можем связать их, чтобы получить лучшие и желаемые результаты. Линейную регрессию можно определить как «подход, который моделирует изменение одной или нескольких переменных-предикторов (скажем, x), что приводит к линейному изменению переменной ответа (y)».

Начнем шаг за шагом с нуля

ШАГ 1: ЧТЕНИЕ И УСТАНОВКА НАБОРА ДАННЫХ В ПРАВИЛЬНОМ ФОРМАТЕ

На первом этапе я импортировал библиотеку pandas для чтения набора данных с помощью функции read.csv(). Набор данных берется как ссылка в адресной переменной. Поскольку данные были необработанными, содержащими неименованные и неразделенные столбцы, они были преобразованы в удобочитаемую форму. Затем сохраняется как Dataset.csv на моем локальном компьютере.

ШАГ 2. ПРОВЕДЕНИЕ ИССЛЕДОВАТЕЛЬСКОГО АНАЛИЗА ДАННЫХ

EDA, обычно называемый исследовательским анализом данных, представляет собой своего рода статистическое исследование, которое проводится на наборах данных для определения основных характеристик и выдвижения гипотез по мере необходимости. Для этого нам нужна библиотека визуализации данных, т. е. морской , чтобы понять взаимосвязь между различными точками данных/предикторами. Функции Info() и describe() использовались для определения расположения точек распределения и диапазона набора данных. Поскольку график показал симметричный знак, видно, что предикторы линейно связаны с целевой переменной.

ШАГ 3. АНАЛИЗ СООТНОШЕНИЙ МЕЖДУ ЗНАЧЕНИЯМИ В НАБОРЕ ДАННЫХ

Чтобы визуализировать значения взаимосвязи(от -1 до 1) между предиктором и целевой переменной, мы используем функцию heat map() и функцию corr(). нашего фрейма данных, чтобы увидеть результаты.
1 означает =›идеальная положительная линейная зависимость
-1 означает =›идеальная отрицательная линейная зависимость
0 означает =›отсутствие связи вообще

Рассмотрим последнюю строку для лучшего понимания, MLDGP имеет самую высокую положительную линейную связь с целевой переменной (0,54), а GATS1p имеет самую высокую отрицательную линейную связь (-0,31).

ШАГ 4: МОДЕЛИРОВАНИЕ НАБОРА ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ЛИНЕЙНОЙ РЕГРЕССИИ

Для обучения и моделирования набора данных мы будем использовать библиотеку sklearnpython. Мы импортируем функции StandardScaler() и train_test_split() из подмодулей предварительной обработки и model_selection sklearn.

Набор данных разделен на 2 части для обучения:

X =› для отображения переменных функций (независимых)

Y =› для отображения переменной ответа (зависимой)

Здесь необходимо понимать еще одну важную концепцию Масштабирование. Мы используем метод масштабирования признаков, чтобы стандартизировать независимые переменные, присутствующие в наборе данных, в фиксированном диапазоне минимальных и максимальных значений от 0 до 1. Это делается с помощью функции StandardScaler().

Кроме того, train_test_split() разделит набор данных на два подмножества: 70% для обучения и 30% для модели тестирования.

После этого мы применим метод LinearRegression() из подмодуля выбора модели. Метод подгонки принимает 2 аргумента для обучения (ввод и вывод), поскольку контролируемое обучение дает прогнозы по сопоставлению ввода с выводом на основе случайно организованных обучающих наборов. Затем мы применим метод predict() для нашей модели, чтобы делать прогнозы.

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

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

Для линейной регрессии требуется, чтобы остатки были нормально распределены со средним значением 0. Остатки имеют одинаковую распределения для всех значений независимых переменных. Но здесь мы видим, что наши распределенные значения различаются, что означает, что модель необъективна, и нам нужно пересмотреть модель. Такие проблемы, как переобучение или множественная коллинеарность, ограничивают эффективность этого алгоритма.

Каждый раз, когда модель подбирается, она обучает случайное подмножество и дает разную оценку точности. Модель способна предсказать только от 40 до 60 % целевой переменной, что довольно мало. Короче говоря, тот факт, что остатки не были равны 0, повлиял на показатель точности модели. Вы можете найти ссылку на код в конце блога.

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

Другие алгоритмы, такие как KNN-регрессия, LASSO или регрессия хребта, также могут быть приспособлены к модели в качестве альтернативы для применения регуляризации к набору данных и повышения его точности. Чтобы узнать больше о линейной регрессии и ее ограничениях, вы можете перейти по ссылкам ниже.

А пока оставайтесь на связи, чтобы не пропустить новые истории анализа данных!

Хорошего дня :)

Источник:

Проект: — ›https://uaceit.com/courses/your-first-data-science-project/ &

— ›https://datatofish.com/multiple-linear-regression-python/

Линейная регрессия: https://en.wikipedia.org/wiki/Linear_regression

Репозиторий GITHUB: https://github.com/ToobaAhmedAlvi/1stDSproject