본문 바로가기
Python

VSCode] Titanic dataset 분석하기 - 2. 모델 훈련과 평가

by Fastlane 2023. 4. 7.
728x90
반응형

dataset이 준비되었으면, model을 생성해보자. scikit-learn library를 사용해서 dataset의 전처리를 하고, classification model을 train한다. 그 다음, test data로 model의 정확성을 판단한다. 

 

1. 모델훈련의 일반적인 첫 단계는 dataset을 training, validation data로 나누는 것이다. 모든 데이터를 train하는데 사용하면, model의 성능을 평가할 수 없다. scikit-learn library의 장점은 dataset을 training, test data로 나누는 함수를 제공하는 것이다. 

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(data[['sex','pclass','age','relatives','fare']], data.survived, test_size=0.2, random_state=0)

2. 다음으로, 모든 features가 동등하게 처리될 수 있도록 normalize한다. 예를들어, dataset에서 age의 범위는 0~100이지만 sex는 1 또는 0이다. 모든 변수를 normalize함으로, 변수의 범위가 모두 같아지도록 할 수 있다. 

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(x_train)
X_test = sc.transform(x_test)

왼쪽은 x_test 변수 data이고 오른쪽은 X_test 변수 data이다. 

728x90

3. 다양한 머신러닝 알고리즘이 있다. scikit-learn library는 많은 알고리즘과 차트를 제공하여 적합한 알고리즘을 선택할 수 있도록 한다. 지금부터, Naive Bayes 알고리즘을 사용한다. 

from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train, y_train)

4. 훈련된 모델을 가지고, X_test 값으로 만든 예상결과와 y_test를 비교하여 정확성을 계산해보자. 

from sklearn import metrics
predict_test = model.predict(X_test)
print(metrics.accuracy_score(y_test, predict_test))

훈련된 알고리즘은 생존예측에 약 75%의 성공률을 갖는다. 

 

728x90
반응형

댓글