본문 바로가기
머신러닝

머신러닝 - Logistic Regression-분류 머신러닝 (sigmoid function), 분류예측데이터 확률로 보기( predict.proba() )

by leo104 2022. 12. 1.
728x90

분류의 문제를 다루는 데이터로 Logistic Regression 사용하여 예측값 나타내기

 

분류를 예측하는 Logistic Regression

- Logistic Regression의 최종 예측값은 0.5를 기준으로 두개의 분류로 나눈다. 그 값은 0과 1이다.

 

Logistic Regression 인공지능 만들기

 

1. df에서  X값과 y값을 분류하여 X와 y라는 변수에 각각 저장한다.

 

2. Logistic Regression은 Linear Regression과 다르게 feature 스케일링( 표준화, 정규화)을 해야 한다.

   - 스케일링 라이브러리 와 함수 호출 (from sklearn.preprocessing import MinMaxScaler)

   - 함수를 변수에 저장

 

3. feature 스케일링 함수를 저장한 변수. fit_transform(X값)을 다시 X에 저장

 

4. X와 y의 각각 train 값과 test 값을 나눈다.

    - 나누는 라이브러리와 함수 호출 (from sklearn.model_selection import train_test_split)

    - X_train , X_test , y_train , y_test  = train_test_split(X,y, test_size=? , random_state= ?)

      * 위의 식에서 ?는 내가 설정할 수 있음

 

5. 분류의 문제를 다루는 데이터기 때문에 Logistic Regression 함수 호출하여 인공지능을 모델링한다.

    - from sklearn.linear_model import LogisticRegression

    - LogisticRegression을 변수에 저장한다.

    - LogisticRegression의 변수는 보통 classifier로 저장하는 경우가 많다.

    - 그 후에 변수이름.fit(X_train, y_train)으로 인공지능에 학습시킨다.

  

6. 인공지능에 데이터를 넣어 예측값을 확인한다.

    - classifier.predict(X_test)

classifier.predict(X_test)

array([0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1,
       1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
       1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1,
       0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0], dtype=int64)

 

--------------------------------------------Logistic Regression 인공지능 만들기 끝 ---------------------------------------------------

 

* 분류의 0과 1 데이터 말고 확률을 보고싶을 때 쓰는 함수

- .predict_proba를 사용한다. 

classifier.predict_proba(X_test

array([[0.86288917, 0.13711083],
       [0.70574277, 0.29425723],
       [0.49025346, 0.50974654],
       [0.38383672, 0.61616328],
       [0.75287835, 0.24712165],
       [0.71129842, 0.28870158],
       [0.97386557, 0.02613443],
       [0.28966461, 0.71033539],
       [0.93977209, 0.06022791],
       [0.12665048, 0.87334952],
       [0.76998121, 0.23001879],
       [0.64784915, 0.35215085],
       [0.74892811, 0.25107189],
       [0.1531759 , 0.8468241 ],
       [0.2308496 , 0.7691504 ],
       [0.06437334, 0.93562666],
       [0.1158091 , 0.8841909 ],
       [0.91090318, 0.08909682],
       [0.8275719 , 0.1724281 ],
       [0.07924665, 0.92075335],
       [0.61066233, 0.38933767],
       [0.2708696 , 0.7291304 ],
       [0.19380091, 0.80619909],
       [0.58666188, 0.41333812],
       [0.72241711, 0.27758289],
       [0.96740026, 0.03259974],
       [0.26765906, 0.73234094],
       [0.36227221, 0.63772779],
       [0.4643787 , 0.5356213 ],
       [0.14241022, 0.85758978],
       [0.7849406 , 0.2150594 ],
       [0.94528387, 0.05471613],
       [0.93955256, 0.06044744],
       [0.1842331 , 0.8157669 ],
       [0.85196752, 0.14803248],
       [0.81646998, 0.18353002],
       [0.97780003, 0.02219997],
       [0.75572999, 0.24427001],
       [0.62540997, 0.37459003],
       [0.98159252, 0.01840748],
       [0.13217047, 0.86782953],
       [0.09975728, 0.90024272],
       [0.56412277, 0.43587723],
       [0.93144621, 0.06855379],
       [0.25669316, 0.74330684],
       [0.63123437, 0.36876563],
       [0.60149068, 0.39850932],
       [0.23204368, 0.76795632],
       [0.61703901, 0.38296099],
       [0.47107607, 0.52892393],
       [0.9352704 , 0.0647296 ],
       [0.78282372, 0.21717628],
       [0.52722181, 0.47277819],
       [0.68932852, 0.31067148],
       [0.56554415, 0.43445585],
       [0.74711787, 0.25288213],
       [0.24478251, 0.75521749],
       [0.80527561, 0.19472439],
       [0.11231343, 0.88768657],
       [0.25176908, 0.74823092],
       [0.83748287, 0.16251713],
       [0.90512579, 0.09487421],
       [0.46580477, 0.53419523],
       [0.8290771 , 0.1709229 ],
       [0.59409164, 0.40590836],
       [0.32543863, 0.67456137],
       [0.9501836 , 0.0498164 ],
       [0.58175782, 0.41824218],
       [0.23548422, 0.76451578],
       [0.77437752, 0.22562248],
       [0.33052572, 0.66947428],
       [0.84705661, 0.15294339],
       [0.46031003, 0.53968997],
       [0.65786581, 0.34213419],
       [0.9290781 , 0.0709219 ],
       [0.13085527, 0.86914473],
       [0.85663321, 0.14336679],
       [0.96669606, 0.03330394],
       [0.79214651, 0.20785349],
       [0.79545105, 0.20454895],
       [0.94031341, 0.05968659],
       [0.73979099, 0.26020901],
       [0.23687211, 0.76312789],
       [0.9329054 , 0.0670946 ],
       [0.91628607, 0.08371393],
       [0.87151489, 0.12848511],
       [0.61203631, 0.38796369],
       [0.80254888, 0.19745112],
       [0.68829919, 0.31170081],
       [0.95322984, 0.04677016],
       [0.51162714, 0.48837286],
       [0.27891764, 0.72108236],
       [0.56460496, 0.43539504],
       [0.75448865, 0.24551135],
       [0.86390626, 0.13609374],
       [0.30839502, 0.69160498],
       [0.2942329 , 0.7057671 ],
       [0.67473982, 0.32526018],
       [0.72758505, 0.27241495],
       [0.86402151, 0.13597849]])

위처럼 0과 1로 나오는게 아니라 확률로 출력된다.   

 

728x90