선형 회귀와 논리 회귀 안내

선형 회귀와 논리 회귀 안내

2022-06-04 last update

5 minutes reading Data Science
비록 기계 학습은 결코 새로운 일은 아니지만, 현재의 데이터는 그 어느 때보다 많으니, 이것은 최근의 유행에 도움이 된다.우리는 두 가지 유행하는 기계 학습 알고리즘인 선형 회귀와 논리 회귀, 수학과 실현을 연구할 것이다.

무엇이 선형 회귀입니까?


선형 회귀는 간단하고 효과적인 감독 기계 학습 알고리즘으로 연속 변수를 예측하는 데 쓰인다.선형 회귀는 입력 변수(해석 변수)와 출력 변수(응답 변수) 간의 차이를 확인하는 데 목적을 둔다.많은 선진적인 감독 기계 학습 알고리즘은 모두 선형 회귀의 개념을 바탕으로 한다.기계 학습 문제에서 선형 회귀는 연속 변수를 예측하는 데 자주 사용되는데 그 중에서 목표 변수와 특징 변수는 선형 관계를 가진다.
다음은 간단한 선형 회귀의 주요 구성 부분이다. 연속 입력 변수, 연속 응답 변수와 선형 회귀 가설을 만족시킨다.

선형 회귀 가정:

  • 입력 변수(x)는 목표 변수(y)와 선형 관계를 가진다.또한 입력 변수 계수는 서로 관련되어서는 안 된다.
  • 오차항은 평균 0 부근에 분포되어 있기 때문에 오차항의 기대치는 E(E)=0이다.
  • 선형 회귀는 어떻게 작동합니까?


    선형 회귀 모델은 가장 현저한 수량점의 직선을 통과하는 동시에 데이터 점 입력(x)과 응답(y)을 정한 상황에서 점부터 의합선 값까지의 제곱 거리(원가 함수)를 최소화하려고 한다.
    따라서 원가 함수는 결국 최소화된다.선형 회귀의 원가 함수는 일반적으로 균형 오차이다.

    회귀 방정식은 y=β1x+βo라고 쓰여 있다.
    용어 c는 절단 거리를 나타내고 m는 회귀선의 사율을 나타내며 x는 입력 변수를 나타내고 y는 응답 변수의 예측치를 나타낸다.
    우리는 기초 수학에서 직선은 두 개의 매개 변수로 확정된다는 것을 안다. 그것이 바로 사율과 간격이다.선형 회귀 알고리즘은 표준 편차를 최소화하기 위해 초기 파라미터를 선택하고 끊임없이 업데이트합니다.다음 그림은 회귀선(파란색), 편차(녹색), 데이터 점(빨간색)을 보여 줍니다.

    선형 회귀도 여러 개의 입력 변수로 확장할 수 있고 방법은 완전히 같다.다변수 직선 방정식은 다음과 같습니다.

    선형 회귀 프레젠테이션


    단일 입력 변수를 사용하여 목표 변수를 예측합시다.다음 예시와 데이터 집합은scikitlearn 공식 문서에서 나온 것입니다.scikitlearn은 기계 학습 모형을 개발하는 데 광범위하게 사용되는 라이브러리입니다.
    import matplotlib.pyplot as plt
    
    import numpy as np
    
    from sklearn import datasets, linear_model
    
    from sklearn.metrics import mean_squared_error, r2_score
    
    # Load the diabetes dataset
    
    diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
    
    # Use only one feature
    
    diabetes_X = diabetes_X[:, np.newaxis, 2]
    
    # Split the data into training/testing sets
    
    diabetes_X_train = diabetes_X[:-20]
    
    diabetes_X_test = diabetes_X[-20:]
    
    # Split the targets into training/testing sets
    
    diabetes_y_train = diabetes_y[:-20]
    
    diabetes_y_test = diabetes_y[-20:]
    
    # Create linear regression object
    
    regr = linear_model.LinearRegression()
    
    # Train the model using the training sets
    
    regr.fit(diabetes_X_train, diabetes_y_train)
    
    # Make predictions using the testing set
    
    diabetes_y_pred = regr.predict(diabetes_X_test)
    
    # The mean squared error
    
    print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred))
    출력
    Mean squared error: 2548.07

    논리 회귀는 무엇입니까?

    Logistic Regression is a classification algorithm. It is a decision-making algorithm, which means it seeks out the boundaries between two classes, and it simulates the probabilities of a single class. Because the input is discrete and can take two values, it is typically used for binary classification.

    The target variable in linear regression is continuous, which means it can take any real number value, whereas, in logistic regression, we want our output to be probabilities ( between 0 to 1 ). Logistic regression is derived from linear regression, but it adds an extra layer of sigmoid function to ensure that the output remains between 0 and 1.

    논리 회귀는 어떻게 작동합니까?

    Logistic Regression is a simple and widely used machine learning algorithm, especially for binary classification problems. This extension of the linear regression algorithm uses a sigmoid activation function to limit the output variable between 0 and 1. Suppose we need to build a machine learning model, then each independent variable data point will be x1 * w1 + x2 * w2… and so on, and this will give a value between 0 and 1 when passed through the activation function if we use 0.50 as a deciding value or threshold. Then, any result greater than 0.5 is considered a 1, and any result less than that is considered a 0. The sigmoid activation function is represented as:

    We can see from the graph that the output variable is restricted between 0 and 1.

    In scenarios of more than two classes, we use a one vs. all classification approach. Splitting the multi-class dataset into multiple binary classification problems is what One vs. Rest is all about.

    On each binary classification problem, a binary classifier is trained, and predictions are made using the model with the highest confidence.

    논리적 회귀 구현

    Below is the script from scikit-learn official documentation to classify the iris flower based on various features.

    >>> from sklearn.datasets import load_iris
    
    >>> from sklearn.linear_model import LogisticRegression
    
    >>> X, y = load_iris(return_X_y=True)
    
    >>> clf = LogisticRegression(random_state=0).fit(X, y)
    
    >>> clf.predict(X[:2, :])
    
    array([0, 0])
    
    >>> clf.predict_proba(X[:2, :])
    
    array([[9.8...e-01, 1.8...e-02, 1.4...e-08],
    
    [9.7...e-01, 2.8...e-02, ...e-08]])
    
    >>> clf.score(X, y)
    
    0.97...

    결론

    We went through the introduction of logistic and linear regression, discussed the underlying mathematics involved, and went through the implementation part of each of them. We can conclude that linear regression helps predict continuous variables while logistic regression is used in the case of discrete target variables. Logistic regression does this by applying the sigmoid activation function on the linear regression equation.