Линейная регрессия — это мощный статистический метод, который широко используется в различных областях, таких как финансы, экономика и инженерия, для моделирования связи между зависимой переменной и одной или несколькими независимыми переменными.
Однако перед тестированием данных в модели линейной регрессии важно преобразовать и предварительно обработать данные, чтобы повысить точность и надежность модели.
В этой статье мы обсудим 11 самых популярных способов преобразования данных перед их тестированием в модели линейной регрессии, используя примеры Python для демонстрации каждого метода. Используя эти методы, вы можете оптимизировать свои данные для линейного регрессионного анализа и делать более точные прогнозы.
1. Нормализация
Нормализация — это метод, который используется для преобразования числовых данных в среднее значение, равное 0, и стандартное отклонение, равное 1. Это можно сделать с помощью класса StandardScaler в библиотеке scikit-learn.
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
2. Преобразование журнала
Логарифмическое преобразование — это метод, который используется для преобразования искаженных данных в более нормальное распределение. Это можно сделать с помощью библиотеки numpy.
import numpy as np X = np.log(X)
3. Горячее кодирование
Горячее кодирование — это метод, который используется для преобразования категориальных данных в числовые данные. Это можно сделать с помощью библиотеки pandas.
import pandas as pd df = pd.get_dummies(df, columns=['color'])
4. Масштабирование функций
Масштабирование признаков — это метод, который используется для масштабирования числовых данных до заданного диапазона. Это можно сделать с помощью класса MinMaxScaler в библиотеке scikit-learn.
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler(feature_range=(0, 1)) X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
5. Обработка недостающих данных
Отсутствующие данные можно обработать, вменив отсутствующие значения среднему, медиане или моде неотсутствующих данных. Это можно сделать с помощью класса SimpleImputer в библиотеке scikit-learn.
from sklearn.impute import SimpleImputer imputer = SimpleImputer(strategy='mean') X = imputer.fit_transform(X)
6. Анализ основных компонентов (PCA)
PCA — это метод, который используется для уменьшения количества измерений в наборе данных. Это можно сделать с помощью класса PCA в библиотеке scikit-learn.
from sklearn.decomposition import PCA pca = PCA(n_components=2) X = pca.fit_transform(X)
7. Удаление выбросов
Выбросы можно удалить с помощью метода межквартильного диапазона (IQR) или метода Z-оценки.
Q1 = df.quantile(0.25) Q3 = df.quantile(0.75) IQR = Q3 - Q1 df = df[~((df < (Q1 - 1.5 * IQR)) |(df > (Q3 + 1.5 * IQR))).any(axis=1)]
8. Масштабирование до единичной длины
Масштабирование до единичной длины — это метод, который используется для масштабирования данных таким образом, чтобы величина каждой функции равнялась 1. Это можно сделать с помощью класса Normalizer в библиотеке scikit-learn.
from sklearn.preprocessing import Normalizer scaler = Normalizer() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
9. Полиномиальные функции
Полиномиальные функции — это дополнительные функции, которые генерируются путем возведения исходных функций в степень. Это можно сделать с помощью класса PolynomialFeatures в библиотеке scikit-learn.
from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X = poly.fit_transform(X)
10. Биннинг
Биннинг — это метод, который используется для преобразования числовых данных в категориальные данные. Это можно сделать с помощью библиотеки pandas.
import pandas as pd bins = [0, 18, 30, 50, 80] labels = ['Youth', 'Young Adults', 'Middle-Aged Adults', 'Elderly Adults'] df['AgeGroup'] = pd.cut(df['Age'], bins=bins, labels=labels)
11. Выбор функции
Выбор объектов — это метод, который используется для выбора наиболее важных объектов в наборе данных. Это можно сделать с помощью класса SelectKBest в библиотеке scikit-learn.
from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_regression skb = SelectKBest(score_func=f_regression, k=5) X = skb.fit_transform(X, y)
Эти 11 методов можно использовать для преобразования и предварительной обработки данных перед тестированием в любой модели линейной регрессии. Используя эти методы, вы можете повысить точность и надежность своих моделей линейной регрессии и делать более точные прогнозы.
Спасибо, что прочитали эту статью, и оставайтесь на связи с Ганшьямом Савалией, чтобы узнать больше таких полезных статей.