반응형
간단히 설명하면
기존에 있는 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값을 예측해 보았습니다.
반응형
'인공지능' 카테고리의 다른 글
경험적 탐색(휴리스틱 탐색, 최고 우선 탐색, A-star)으로 8-puzzle 해결법, 길 찾기 원리 | 유찬맨 | (4) | 2022.04.15 |
---|---|
8-puzzle 문제 트리(깊이 우선 탐색, 너비 우선 탐색)으로 해결법 (0) | 2022.04.15 |
댓글