기계 학습을위한 선형 회귀를 구현하는 방법은 무엇입니까?



이 기사에서는 다양한 용어를 사용한 기계 학습을위한 선형 회귀 개념과 선형 회귀를 구현하는 사용 사례를 다룹니다.

초점 결과를 예측하는 알고리즘을 사용하여 입력 및 출력 변수를 중심으로 회전합니다. 새로운 입력 변수가 그림에 나오는 경우. 선형 회귀 알고리즘 최고의 예측을 얻기 위해 매핑 함수를 근사화하는지도 학습 기술입니다. 이 기사에서는 기계 학습을위한 선형 회귀에 대해 알아 봅니다. 이 블로그에서는 다음 주제에 대해 설명합니다.

회귀 란 무엇입니까?

회귀의 주요 목표는 여러 속성 변수에서 종속 속성을 예측하는 효율적인 모델을 구성하는 것입니다. 회귀 문제는 출력 변수가 실수이거나 연속 값인 급여, 체중, 면적 등일 때입니다.





회귀는 주택, 투자 등과 같은 애플리케이션에서 사용되는 통계적 수단으로 정의 할 수도 있습니다. 이는 종속 변수와 여러 독립 변수 간의 관계를 예측하는 데 사용됩니다. 다양한 유형의 회귀 기법을 살펴 보겠습니다.

기계 학습의 예제 선형 회귀-Edureka

회귀 유형

다음은 회귀 유형입니다.



  1. 단순 선형 회귀
  2. 다항 회귀
  3. 지원 벡터 회귀
  4. 의사 결정 트리 회귀
  5. 랜덤 포레스트 회귀

단순 선형 회귀

가장 흥미롭고 일반적인 회귀 기법 중 하나는 단순 선형 회귀입니다. 여기에서 우리는 독립 변수를 기반으로 종속 변수의 결과를 예측하며 변수 간의 관계는 선형입니다. 따라서 선형 회귀라는 단어입니다.

파이썬에서 goto를 사용하는 방법

다항 회귀

이 회귀 기법에서는 원래 특성을 주어진 정도의 다항식 특성으로 변환 한 다음 회귀를 수행합니다.

지원 벡터 회귀

에 대한 회귀 또는 SVR의 경우 최대 데이터 포인트 수가 해당 마진 내에 있도록 최대 마진이있는 초평면을 식별합니다. 지원 벡터 기계 분류 알고리즘과 매우 유사합니다.



의사 결정 트리 회귀

에 회귀 및 회귀 모두에 사용할 수 있습니다. . 회귀의 경우 ID3 알고리즘 (Iterative Dichotomiser 3)을 사용하여 표준 편차를 줄여 분할 노드를 식별합니다.

랜덤 포레스트 회귀

랜덤 포레스트 회귀에서는 여러 의사 결정 트리 회귀의 예측을 앙상블합니다. 다양한 유형의 회귀에 대해 알았으므로 이제 간단한 선형 회귀를 자세히 살펴 보겠습니다.

선형 회귀 란 무엇입니까?

단순 선형 회귀는 독립 변수가 종속 변수와 선형 관계를 갖는 회귀 기법입니다. 다이어그램의 직선이 가장 적합한 선입니다. 단순 선형 회귀의 주요 목표는 주어진 데이터 포인트를 고려하고 가능한 최상의 방법으로 모델에 적합하도록 가장 적합한 선을 그리는 것입니다.

선형 회귀 알고리즘의 작동 방식으로 이동하기 전에 단순 선형 회귀의 몇 가지 중요한 용어를 살펴 보겠습니다.

선형 회귀 용어

다음 용어는 선형 회귀 알고리즘으로 이동하기 전에 숙지해야 할 중요합니다.

비용 함수

가장 적합한 선은 아래에 주어진 선형 방정식을 기반으로 할 수 있습니다.

  • 예측할 종속 변수는 Y로 표시됩니다.
  • y 축에 닿는 선은 절편 b로 표시됩니다.0.
  • 하나선의 기울기, x는 Y의 예측을 결정하는 독립 변수를 나타냅니다.
  • 결과 예측의 오류는 e로 표시됩니다.

비용 함수는 b에 대해 가능한 최상의 값을 제공합니다.0그리고 b하나데이터 포인트에 가장 적합한 선을 만듭니다. b에 대한 최상의 값을 얻기 위해이 문제를 최소화 문제로 변환하여 수행합니다.0그리고 b하나. 이 문제에서는 실제 값과 예측 값 사이의 오차가 최소화됩니다.

오류를 최소화하기 위해 위의 기능을 선택합니다. 오차 차이를 제곱하고 모든 데이터 포인트에 대한 오차를 합산합니다. 즉, 총 데이터 포인트 수를 나눕니다. 그런 다음 생성 된 값은 모든 데이터 포인트에 대한 평균 제곱 오차를 제공합니다.

MSE (Mean Squared Error)라고도하며 b의 값을 변경합니다.0그리고 b하나MSE 값이 최소로 설정되도록합니다.

경사 하강 법

선형 회귀를 이해하기위한 다음으로 중요한 용어는 다음과 같습니다. 경사 하강 법. b를 업데이트하는 방법입니다.0그리고 b하나MSE를 줄이기위한 값. 이것의이면에있는 아이디어는 b를 계속 반복하는 것입니다.0그리고 b하나MSE를 최소로 줄일 때까지

b를 업데이트하려면0그리고 b하나, 우리는 비용 함수에서 기울기를 가져옵니다. 이러한 기울기를 찾기 위해 b에 대한 편미분을 취합니다.0그리고 b하나. 이러한 편도 함수는 기울기이며 b의 값을 업데이트하는 데 사용됩니다.0그리고 b하나.

학습률이 낮을수록 최소값에 가까워 지지만 학습률이 높을수록 시간이 더 걸립니다. 걸리는 시간은 더 빠르지 만 최소값을 초과 할 가능성이 있습니다. 이제 선형 회귀 용어를 살펴 보았으므로 기계 학습을위한 선형 회귀의 몇 가지 장점과 단점을 살펴 보겠습니다.

장점과 단점

장점 단점
선형 회귀는 선형으로 분리 가능한 데이터에 대해 매우 잘 수행됩니다.종속 변수와 독립 변수 간의 선형성 가정
보다 쉽게 ​​구현, 해석 및 효율적인 교육종종 소음과 과적 합이 발생하기 쉽습니다.
차원 축소 기술, 정규화 및 교차 검증을 사용하여 과적 합을 매우 잘 처리합니다.선형 회귀는 특이 치에 매우 민감합니다.
또 하나의 이점은 특정 데이터 세트를 넘어서는 외삽입니다.다중 공선성에 취약

선형 회귀 사용 사례

  • 판매 예측

  • 위험도 분석

  • 가격 및 기타 요인을 예측하는 주택 응용 프로그램

  • 주가 예측, 투자 평가 등을위한 금융 애플리케이션

선형 회귀의 기본 개념은 종속 변수와 독립 변수 간의 관계를 찾는 것입니다. 가장 적은 오류로 결과를 예측할 수있는 최상의 피팅 라인을 얻는 데 사용됩니다. 연구 시간 및 기타 결정적인 요소와 관련하여 SAT 점수를 예측하는 것과 같은 단순한 실제 상황에서 선형 회귀를 사용할 수 있습니다.

이를 염두에두고 사용 사례를 살펴 보겠습니다.

사용 사례 – 선형 회귀 구현

프로세스는 다음 단계로 수행됩니다.

  1. 데이터로드
  2. 데이터 탐색
  3. 데이터 슬라이스
  4. 데이터 학습 및 분할
  5. 모델 생성
  6. 정확성 평가

선형 회귀를 구현하는 각 단계의 세부 사항을 살펴 보겠습니다.

1. 데이터로드

sklearn (scikit-learn) 데이터 세트 모듈에 이미있는 기본 당뇨병 데이터 세트로 시작하여 선형 회귀로 여정을 시작할 수 있습니다.

sklearn 가져 오기 데이터 세트에서 질병 = datasets.load_diabetes () print (disease)

산출:

2. 데이터 탐색

데이터로드가 끝나면 다음 코드를 사용하여 레이블을 확인하여 탐색을 시작할 수 있습니다.

print (disease.keys ())

산출:

위의 코드는 데이터 세트의 모든 레이블을 제공합니다. 그 후 데이터를 분할하여 끝에 선을 그릴 수 있습니다. 또한 모든 데이터 포인트를 사용할 것입니다. 지금은 데이터에서 열 2를 분리합니다.

import numpy as np disease_X = disease.data [:, np.newaxis, 2] print (disease_X)

산출:

이 단계 후에 데이터를 학습 및 테스트 세트로 분할합니다.

3. 데이터 분할

disease_X_train = disease_X [:-30] disease_X_test = disease_X [-20 :] disease_Y_train = disease.target [:-30] disease_Y_test = disease.target [-20 :]

다음 부분에는 모델 생성이 포함되며 여기에는 sklearn에서 linear_model 가져 오기가 포함됩니다.

4. 모델 생성

sklearn에서 import linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)

모델의 정확도를 평가하기 위해 scikit-learn의 평균 제곱 오차를 사용합니다.

5. 평가

정확도 = mean_squared_error (disease_Y_test, y_predict,) print (accuracy) weights = reg.coef_ intercept = reg.intercept_ print (weights, intercept)

산출:

그래프에서 데이터 포인트가 어떻게 보이는지 더 명확하게하기 위해 그래프도 플로팅하겠습니다.

import matplotlib.pyplot as plt plt.scatter (disease_X_test, disease_Y_test) plt.plot (disease_X_test, y_predict) plt.show ()

산출:

이 시나리오에서 더 정확한 모델을 얻으려면 열 2 대신 전체 데이터를 사용할 수 있습니다. 그러면 아래와 같은 정확도가 제공됩니다.

# 위의 코드를 약간 변경하고 플로팅 코드를 제거하여 오류를 방지하십시오. disease_X = disease.data

산출:

이것으로 기계 학습을위한 선형 회귀에 대해 배운이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'기계 학습을위한 선형 회귀'에 대한이 기사가 관련이있는 경우 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

질문이있는 경우 '기계 학습을위한 선형 회귀'의 댓글 섹션에있는 모든 질문을 자유롭게 물어 보시면 저희 팀이 기꺼이 답변 해 드리겠습니다.