voting은 Ensemble 기법 중 하나이다.
특별한 알고리즘을 칭하는 기법이 아니라 기존 모델알고리즘을 어떻게 mix할 것인지에 대한 기법을 의미한다.
유방암데이터 실습 코드를 통해 정확히 이해해보자
import pandas as pd
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
cancer = load_breast_cancer()
data_df = pd.DataFrame(cancer.data, columns=cancer.feature_names)
# 데이터셋분리
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.2)
# 개별 모델
lr_clf = LogisticRegression()
knn_clf = KNeighborsClassifier(n_neighbors=8)
# 개별 모델을 소프트 보팅 기반의 앙상블 모델로 구현한 분류기
vo_soft_clf = VotingClassifier(estimators=[('LR', lr_clf), ('KNN', knn_clf)], voting='soft')
vo_soft_clf.fit(X_train, y_train)
pred = vo_soft_clf.predict(X_test)
# 개별 모델을 하드 보팅 기반의 앙상블 모델로 구현한 분류기
vo_hard_clf = VotingClassifier(estimators=[('LR', lr_clf), ('KNN', knn_clf)], voting='hard')
vo_hard_clf.fit(X_train, y_train)
pred = vo_hard_clf.predict(X_test)