인공지능

간단하게 파이썬(python) 사이킷런(sklearn)을 사용하여 선형회귀 모델 제작하기 - 유찬맨

유찬맨 2021. 8. 4. 04:35
반응형

간단히 설명하면 

기존에 있는  x,y 값을 훈련 후

새로운 x값이 입력되면 y값을 예측해 알려주는

간단한 선형 회귀 모델이다.

import numpy as np
from sklearn.linear_model import LinearRegression

xdata=np.array([5,-15,7,-7,-11,3,-9,1,-1,11,9,-13,13,-3,-5]) #설명 변수
ydata=np.array([18,-82,28,-42,-62,8,-52,-2,-12,48,38,-72,58,-22,-32]) #목표변수

train_input=xdata
train_target=ydata

train_input = train_input.reshape(-1,1) 
train_target = train_target.reshape(-1,1)

lr = LinearRegression()

lr.fit(train_input,train_target) 


x=[-11,-4,-9,2,-10,-2,0,-3,1,-6,-7,-5,-8,-1]
y=[]
for i in range(len(x)):
    y.append(lr.predict([[x[i]]])) 


print("새로운 데이터(x)에 대한 목표값(y)는  ",end="") 
for i in range(len(y)):
    for j in range(len(y[i])):
        print(float(y[i][j]),end="  ")
print("입니다")

 

 

터미널에서 라이브러리를 설치해 준다.

교육용으로 많이 사용되는 사이킷런을 사용하였다,

pip install numpy
pip install sklearn

 

 

 

xdata,ydata에 훈련시킬 값을 넣어준다.

xdata=np.array([5,-15,7,-7,-11,3,-9,1,-1,11,9,-13,13,-3,-5])
ydata=np.array([18,-82,28,-42,-62,8,-52,-2,-12,48,38,-72,58,-22,-32])

 

그 후 값을 2차원 배열로 변환합니다.

train_input=xdata
train_target=ydata

train_input = train_input.reshape(-1,1)
train_target = train_target.reshape(-1,1)

 

2차원 배열 값은 선형회귀 모델에 훈련시킵니다.

lr = LinearRegression()

lr.fit(train_input,train_target)

 

새로운 x값을 입력해주고

예측된 y값을 리스트에 추가 시켜줍니다.

x=[-11,-4,-9,2,-10,-2,0,-3,1,-6,-7,-5,-8,-1]
y=[] 
for i in range(len(x)):
    y.append(lr.predict([[x[i]]]))

 

 

 

결과 값을 깔끔하게 출력해 줍니다.

print("새로운 데이터(x)에 대한 목표값(y)는  ",end="")
for i in range(len(y)):
    for j in range(len(y[i])):
        print(float(y[i][j]),end="  ")
print("입니다")

 

사이킷런 선형회귀 모델을 이용하여 

y값을 예측해 보았습니다.

반응형