컴공생 누르지 마세요! 컴공생 울어요.

[ML] HA1 part1 (1) Linear Regression with Startup dataset 본문

STUDY/기계학습

[ML] HA1 part1 (1) Linear Regression with Startup dataset

당도최고치악산멜론 2022. 12. 19. 14:08

📢 학교 수업에서 수행한 과제입니다.

 

HA1 part1은 Linear Regression, Logistice Regression, GDA를 이용한 practice이다.

이번 게시글에서는 startup dataset을 이용한 Linear Regression을 수행할 것이다.


0. 실행 환경

구글에서 제공하는 jupyter notebook인 구글 코랩을 이용하여 코드를 작성 및 실행하였다.

런타임 설정은 none으로, gpu를 사용하지 않아도 충분하다.

 

전체 코드는 다음 코랩 노트북을 참고하라.

 

https://colab.research.google.com/drive/1H7jp0YL4kWRYWgrkG9AS0t_p2TPatNWX?usp=sharing

 

HA1_part1.ipynb

Colaboratory notebook

colab.research.google.com


1. Linear regression with Startup dataset

우선 다음 명령어를 수행하여 startups.csv 데이터셋을 가져온다.

!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1IejcELv6fntdfsoVVU0TZdAC8VI1m9qi' -O startups.csv

가져온 데이터셋의 overview를 확인해보자.

import pandas as pd
df = pd.read_csv('startups.csv')
df.head()

startups.csv가 다음과 같은 5개의 feature로 이루어진 것을 볼 수 있다.

 

이제 data를 visualize해보자.

import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,4, figsize=(20,5))
ax[0].scatter(df['R&D Spend'], df['Administration'])
ax[0].set_title('R&D Spend vs Administration')
ax[1].scatter(df['R&D Spend'], df['Marketing Spend'])
ax[1].set_title('R&D Spend vs Marketing Spend')
ax[2].scatter(df['Administration'], df['Marketing Spend'])
ax[2].set_title('Administration vs Marketing Spend')
ax[3].scatter(df['R&D Spend'], df['Profit'])
ax[3].set_title('R&D Spend vs Profit')

 

이제 Linear Regresson을 이용해서 x (R&D Spend)와 y (Profit)에 대해 function을 fit해보자.

# use numpy
import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array(df['R&D Spend'])
y = np.array(df['Profit'])

# fitting by using Linear Regression
line_fitter = LinearRegression()
line_fitter.fit(X.reshape(-1, 1), y)

# perform prediction
y_pred = line_fitter.predict(X.reshape(-1, 1))

coefficients와 bias는 다음과 같다.

print('Coefficients: ', line_fitter.coef_)
print('Bias: ', line_fitter.intercept_)

이제 given data points에 대해 fitted line을 plot 해볼 것이다.

plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='orange')

plt.show

우리의 function이 x (R&D Spend)와 y (Profit)에 대해 잘 fit된 것을 확인할 수 있다.

Comments