머신러닝

Multiple_Linear_Regression으로 회사의 이익 예측하기

728x90

캘리포니아에 있는 회사 중 연구개발비는 210,000달러, 운영비는 170,000달러, 마케팅비는 500,000달러를 쓰는 회사가 있다. 이 회사는 얼마의 수익을 낼 것인지 예측해보자.

 

 

R&D Spend / Administration / Marketing Spend / State Profit의 다수의 컬럼들을 가진 데이터를 Multiple_Linear_Regression을 이용해 수익을 예측하는 머신러닝 모델으로 만들겠습니다.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

df = pd.read_csv('50_Startups.csv.txt')

df.head() # df의 데이터 확인

X = df.iloc[:,0:3+1]
y = df['Profit']

X.head()
y.head()

# state컬럼의 데이터를 확인하여 one-hot encoding 시행
df['State'].unique() 

ct = ColumnTransformer([('encoder', OneHotEncoder(),[3])], remainder= 'passthrough')
X = ct.fit_transform(X)

#학습을 위해 train_set, test_set으로 나눔
X_train, X_test, y_train, y_test =train_test_split(X,y, test_size=0.2, random_state = 7)

regressor = LinearRegression()

regressor.fit(X_train,y_train) # 학습

y_pred = regressor.predict(X_test) # 예측

y_test=y_test.values

((y_test - y_pred)**2).mean()    ## MSE로 모델의 품질 성능을 확인

#캘리포니아에 있는 회사중
#연구개발비는 210,000달러, 운영비는 170,000달러, 마케팅비는 500,000달러를 쓰는 
#회사는 얼마의 수익을 낼 것인가?

new_data = np.array([1,0,0 , 210000,170000,500000 ]).reshape(1,-1)
#state 컬럼을 one-hot encoding 했기 때문에 캘리포니아는 [1,0,0]을 입력한다.

regressor.predict(new_data)

결과값은?

 

728x90

'머신러닝' 카테고리의 다른 글

SVM - Support Vector Machine  (0) 2021.04.01
K-NN  (0) 2021.04.01
Logistic Regression의 개념과 구매 여부 분류 하기  (0) 2021.03.29
Linear_Regression  (0) 2021.03.26