회귀 알고리즘-개요

회귀 소개

회귀는 또 다른 중요하고 널리 사용되는 통계 및 기계 학습 도구입니다. 회귀 기반 작업의 주요 목표는 주어진 입력 데이터에 대해 연속 숫자 값인 출력 레이블 또는 응답을 예측하는 것입니다. 출력은 모델이 학습 단계에서 학습 한 내용을 기반으로합니다. 기본적으로 회귀 모델은 입력 데이터 기능 (독립 변수) 및 해당 연속 숫자 출력 값 (종속 또는 결과 변수)을 사용하여 입력과 해당 출력 간의 특정 연관성을 학습합니다.

회귀 모델의 유형

회귀 모델은 다음 두 가지 유형이 있습니다-

Simple regression model − 이것은 데이터의 단일 일 변량 특성에서 예측이 형성되는 가장 기본적인 회귀 모델입니다.

Multiple regression model − 이름에서 알 수 있듯이이 회귀 모델에서 예측은 데이터의 여러 특징으로 구성됩니다.

Python에서 회귀 자 빌드

Python의 회귀 모델은 분류자를 구성한 것처럼 구성 할 수 있습니다. 기계 학습을위한 Python 라이브러리 인 Scikit-learn을 사용하여 Python에서 회귀자를 빌드 할 수도 있습니다.

다음 예에서는 데이터에 선을 맞추는 기본 회귀 모델, 즉 선형 회귀 분석을 구축 할 것입니다. 파이썬에서 회귀자를 만드는 데 필요한 단계는 다음과 같습니다.

1 단계 : 필요한 Python 패키지 가져 오기

scikit-learn을 사용하여 회귀자를 빌드하려면 필요한 다른 패키지와 함께 가져와야합니다. 다음 스크립트를 사용하여 가져올 수 있습니다.

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

2 단계 : 데이터 세트 가져 오기

필요한 패키지를 가져온 후 회귀 예측 모델을 구축하기위한 데이터 세트가 필요합니다. sklearn 데이터 세트에서 가져 오거나 요구 사항에 따라 다른 데이터를 사용할 수 있습니다. 저장된 입력 데이터를 사용할 것입니다. 다음 스크립트를 사용하여 가져올 수 있습니다.

input = r'C:\linear.txt'

다음으로이 데이터를로드해야합니다. 로드하기 위해 np.loadtxt 함수를 사용하고 있습니다.

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

3 단계 : 데이터를 학습 및 테스트 세트로 구성

따라서 보이지 않는 데이터에서 모델을 테스트해야하므로 데이터 세트를 학습 세트와 테스트 세트의 두 부분으로 나눌 것입니다. 다음 명령은 그것을 수행합니다-

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training

X_train, y_train = X[:training_samples], y[:training_samples]

X_test, y_test = X[training_samples:], y[training_samples:]

4 단계 : 모델 평가 및 예측

데이터를 훈련과 테스트로 나눈 후 모델을 구축해야합니다. 이를 위해 Scikit-learn의 LineaRegression () 함수를 사용할 것입니다. 다음 명령은 선형 회귀 객체를 만듭니다.

reg_linear= linear_model.LinearRegression()

다음으로 다음과 같이 훈련 샘플을 사용하여이 모델을 훈련합니다.

reg_linear.fit(X_train, y_train)

이제 드디어 테스트 데이터로 예측을해야합니다.

y_test_pred = reg_linear.predict(X_test)

5 단계 : 플롯 및 시각화

예측 후 다음 스크립트를 사용하여 플롯하고 시각화 할 수 있습니다.

Example

plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()

Output

위의 출력에서 ​​데이터 포인트 사이의 회귀선을 볼 수 있습니다.

6 단계 : 성능 계산

또한 다음과 같이 다양한 성능 메트릭을 사용하여 회귀 모델의 성능을 계산할 수 있습니다.

Example

print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

Output

Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

ML 회귀 알고리즘의 유형

가장 유용하고 인기있는 ML 회귀 알고리즘은 선형 회귀 알고리즘으로 두 가지 유형으로 더 나뉩니다.

  • 단순 선형 회귀 알고리즘

  • 다중 선형 회귀 알고리즘.

이에 대해 논의하고 다음 장에서 파이썬으로 구현할 것입니다.

응용

ML 회귀 알고리즘의 응용 프로그램은 다음과 같습니다.

Forecasting or Predictive analysis− 회귀 분석의 중요한 용도 중 하나는 예측 또는 예측 분석입니다. 예를 들어 GDP, 유가 또는 시간이 지남에 따라 변하는 정량적 데이터를 간단히 예측할 수 있습니다.

Optimization− 회귀를 통해 비즈니스 프로세스를 최적화 할 수 있습니다. 예를 들어, 매장 관리자는 고객의 방문 시간을 파악하기 위해 통계 모델을 만들 수 있습니다.

Error correction− 비즈니스에서 올바른 결정을 내리는 것은 비즈니스 프로세스를 최적화하는 것만 큼 중요합니다. 회귀는 이미 구현 된 결정을 수정하는 데있어 올바른 결정을 내리는 데 도움이 될 수 있습니다.

Economics− 경제학에서 가장 많이 사용되는 도구입니다. 회귀를 사용하여 공급, 수요, 소비, 재고 투자 등을 예측할 수 있습니다.

Finance− 금융 회사는 항상 위험 포트폴리오를 최소화하는 데 관심이 있고 고객에게 영향을 미치는 요인을 알고 싶어합니다. 이 모든 것은 회귀 모델의 도움으로 예측할 수 있습니다.