Sampel masalah ketidakseimbangan dan penyelesaian dalam pengelasan teks (dengan contoh kod)
Dalam tugas pengelasan teks, ketidakseimbangan sampel adalah masalah biasa. Apa yang dipanggil ketidakseimbangan sampel bermakna terdapat perbezaan yang jelas dalam bilangan sampel kategori yang berbeza, mengakibatkan kesan latihan model yang lemah pada beberapa kategori. Artikel ini akan memperkenalkan punca masalah ketidakseimbangan sampel dan penyelesaian biasa, dan memberikan contoh kod khusus.
1. Sebab ketidakseimbangan sampel
- Pengagihan data yang tidak sekata dalam aplikasi kehidupan sebenar: Dalam banyak aplikasi praktikal, bilangan sampel dalam beberapa kategori jauh lebih besar daripada kategori lain. Contohnya, dalam tugasan analisis sentimen, bilangan komen positif mungkin jauh lebih tinggi daripada bilangan komen negatif. Ketidakseimbangan dalam pengagihan data ini akan menjejaskan kesan pembelajaran model bagi kategori minoriti.
- Bias dalam proses pengumpulan data: Semasa proses pengumpulan data, faktor manusia mungkin menyebabkan ketidakseimbangan dalam bilangan sampel. Sebagai contoh, dalam analisis pendapat umum, laporan media mungkin memberi lebih perhatian kepada peristiwa tertentu dan mengabaikan yang lain, mengakibatkan sejumlah kecil sampel dalam beberapa kategori.
2. Kaedah untuk menyelesaikan ketidakseimbangan sampel
- Pensampelan semula data: Ini adalah salah satu kaedah yang paling biasa digunakan, yang boleh dicapai dengan menambah bilangan sampel dalam kategori minoriti atau mengurangkan bilangan sampel dalam kategori majoriti . Kaedah pensampelan semula data yang biasa digunakan termasuk pensampelan terkurang dan pensampelan berlebihan.
- Pensampelan bawah: Pilih secara rawak beberapa sampel daripada kategori majoriti supaya bilangan sampel dalam kategori majoriti adalah hampir dengan kategori minoriti. Kaedah ini mudah dan intuitif, tetapi boleh menyebabkan kehilangan maklumat.
- Terlebih sampel: Tingkatkan bilangan sampel dalam kelas minoriti dengan menyalin atau mensintesis sampel baharu. Kaedah untuk menyalin sampel termasuk penyalinan mudah, SMOTE (Teknik Pensampelan Terlebih Minoriti Sintetik), dsb. SMOTE ialah kaedah pensampelan berlebihan yang biasa digunakan yang mensintesis sampel baharu melalui interpolasi untuk mengekalkan ciri pengedaran data.
Berikut ialah kod sampel untuk kaedah pensampelan berlebihan SMOTE yang dilaksanakan dalam Python:
from imblearn.over_sampling import SMOTE
from sklearn.datasets import make_classification
# 创建一个样本不平衡的数据集
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_classes=3, n_clusters_per_class=1, weights=[0.01, 0.05, 0.94], random_state=0)
# 实例化SMOTE类
smote = SMOTE()
# 进行过采样
X_resampled, y_resampled = smote.fit_resample(X, y)
Salin selepas log masuk
- Pelarasan berat kategori: Untuk model pembelajaran mesin, masalah ketidakseimbangan sampel boleh diseimbangkan dengan melaraskan berat kategori. Biasanya, sesetengah model (seperti SVM) menggunakan pemberat kelas untuk melaraskan berat fungsi kehilangan semasa proses latihan. Dalam kes ini, menetapkan wajaran kategori minoriti menjadi lebih tinggi dan wajaran kategori majoriti menjadi lebih rendah boleh meningkatkan kesan klasifikasi kategori minoriti.
Berikut ialah contoh kod untuk melaksanakan pelarasan berat kategori menggunakan perpustakaan sklearn dalam Python:
from sklearn.svm import SVC
# 创建一个样本不平衡的数据集
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_classes=3, n_clusters_per_class=1, weights=[0.01, 0.05, 0.94], random_state=0)
# 设定类别权重
class_weights = {0: 20, 1: 10, 2: 1}
# 实例化SVC类,设置类别权重
svm = SVC(class_weight=class_weights)
# 进行模型训练
svm.fit(X, y)
Salin selepas log masuk
- Kaedah integrasi: Kaedah penyepaduan boleh mengurangkan ketidakseimbangan sampel pada tahap tertentu dengan menyepadukan keputusan ramalan soalan pengelas berbilang. Kaedah penyepaduan yang biasa digunakan termasuk Bagging, Boosting, dsb.
3. Kesimpulan
Ketidakseimbangan sampel ialah masalah biasa dalam tugas pengelasan teks, yang menjejaskan prestasi model. Artikel ini memperkenalkan punca masalah ketidakseimbangan sampel dan menyediakan kaedah serta contoh kod khusus untuk menyelesaikan masalah ketidakseimbangan sampel. Mengikut keperluan aplikasi praktikal, memilih kaedah dan teknologi yang sesuai boleh meningkatkan prestasi model pengelasan teks dengan berkesan.
Atas ialah kandungan terperinci Contoh masalah ketidakseimbangan dalam pengelasan teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!