Набор данных 1000_companies

Набор данных 1000_companies содержит пять столбцов: расходы на исследования и разработки, расходы на маркетинг, расходы на администрирование, состояние и прибыль для 1000 компаний в США. В то время как переменная местоположения является категориальной по своей природе, остальные являются числовыми. Этот набор данных идеально подходит для алгоритма регрессии.

  • Расходы на НИОКР.
  • Расходы на маркетинг.
  • Административные расходы.
  • Состояние.

Что такое регресс?

Регрессия — это статистическая модель, используемая для прогнозирования взаимосвязи между независимыми и зависимыми переменными — в машинном обучении независимые переменные называются «признаками», тогда как зависимая переменная называется «меткой». Регрессия используется для ответа на такие вопросы, как «сколько?» и «сколько?» Например, сколько денег мы могли бы заработать? Вообще говоря, существует три типа проблем регрессии.

  1. Одиночная линейная: одна функция, линейно связанная с меткой.
  2. Одиночный нелинейный: один объект, не связанный линейно с меткой.
  3. Многофункциональный: более одной функции, но только один ярлык.

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

ОБУЧЕНИЕ АЛГОРИТМА РЕГРЕССИИ, ИСПОЛЬЗУЯ НЕСКОЛЬКО ФУНКЦИЙ ИЗ НАБОРА ДАННЫХ 1000_COMPANIES

Шаг 1. Откройте новое ядро ​​Python из папки, содержащей CSV-файл 1000_companies.

Шаг 2: Импортируйте необходимые библиотеки

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

Шаг 3. Получите доступ к набору данных 1000_companies

companies = pd.read_csv("1000_companies.csv")
companies.head(5)

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

Как показывает тепловая карта, существует значительная корреляция между четырьмя функциями и одной меткой.

sns.heatmap(companies.corr())

Шаг 5. Преобразуйте категориальную переменную (состояние) в числа.

from sklearn.preprocessing import OrdinalEncoder
ord_enc = OrdinalEncoder()
companies["State_Code"] = ord_enc.fit_transform(companies[["State"]])

Шаг 6. Удалите столбец «Состояние» и измените порядок фрейма данных.

companies.drop(['State'], axis = 1)
companies = companies[['R&D Spend', 'Administration', 'Marketing Spend', 'State_Code', 'Profit']]
companies.head(5)

Шаг 7: Выберите функции и метки

X = companies.iloc[:, :-1].values
y = companies.iloc[:, 4].values

Шаг 8: Случайным образом разделите данные на 20% на набор данных «Обучение» и набор данных «Тест».

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=0)

Шаг 9. Обучите алгоритм регрессии на части «Обучение» набора данных 1000_companies.

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)

Шаг 10: Предскажите прибыль, используя набор данных «Тест».

y_predict = regressor.predict(X_test)
y_predict

Шаг 11: Распечатайте коэффициенты и точку пересечения по оси Y модели (функции)

print(regressor.coef_)
print(regressor.intercept_)

Шаг 12. Просмотрите точность модели с помощью R2 Score.

from sklearn.metrics import r2_score
r2_score(y_test, y_predict)

Окончательная модель (в $)

Прибыль = (Расходы на НИОКР * 0,527) + (Администрирование * 0,844) + (Расходы на маркетинг * 0,106) + (Код штата * -0,0355) -51144,72

Давайте разберемся с моделью

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