'''
단순 회귀분석 : 독립변수, 종속변수가 한개인 경우
단항 : 1차 함수
다항 : 다차원 함수
다중 회귀분석 : 독립변수가 여러개, 종속변수는 한개
Y=ax1 + ax2 + ....anXn + b
'''
📌
# 독립변수, 종속변수 선택
X = ndf[['cylinders','horsepower','weight']] # 독립변수
Y = ndf["mpg"] # 종속변수
X.info()
# 데이터 훈련/ 테스트데이터 분리
X_train, X_test, Y_train, Y_test =\\
train_test_split(X,Y,test_size=0.3,random_state=10)
# 알고리즘 선택 : 선형 회귀분석
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
# 학습하기
lr.fit(X_train, Y_train)
# 예측하기
y_hat = lr.predic(X)
# 평가하기
r_square = lr.score(X,Y)
r_square
# 그래프
plt.figure(figsize=(10,5))
ax1 = sns.kdeplot(Y, label="Y")
ax2 = sns.kdeplot(y_hat, label="y_hat", ax=ax1)
plt.legend()
plt.show()

📌
###
# 단순 회귀분석의 간단한 예시
# 독립변수 1개, 종속변수 1개
x = [[10],[5],[9],[7]]
y = [100,50,88,75]
model = LinearRegression()
model.fit(x,y)
result = model.predict([[7],[8],[4],[6]])
result

# 다중 회귀분석의 간단한 예시
# 독립변수가 2개, 종속변수가 1개
x = [[10,3],[5,2],[9,3],[7,2]]
y = [100,50,88,80]
model = LinearRegression()
model.fit(x,y)
result = model.predict([[7,3],[8,2],[4,3],[6,3]])
result
