Python에서 로지스틱 회귀를 수행하는 방법?



종속 변수와 하나 이상의 독립 변수 간의 관계를 결정하여 결과를 예측하기 위해 sklearn을 사용하는 Python의 로지스틱 회귀.

Python의 로지스틱 회귀는 예측 분석 기술입니다. 이진 분류 문제를 위해 기계 학습에서도 사용됩니다. 이 블로그에서는 Python의 로지스틱 회귀를 이해하기 위해 다음 주제를 살펴볼 것입니다.

  1. 회귀 란 무엇입니까?
  2. Python의 로지스틱 회귀
  3. 로지스틱 회귀 vs 선형 회귀
  4. 사용 사례
  5. 데모

더 나은 이해를 위해 데모와 함께 파이썬의 로지스틱 회귀에 대한 자세한 자습서를 참조하거나 로지스틱 회귀를 마스터합니다.





회귀 란 무엇입니까?

분석은 강력한 통계 분석 기술입니다. ㅏ 매달린 관심 변수는 다른 값을 예측하는 데 사용됩니다. 독립 변수 데이터 세트에서.

우리는 항상 직관적 인 방식으로 회귀를 접하게됩니다. 과거의 기상 조건 데이터 세트를 사용하여 날씨를 예측하는 것과 같습니다.



결과를 분석하고 예측하기 위해 많은 기술을 사용하지만 주로 종속 변수와 하나 이상의 독립 변수 간의 관계.

분석은 가능한 결과가 두 개 뿐인 이진 변수로 결과를 예측합니다.



Python의 로지스틱 회귀

이진 변수의 결과를 예측하기 위해 종속 변수와 하나 이상의 독립 변수가있는 데이터 세트를 분석하는 기술입니다. 즉, 결과가 두 개뿐입니다.

종속 변수는 범주 형 자연에서. 종속 변수는 대상 변수 독립 변수는 예측 자 .

로지스틱 회귀는 범주 형 변수의 결과 만 예측하는 선형 회귀의 특별한 경우입니다. 로그 함수를 사용하여 이벤트의 확률을 예측합니다.

우리는 시그 모이 드 함수 / 곡선 범주 형 값을 예측합니다. 임계 값은 결과 (승 / 패)를 결정합니다.

선형 회귀 방정식 : y = β0 + β1X1 + β2X2…. + βnXn

  • Y는 예측해야하는 종속 변수를 나타냅니다.
  • β0은 Y 절편으로, 기본적으로 y 축에 닿는 선상의 점입니다.
  • β1은 선의 기울기입니다 (기울기는 종속 변수와 독립 변수 간의 관계에 따라 음수 또는 양수일 수 있습니다.)
  • 여기서 X는 결과 종속 값을 예측하는 데 사용되는 독립 변수를 나타냅니다.

시그 모이 드 함수 : p = 1/1 + e-와이

선형 회귀 방정식에 시그 모이 드 함수를 적용합니다.

python-edureka의 로지스틱 회귀

로지스틱 회귀 방정식 : p = 1/1 + e-(β0 + β1X1 + β2X2…. + βnXn)

다양한 유형의 로지스틱 회귀를 살펴 보겠습니다.

로지스틱 회귀 유형

자바에서 메소드 오버로딩의 장점
    • 이진 로지스틱 회귀 – 가능한 결과는 두 가지뿐입니다. 예-예 또는 아니오
    • 다항 로지스틱 회귀 분석 – 세 개 이상의 명목 범주 (예 : 고양이, 개, 코끼리)가 있습니다.
    • 순서 형 로지스틱 회귀 분석-순서 형 범주가 세 개 이상 있으며 순서 형은 범주가 순서에 있음을 의미합니다. 예-사용자 등급 (1-5).

선형 대 로지스틱 회귀

선형 회귀는 무한한 가능한 값, 로지스틱 회귀는 확실한 결과 .

선형 회귀는 반응 변수가 본질적으로 연속적 일 때 사용되지만 로지스틱 회귀는 반응 변수가 본질적으로 범주 형일 때 사용됩니다.

과거의 거래 내역을 사용하여 은행의 불이행자를 예측하는 것은 로지스틱 회귀의 예이며 주식 시장 점수와 같은 연속 출력은 선형 회귀의 예입니다.

사용 사례

다음은 로지스틱 회귀를 사용할 수있는 사용 사례입니다.

날씨 예측

날씨 예측은 논리적 회귀의 결과입니다. 여기에서는 이전 일기 예보의 데이터를 분석하고 특정 날짜의 가능한 결과를 예측합니다. 그러나 논리적 회귀는 비가 올지 여부와 같은 범주 형 데이터 만 예측합니다.

질병 결정

우리는 할 수 있습니다사용하다환자의 병력을 통해 논리적 회귀를 통해 질병이 어떤 경우에도 양성인지 음성인지 예측합니다.

로지스틱 회귀를 사용하여 예측 모델을 구축하기 위해 샘플 데이터 세트를 가져옵니다.

데모

우리는 예측 모델을 만들 것입니다사용도움말과 함께 Python의 논리적 회귀데이터 세트,이것에논리적 회귀를 달성하기 위해 다음 단계를 다룰 것입니다.

데이터 수집

로지스틱 회귀를 구현하는 첫 번째 단계는 데이터를 수집하는 것입니다. pandas를 사용하여 데이터 세트가 포함 된 csv 파일을 프로그램에로드합니다. NBA 데이터를 사용하여 관련 데이터 간의 관계를 분석하여 홈 게임 또는 원정 게임의 가능성을 예측하는 예측 모델을 구축하고 있습니다.

pandas를 pd로 가져 오기 numpy를 np로 가져 오기 seaborn을 sns로 가져 오기 matplotlib.pyplot을 plt로 df = pd.read_csv (r'C : UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

더 쉬운 분석을 위해 모든 데이터를 읽을 수있는 형식으로 가져옵니다. 그런 다음 모델의 종속 및 독립 변수를 결정할 수 있습니다.

데이터 분석

데이터 세트를 분석하여 변수 간의 관계를 결정합니다. 변수 간의 관계를 확인하기 위해 다른 플롯을 생성합니다.

sns.countplot ( 'Home', hue = 'WINorLOSS', data = df) plt.show ()

위는 홈 / 어웨이 게임에 대한 승패 율의 관계입니다. 에스비슷하게데이터의 다른 관련 항목 간의 관계 그래프를 그릴 수 있습니다.

데이터 랭 글링

데이터 세트는 대상 변수에 따라 수정됩니다. DataFrame에서 모든 null 값과 문자열 값을 제거합니다.

print (df.isnull (). sum ())

null 값과 같은 관련없는 데이터와 예측 모델을 빌드하는 동안 필요하지 않은 값을 모두 확인합니다. 사용중인 NBA 데이터 세트에 null 값이 없으면 데이터 분할을 진행합니다.

데이터 테스트 및 학습

자바에서 프로그램 종료

모델의 성능을 위해 데이터는 테스트 데이터와 학습 데이터로 분할됩니다. 데이터는 train_test_split . 여기의 데이터는 70:30 비율로 나뉩니다.

자, 모델 예측 로지스틱 회귀 함수는 sklearn 모듈에서 로지스틱 회귀 모델을 가져 와서 구현됩니다.

그런 다음 모델은 fit 함수를 사용하여 기차 세트에 적합합니다. 그 후 예측 기능을 사용하여 예측이 수행됩니다.

from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix, accuracy_score x = df.drop ( 'Home', axis = 1) y = df [ 'Home'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) 예측 = logmodel.predict (x_test) print (classification_report (y_test, predicts)) print (confusion_matrix (y_test, predicts)) print (accuracy_score (y_test, predicts))

분류 보고서 :

분류 보고서는 정도 , Recall, F1 및 지원 모델에 대한 점수.

정도 점수는 모델에 의해 만들어진 예측이 정확한 수준을 의미합니다. 홈 게임의 정밀도는 0.62 그리고 원정 경기는 0.58 .

소환 모델이 결과를 예측할 수있는 최대 금액입니다. 홈 경기에 대한 회상은 0.57 원정 경기의 경우 0.64 . F1 및 지원 점수는 예측을 위해 테스트 된 데이터의 양입니다. NBA 데이터 세트에서 홈 게임에 대해 테스트 된 데이터는 다음과 같습니다. 1662 년 그리고 원정 경기는 1586 년 .

혼동 행렬 :

혼동 행렬은 예측 모델의 성능을 설명하는 표입니다. 혼동 행렬에는 실제 값과 예측 값이 포함됩니다. 이 값을 사용하여 모델의 정확도 점수를 계산할 수 있습니다.

혼동 매트릭스 히트 맵 :

seaborn을 사용하여 혼동 행렬의 히트 맵을 플로팅합니다. 우리가 구축 한 예측 모델을 시각화합니다. 히트 맵을 플로팅하려면 다음 구문이 필요합니다.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, predictions))) plt.show ()

히트 맵을 보면 다음과 같은 결론을 내릴 수 있습니다.

  • 모든 예측 중에서 분류자는 총 1730 회 동안 예라고 예측했으며 그중 1012 회는 실제 예였습니다.
  • 모든 예측 중에서 분류자는 총 1518 회에 대해 아니오를 예측했으며 그 중 944 개는 실제 아니오였습니다.

이 혼동 행렬 분석을 통해 예측 모델의 정확도 점수를 결론을 내릴 수 있습니다.

정확도 점수 :

정확도 점수는 모델이 예측 한 정확도의 백분율입니다. 우리 모델의 정확도 점수는 0.60으로 상당히 정확합니다. 그러나 정확도 점수가 높을수록 예측 모델이 효율적입니다. 더 나은 예측 모델을 위해 항상 더 높은 정확도 점수를 목표로해야합니다.

위에서 논의한 단계에 따라 NBA 데이터 세트를 사용하여 홈 / 어웨이 게임의 가능성을 예측했습니다. 분류 보고서를 분석 한 후 홈 / 어웨이 게임의 가능성을 가정 할 수 있습니다.

이 블로그에서 우리는 파이썬 개념의 로지스틱 회귀, 선형 접근법과 어떻게 다른지 논의했습니다. 또한 NBA 데이터 세트를 사용한 데모를 다루었습니다. 더 많은 통찰력과 연습을 위해 선택한 데이터 세트를 사용하고 논의 된 단계에 따라 Python에서 로지스틱 회귀를 구현할 수 있습니다.

또한 edureka 플랫폼의 다양한 데이터 과학 블로그를 확인하여 데이터 과학자를 마스터하십시오.

Python을 배우고 데이터 과학 분야에서 경력을 쌓고 싶다면 대화 형 라이브 온라인을 확인하세요. 여기에는 학습 기간 내내 안내하는 연중 무휴 지원이 함께 제공됩니다.
질문이 있습니까? 의견에 언급 해 주시면 연락 드리겠습니다.