선형 회귀

컴백이 뭐예요?
회귀는 모델링과 특징 분석과 변수 간의 관계를 분석하는 데 쓰이는 기술이다.
데이터 사전 처리의 개념인 피쳐 및 인수에 대한 자세한 내용은 다음 링크를 참조하십시오.
회귀에는 여러 가지 유형이 있는데 이 글에서 우리는 선형 회귀에만 주목한다.
무엇이 선형 회귀입니까?
이 회귀 모델은 선형 방정식을 관측 데이터에 의합하여 하나의 특징과 변수 간의 관계를 그리려고 한다.다음은 간단한 선형 회귀의 공식을 제시했다.
y = b0 + b1*x1
위에서 설명한 등식
Y는 변수로, 예를 들어 한 사람의 임금이 업무 경험에 따라 어떻게 변화하는지, 이런 상황에서 Y는 변수가 될 것이다.X는 자변량(특징 변수)이다. 간단한 선형 회귀에서 우리는 자변량을 가지고 있는데 이것은 변수로 인해 변화하는 변수이다.
b1은 자변량의 계수다.우리는 X의 변화와 Y의 변화가 정비례한다고 말할 수 없다. 이런 변화는 계수에 달려 있다.
b0은 상수항입니다.
X축과 Y축의 도형을 상상해 보자. X축은 경험계수를 보존하고 Y축은 임금계수(결과)를 보존한다. 혈소판계수가 나이에 따라 어떻게 달라지는지 알고 싶지 않다.만약 우리가 데이터에 집중해서 값을 그린다면, 우리는 도형에 무작위 그림을 얻을 수 있을 것이다.우리의 등식이 월급으로 바뀌었다=b0+b1*경험
상기 공식의 뜻은 우리가 그림에서 이 그림에 가장 적합한 선을 그릴 뿐이라는 것이다.각 땅에 가장 적합한 선을 긋기가 매우 어렵다.
무엇이 상수입니까?
상수는 직선과 변수 축이 교차하는 점이다.이는 나이가 0이 되면 방정식이 임금=b0+b1*경험으로 바뀌고 마지막에는 변하지 않는다는 것을 의미한다.가변 축을 통과하는 선의 위치입니다.이는 위의 그림에서 경험이 없는 사람이 3만 달러의 월급을 받는다는 것을 의미한다.

b1이란?
b1은 직선의 경사율이다. 직선이 가파를수록 월급을 더 많이 받는다.예를 들어 한 사람이 6년에서 7년의 업무 경험을 가지고 있다면 임금은 경사가 증가함에 따라 증가하고 경사가 작을수록 임금의 증가는 줄어든다.

어떻게 가장 좋은 의합선을 그립니까?
다음 그림과 같이 도표로 실제 관찰(그림)에서 모델(선)까지 수직선을 그립시다.

빨간색 더하기 번호는 이 사람의 임금을 표시한다.모델선(흑선)은 모델에 따라 이 인원이 임금에 있어 어디에 있어야 하는지, 모델에 따라 이 인원은 모델선에 매우 가까운 어딘가에 있어야 한다고 말한다. 예를 들어 실제 관찰치가 200000달러라면 모델에 따라 이 인원은 조금 낮고 모델선, 예를 들어 180000달러에 더 가까워야 한다.
빨간색의 가호는 yi이다. 이것은 실제 관찰이고 녹색의 가호는 yi이다. 이것은 모델에 관한 값(모델링 값)이기 때문에 녹색 허선은 사실상 그의 실제 수입과 그가 모델링된 수입 간의 차이이다.
가장 좋은 의합선을 얻기 위해서, 우리는 모든 녹색선을 제곱한 다음에, 이 제곱선의 합을 취하고, 그 다음에 최소치를 취한다.따라서 간단한 선형 회귀로 많은 녹색 선을 그렸다. 위의 그림에서 보듯이 이 제곱과 제곱을 계산할 때마다 그것을 어디에 저장한 다음에 이 값에서 가장 작은 값을 찾았다.그것은 최소 제곱을 찾았다.제곱과 가장 작은 직선이 가장 적합한 직선이 될 것이다.이것은 일반적인 최소 2승법이라고 불린다.
구현
연령과 월급, 연령은 특징 변수, 월급은 변수 등을 포함하는 데이터 집합을 고려해 보자.데이터 집합의 줄마다 다른 사람에게 대응한다.그래서 우리는 각자의 나이와 임금 데이터를 가지고 있다.그 결과 간단한 선형 회귀 모델을 구축하여 이 모델을 훈련시켜 나이와 임금 간의 상관성을 파악하고 나이에 따라 조직의 신입사원의 임금을 예측한다.
age     Salary
21      450000
45      4000000
18      300000
30      1000000
60      8000000
70      1000000
75      2000000
38      1500000
45      2000000
88      10000000

1단계: 라이브러리 가져오기:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
2단계: 데이터 세트 가져오기
dataset = pd.read_csv('./salary.csv')
X = dataset.iloc[:,:-1].values
Y = dataset.iloc[:,-1].values
3단계: 데이터 세트를 테스트 세트와 트레이닝 세트로 분할
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 1/3, random_state = 0)
4단계: 단순 선형 회귀 모델 구축 및 훈련
당신은 데이터 집합을 훈련 집합과 테스트 집합으로 나누었습니다. 우리는 훈련 집합 훈련 모델을 사용하고 테스트 집합 평가 모델을 사용할 것입니다.
당신은 간단한 선형 회귀 모델을 처음부터 실현할 수 있지만, 우리도 모델을 구축할 수 있는 라이브러리가 있습니다.우리는 scikit learn에서 선형 회귀를 가져올 수 있습니다.선형 모델.구축할 SLR은 LinearRegression 클래스의 예입니다.훈련 회귀 모델에 사용되는 방법은 합법적이다.
from sklearn.linear_model import LinearRegression
slr =  LinearRegression()
slr.fit(X_train, Y_train)
5단계: 모형으로 테스트 집합 결과를 예측한다
지금은 테스트에서 관찰 결과를 집중적으로 예측해야 한다.현재 SLR모델의 예측 결과를 얻은 후에 당신은 실제 결과와 예측된 임금 결과를 비교해야 합니다.예측 결과가 포함된 벡터는 y pred 변수에 저장됩니다.현재, y 테스트는 실제 임금을 포함하고, y pred는 예측 임금을 포함한다.다음 단계에서 우리는 결과를 비교할 것이다.
y_pred = slr.predict(X_test)
6단계: 시각화 훈련집 결과
우리는 matplotlib을 사용하여 아름다운 도형을 그릴 것이다.산점법은 데이터가 집중된 모든 관측점에 점을 그린다.그것은 x축 (나이) 의 값과 Y축 (월급) 의 값이 같은 두 개의 그룹을 필요로 한다.
그림을 분산한 후에 우리는 귀선을 그려야 한다. 이것은 가능한 한 실제 결과에 가까운 예측선이다.따라서 단반에서 예측 결과는 일직선을 따를 것이다.우리는 plot 함수를 호출해서 선을 그릴 것이다.
plt.scatter(X_train, Y_train, color = 'green')
plt.plot(X_train, slr.predict(X_train), color = 'blue')
plt.title('Salary vs Age (Training set)')
plt.xlabel('Age')
plt.ylabel('Salary')
plt.show()

단계 7: 시각 형상 테스트 세트 결과
현재, 우리는 테스트 데이터 집합에 대해 상술한 절차를 다시 실행할 것이다.그러나 단지 그리기 위해서 우리는 테스트 집합(진실 관찰)을 사용하지만 회귀선을 그리기 위해 우리는 테스트 집합만 사용할 것이다.우리가 얻은 회귀선은 유일한 방정식에서 나오기 때문에 테스트집의 예측 임금은 훈련집의 예측 임금과 같은 회귀선에서 나온다.
만약 우리가 테스트 집합을 사용한다면, 그것은 우리에게 완전히 다른 방정식을 줄 것이기 때문에, 이것은 취할 수 없는 것이다.
plt.scatter(X_test, Y_test, color = 'green')
plt.plot(X_train, slr.predict(X_train), color = 'blue')
plt.title('Salary vs Age (Training set)')
plt.xlabel('Age')
plt.ylabel('Salary')
plt.show()

이상의 관찰에 따르면 한 사람의 임금을 묻는 사람이 있을 때 시스템은 파란색 회귀선에 따라 이 값을 예측한다.내가 사용하는 데이터 집합은 무작위 값으로 정확하지 않으니 기업급 데이터 집합을 준비하거나 다운로드하여 예측한 단반선이 더욱 정확하도록 하세요.

좋은 웹페이지 즐겨찾기