Python 深度学习:如何处理缺少的标签值

Python 深度学习:如何处理缺少的标签值,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,我需要使用深度学习将输入向量分类为10个类别(数字从0到9)。为此,我有两个训练数据集:一个标记(n=9000),另一个未标记(n=21000) 我应该用带标签的火车数据集训练我的模型,还是先用它预测未带标签火车数据集的标签,然后用所有火车数据训练模型?你还有什么建议?是否可以使用自动编码器 我已经尝试使用标记的列车数据来预测未标记数据的标签。然而,我还没有达到一个很好的准确性。我想知道这是由估算数据还是模型引起的 ###Load data train_labeled = pd.read_hdf

我需要使用深度学习将输入向量分类为10个类别(数字从0到9)。为此,我有两个训练数据集:一个标记(n=9000),另一个未标记(n=21000)

我应该用带标签的火车数据集训练我的模型,还是先用它预测未带标签火车数据集的标签,然后用所有火车数据训练模型?你还有什么建议?是否可以使用自动编码器

我已经尝试使用标记的列车数据来预测未标记数据的标签。然而,我还没有达到一个很好的准确性。我想知道这是由估算数据还是模型引起的

###Load data
train_labeled = pd.read_hdf("train_labeled.h5", "train")
train_unlabeled = pd.read_hdf("train_unlabeled.h5", "train")
test = pd.read_hdf("test.h5", "test")

X_labeled = np.array(train_labeled.iloc[:,1:])
X_unlabeled = np.array(train_unlabeled)
y_labeled = np.array(train_labeled.iloc[:,0])

###Impute missing values
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=5)
neigh.fit(X_labeled, y_labeled) 
y_unlabeled = neigh.predict(X_unlabeled)

###Combine data
X = np.concatenate((X_labeled, X_unlabeled), axis=0)
y = np.concatenate((y_labeled, y_unlabeled), axis=0)

###Split train and test data
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8)

###Create model
model = tf.keras.Sequential([
layers.BatchNormalization(),
layers.Dense(80, activation='relu', input_shape=(X_train.shape[1],)),
layers.Dense(80, activation=tf.nn.relu),  
layers.Dense(10, activation=tf.nn.softmax)])

model.compile(optimizer=tf.train.AdamOptimizer(0.001),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

###Train model
model.fit(X_train, y_train, epochs=10, batch_size=20,
          validation_data=(X_test, y_test))

处理数据情况的一种方法(小标记+大未标记数据)称为半监督学习

直接使用在小标记训练数据上训练的模型有其自身的问题。如果初始模型精度不够高,或者标记的训练数据有偏差,则会看到错误传播到生成的标签上


要让半监督学习在可接受的范围内运行是相当具有挑战性的,我建议查看梯形图网络、伪标签和度量学习论文,以尝试更具原则性的方法。

由于它涉及的是理论而不是实际编码,对于姐妹网站或