Rumah >Peranti teknologi >AI >Masalah label hilang dalam pembelajaran yang diselia dengan lemah
Masalah hilang label dan contoh kod dalam pembelajaran yang diselia dengan lemah
Pengenalan:
Dalam bidang pembelajaran mesin, pembelajaran terselia ialah kaedah pembelajaran yang biasa digunakan. Walau bagaimanapun, apabila melaksanakan pembelajaran diselia pada set data berskala besar, masa dan usaha yang diperlukan untuk melabel data secara manual adalah sangat besar. Oleh itu, pembelajaran yang diselia dengan lemah telah wujud. Pembelajaran yang diselia dengan lemah bermakna hanya beberapa sampel dalam data latihan mempunyai label yang tepat, manakala kebanyakan sampel hanya mempunyai label yang samar-samar atau tidak tepat sepenuhnya. Walau bagaimanapun, masalah label yang hilang merupakan cabaran penting dalam pembelajaran yang diselia dengan lemah.
1. Latar belakang masalah label hilang
Dalam aplikasi praktikal, kos pelabelan set data berskala besar biasanya sangat tinggi. Dalam bidang seperti pengecaman imej perubatan, pemprosesan bahasa semula jadi dan penglihatan komputer, adalah tidak realistik untuk melabelkan semua data kerana jumlah data yang besar, keperluan untuk pengetahuan domain dan batasan dalam sumber manusia. Oleh itu, kaedah pembelajaran yang diselia dengan lemah diperlukan untuk menyelesaikan masalah kehilangan label.
2. sesetengah keadaan Mempunyai label yang tepat. MIL terutamanya terdiri daripada dua langkah: pemilihan contoh dan latihan pengelas. Pemilihan contoh menyelesaikan masalah kehilangan label dengan memilih kejadian yang paling sesuai mewakili sampel untuk pelabelan.
import numpy as np from sklearn.svm import SVC from sklearn.metrics import accuracy_score # 数据准备 X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) # 输入数据 Y_weak = np.array([0, 1, 1, 0]) # 弱标签,只有部分样本有标签 # 实例选择 Y_strong = np.zeros_like(Y_weak) # 强标签 for i, label in enumerate(np.unique(Y_weak)): indices = np.where(Y_weak == label)[0] # 找到标签为label的样本 X_sub = X[indices, :] # 获取对应样本的特征 Y_sub = Y_weak[indices] # 获取对应样本的弱标签 # 训练分类器 clf = SVC(probability=True) clf.fit(X_sub, Y_sub) # 预测所有样本 Y_pred = clf.predict_proba(X)[:, 1] # 更新强标签 Y_strong = np.where(Y_pred > 0.5, 1, Y_strong) # 计算准确率 accuracy = accuracy_score(Y_weak, Y_strong) print("准确率:", accuracy)
Algoritma pengelompokan menyelesaikan masalah kehilangan label dengan membahagikan set data kepada kategori yang berbeza. Kaedah pembelajaran yang diselia dengan lemah berdasarkan idea pengelompokan biasanya merangkumi dua langkah: pengelompokan dan penyebaran label.
import numpy as np from sklearn.cluster import KMeans from sklearn.metrics import accuracy_score # 数据准备 X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) # 输入数据 Y_weak = np.array([0, 1, 1, 0]) # 弱标签,只有部分样本有标签 # 聚类 kmeans = KMeans(n_clusters=2) kmeans.fit(X) # 标签传播 Y_strong = kmeans.predict(X) # 计算准确率 accuracy = accuracy_score(Y_weak, Y_strong) print("准确率:", accuracy)
Masalah kehilangan label merupakan cabaran penting dalam pembelajaran yang diselia dengan lemah. Artikel ini memperkenalkan dua kaedah untuk menyelesaikan masalah kehilangan label: pembelajaran berbilang contoh dan kaedah berdasarkan idea pengelompokan, dan memberikan kod sampel yang sepadan. Senario aplikasi yang berbeza mungkin menggunakan kaedah yang berbeza, dan perlu memilih kaedah yang sesuai untuk menyelesaikan masalah kehilangan tag mengikut situasi tertentu. Pembangunan pembelajaran yang diselia dengan lemah menyediakan penyelesaian yang lebih fleksibel dan cekap untuk menggunakan set data berskala besar.
Atas ialah kandungan terperinci Masalah label hilang dalam pembelajaran yang diselia dengan lemah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!