Penerapan Voting Clasifier, Klasifikasi Dengan Python

Voting Classifier adalah model pembelajaran mesin yang melatih ensemble dari banyak model dan memprediksi output (kelas) berdasarkan probabilitas tertinggi dari kelas yang dipilih sebagai output.

Ini hanya mengumpulkan temuan dari setiap pengklasifikasi yang diteruskan ke Pengklasifikasi Pemungutan Suara dan memprediksi kelas keluaran berdasarkan mayoritas suara terbanyak. Idenya adalah alih-alih membuat model khusus yang terpisah dan menemukan akurasi untuk masing-masing model, kami membuat model tunggal yang dilatih oleh model-model ini dan memprediksi keluaran berdasarkan mayoritas suara gabungan untuk setiap kelas keluaran.

Voting Classifier mendukung dua jenis voting.

Hard Voting: Dalam hard voting, kelas keluaran yang diprediksi adalah kelas dengan suara terbanyak yaitu kelas yang memiliki probabilitas tertinggi untuk diprediksi oleh masing-masing pengklasifikasi. Misalkan tiga pengklasifikasi memprediksi output class(A, A, B) , jadi di sini mayoritas memprediksi A sebagai output. Oleh karena itu A akan menjadi prediksi akhir.

Soft Voting: Dalam soft voting, kelas keluaran adalah prediksi berdasarkan rata-rata probabilitas yang diberikan pada kelas tersebut. Misalkan diberikan beberapa masukan untuk tiga model, probabilitas prediksi untuk kelas A = (0.30, 0.47, 0.53) dan B = (0.20, 0.32, 0.40) . Jadi rata-rata untuk kelas A adalah 0,4333 dan B adalah 0,3067 , pemenangnya jelas kelas A karena memiliki probabilitas tertinggi yang dirata-ratakan oleh masing-masing pengklasifikasi.

Catatan: Pastikan untuk menyertakan berbagai model untuk memberi makan Pengklasifikasi Pemungutan Suara untuk memastikan bahwa kesalahan yang dibuat oleh salah satu dapat diselesaikan oleh yang lain.

Kode : Kode Python untuk mengimplementasikan Voting Classifier

# importing libraries
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
# loading iris dataset
iris = load_iris()
X = iris.data[:, :4]
Y = iris.target
# train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y,
test_size = 0.20, random_state = 42)

# group / ensemble of models
estimator = []
estimator.append(('LR',
    LogisticRegression(solver ='lbfgs',
                multi_class ='multinomial',
                max_iter = 200)))
estimator.append(('SVC', SVC(gamma ='auto', probability = True)))
estimator.append(('DTC', DecisionTreeClassifier()))
# Voting Classifier with hard voting
vot_hard = VotingClassifier(estimators = estimator, voting ='hard')
vot_hard.fit(X_train, y_train)
y_pred = vot_hard.predict(X_test)
# using accuracy_score metric to predict accuracy
score = accuracy_score(y_test, y_pred)
print("Hard Voting Score % d" % score)
# Voting Classifier with soft voting
vot_soft = VotingClassifier(estimators = estimator, voting ='soft')
vot_soft.fit(X_train, y_train)
y_pred = vot_soft.predict(X_test)
# using accuracy_score
score = accuracy_score(y_test, y_pred)
print("Soft Voting Score % d" % score)

Keluaran:
Hard Voting Score 1
Soft Voting Score 1

Contoh:
Masukan :4.7, 3.2, 1.3, 0.2  
Keluaran :Iris Setosa

Dalam praktiknya, akurasi output akan lebih untuk soft voting karena ini adalah probabilitas rata-rata dari semua estimator yang digabungkan, karena untuk dataset iris dasar kami, kami sudah overfitting, jadi tidak akan ada banyak perbedaan dalam output.

Posting Komentar untuk "Penerapan Voting Clasifier, Klasifikasi Dengan Python"