본문 바로가기
scikit-learn

Scikit-Learn(사이킷런) 코드 완벽 분석 - Linear Regression csv 파일 이용하기

by 지식광부키우기 2019. 10. 24.

 

Scikit learn의 예시가 대부분 데이터를 만들거나 내장 데이터셋을 이용하기 때문에

 

실제 csv파일을 가지고 ML 예제를 다뤄보겠습니다.

 

 

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
%matplotlib inline

 

필요한 모듈을 가져옵니다.

 

 

그림1

 

내장 데이터셋의 디렉토리를 찾아 csv파일을 찾고 저장을 했는데 처리가 필요할 거 같습니다.

 

 

그림2

 

깔끔하게 정리해주고 X_2로 저장했습니다.

 

 

diabetes_X = pd.read_csv('X_2.csv',  encoding='utf-8')
diabetes_X.head()

그림3

 

pandas의 Data Frame 형태로 csv파일을 불러오고 diabetes_X 변수에 할당했습니다.

 

diabetes_X.head()로 맨 위 다섯 줄만 나타냅니다.

 

 

diabetes_X = pd.read_csv('X_2.csv',  encoding='utf-8', usecols=["X_3"])
diabetes_X

그림4

 

Simple linear regression 모델을 만들기 때문에 usecols=["X_3] 옵션을 추가해 변수 하나만 취하고 diabetes_X에 할당했습니다. 

 

 

 

diabetes_y = pd.read_csv('y.csv',  encoding='utf-8')
diabetes_y.head()

그림5

 

y도 마찬가지로 csv파일을 불러와서 diabetes_y에 할당했습니다. 

 

diabetes_y.head()로 맨 위 5줄만 나타냈습니다.

 

 

그림6

 

원래 y.csv 파일입니다.

 

 

이제 모든 환경이 갖추어졌습니다. 

 

나머지는 아래와 동일합니다. 

 

2019/10/16 - [scikit-learn] - Scikit-Learn(사이킷런) 코드 완벽 분석 - Linear Regression 내장 데이터셋

 

Scikit-Learn(사이킷런) 코드 완벽 분석 - Linear Regression 내장 데이터셋

# Code source: Jaques Grobler # License: BSD 3 clause 코드 소스와 저작권은 위와 같음을 밝힙니다. import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sk..

bizzengine.tistory.com

 

 

diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)

# Make predictions using the testing set
diabetes_y_pred = regr.predict(diabetes_X_test)

# The coefficients
print('Coefficients: \n', regr.coef_)
# The mean squared error
print("Mean squared error: %.2f"
      % mean_squared_error(diabetes_y_test, diabetes_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))

# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test,  color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)

plt.xticks(())
plt.yticks(())

plt.show()

그림7

 

나머지 코드를 똑같이 진행하였고 결과 역시 같음을 확인할 수 있습니다. 

댓글