시작하기 전 임폴트!
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sb
이번 포스팅에서 사용 할 데이터 df
df = pd.read_csv('Social_Network_Ads.csv')
df.head()
나이와 연봉으로 분석해서, 물건을 구매할지 안할지를 분류해보자
1. 데이터에 NaN이 있는지 확인해야한다
df.isna().sum()
>>>
User ID 0
Gender 0
Age 0
EstimatedSalary 0
Purchased 0
dtype: int64
2. X와 y 값 분리해주기
- 내가 구하고 싶은 곳은 'Purchased' 이고 예측하기 위해 사용 할 데이터는 'Age', 'EstimatedSalary' 이다
y = df['Purchased']
X = df.loc[ : , ['Age', 'EstimatedSalary'] ]
3. 로지스틱 리그레션은 피처 스케일링을 해주어야 한다
- StandardScaler와 MinMaxScaler 2가지 종류가 있다
from sklearn.preprocessing import StandardScaler, MinMaxScaler
- 사용 방법은 같고 이번엔 StandardScaler 를 사용했다
scaler_X = StandardScaler()
X = scaler_X.fit_transform(X)
4. 인공지능에 넣어 줄 train과 test를 만들어주자
- train_test_split(X, y, test_size= * , random_state= * ) 사용한다
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state= 1)
X_train.shape
# (300, 2)
X_test.shape
# (100, 2)
5. 모델링을 선택하여 인공지능 만들기
- 이번 학습에선 분류의 모델링을 사용해야한다
- 기본적으로 LogisticRegression() 의 변수 이름은 classifier 로 설정하여 사용한다
- classifier.fit() 으로 학습시킨다
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train, y_train)
# predict 하면 자동으로 기준을 만들어 구분하여 0, 1로 예측 한다
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)
- 자동으로 기준은 만드는게 싫으면 predict_proba()를 써서 [0일 확률, 1일 확률] 을 보면 된다
classifier.predict_proba(X_test)
>>>
array([[0.86288917, 0.13711083],
[0.70574277, 0.29425723],
[0.49025346, 0.50974654],
...
[0.67473982, 0.32526018],
[0.72758505, 0.27241495],
[0.86402151, 0.13597849]])
'MACHINE | DEEP LEARNING > Machine Learning Project' 카테고리의 다른 글
[AI] 머신 러닝 데이터의 불균형 샘플링하는 방법 _ SMOTE를 활용한 오버샘플링 (0) | 2024.04.15 |
---|---|
[AI] 머신 러닝 LogisticRegressiond의 Confusion Matrix 성능 평가, 시본(seaborn)으로 분류 결과표 만들기 (0) | 2024.04.15 |
[AI] 머신 러닝 Logistic Regression _ 시그모이드(sigmoid) 함수 (0) | 2024.04.15 |
[AI] 머신러닝 Supervised. 학습된 인공지능을 가지고, 신규 데이터 처리 방법 (0) | 2024.04.14 |
[AI] 머신 러닝 Linear Regression 후 메모리 파일 저장 _joblib, 피클파일 저장 (0) | 2024.04.14 |