Набор данных 1000_companies
Набор данных 1000_companies содержит пять столбцов: расходы на исследования и разработки, расходы на маркетинг, расходы на администрирование, состояние и прибыль для 1000 компаний в США. В то время как переменная местоположения является категориальной по своей природе, остальные являются числовыми. Этот набор данных идеально подходит для алгоритма регрессии.
- Расходы на НИОКР.
- Расходы на маркетинг.
- Административные расходы.
- Состояние.
Что такое регресс?
Регрессия — это статистическая модель, используемая для прогнозирования взаимосвязи между независимыми и зависимыми переменными — в машинном обучении независимые переменные называются «признаками», тогда как зависимая переменная называется «меткой». Регрессия используется для ответа на такие вопросы, как «сколько?» и «сколько?» Например, сколько денег мы могли бы заработать? Вообще говоря, существует три типа проблем регрессии.
- Одиночная линейная: одна функция, линейно связанная с меткой.
- Одиночный нелинейный: один объект, не связанный линейно с меткой.
- Многофункциональный: более одной функции, но только один ярлык.
В этом посте я обучаю алгоритм регрессии, используя несколько функций из набора данных 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
Давайте разберемся с моделью
Хотя для улучшения этой модели требуется дополнительная работа — например, увеличение количества функций в наборе данных — эту модель можно использовать для прогнозирования предполагаемой прибыли от исследований и разработок, расходов на маркетинг, администрирования и местоположения.