Предварительная обработка данных – это метод интеллектуального анализа данных, который включает преобразование необработанных данных в понятный формат. Реальные данные часто бывают неполными, непоследовательными и/или в них отсутствуют определенные модели поведения или тенденции, а также может содержать много ошибок. Предварительная обработка данных — проверенный метод решения таких проблем. Он включает в себя очистку данных и заполнение пропущенных значений. Нам приходится иметь дело с обоими типами данных, независимо от того, являются ли данные числовыми или категориальными.
В статистике линейная регрессия — это линейный подход к моделированию связи между скалярным откликом (или зависимой переменной) и одной или несколькими независимыми переменными (или независимыми переменными). Случай с одной независимой переменной называется простой линейной регрессией.
Регрессия использует историческую взаимосвязь между независимой и зависимой переменной для прогнозирования будущих значений зависимой переменной. Предприятия используют регрессию для прогнозирования таких вещей, как будущие продажи, курсы акций, обменные курсы валют и прирост производительности в результате программы обучения.
Пример следующий:
import pandas as pd import numpy as np from sklearn.impute import SimpleImputer from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt dataset = pd.read_csv(“Salary_Data.csv”) x = dataset.iloc[:, :-1].values y = dataset.iloc[:, -1].values imp = SimpleImputer(missing_values=np.nan, strategy=”mean”) x = imp.fit_transform(x) y = y.reshape(-1, 1) y = imp.fit_transform(y) y = y.reshape(-1) # Splitting the dataset into the Training set and Test set x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0) # Regression reg = LinearRegression() reg.fit(x_train, y_train) # for predict the last values y_predict = reg.predict(x_test) # Visualize the Training Data plt.scatter(x_train, y_train, color=”red”) plt.plot(x_train, reg.predict(x_train), color=”blue”) plt.title(“Linear Regression Salary vs Experience”) plt.xlabel(“Experience in Years”) plt.ylabel(“Salary”) plt.show() # Visualize the Testing Data plt.scatter(x_test, y_test, color=”red”) plt.plot(x_train, reg.predict(x_train), color=”blue”) plt.title(“Testing Linear Regression Salary vs Experience”) plt.xlabel(“Experience in Years”) plt.ylabel(“Salary”) plt.show()
Это дает следующий результат для обучения и тестирования:
Предварительная обработка данных категориального набора данных
Категорические переменные представляют типы данных, которые можно разделить на группы. Примерами категориальных переменных являются раса, пол, возрастная группа, страна и уровень образования. Мы будем использовать технику OneHotEncoder для кодирования категориальных данных в числовой форме.
Набор данных будет таким:
import pandas as pd import numpy as np from sklearn.impute import SimpleImputer from sklearn.preprocessing import LabelEncoder, OneHotEncoder from sklearn.compose import ColumnTransformer # Data pre-processiing for categorical data cat_dataset = pd.read_csv(“Data.csv”) xx = pd.DataFrame(cat_dataset.iloc[:, :-1].values) yy = pd.DataFrame(cat_dataset.iloc[:, -1].values) # Dealing with missing values imp = SimpleImputer(missing_values=np.nan, strategy=”mean”) imp = imp.fit(xx.values[:, 1:3]) xx.values[:, 1:3] = imp.transform(xx.values[:, 1:3]) # Dealing with categorical data ct = ColumnTransformer( [(‘one_hot_encoder’, OneHotEncoder(), [0])], # The column numbers to be transformed (here is [0] but can be [0, 1, 3]) remainder=’passthrough’ # Leave the rest of the columns untouched ) xx = np.array(ct.fit_transform(xx), dtype=np.float) labelencoder_yy = LabelEncoder() yy = labelencoder_yy.fit_transform(yy)
Выходной набор данных будет таким:
Пожалуйста, подпишитесь на мою учетную запись Github для получения другой полезной информации о машинном обучении.
Счастливого обучения:’)