분류의 문제를 다루는 데이터로 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로 나오는게 아니라 확률로 출력된다.