1. 程式人生 > 實用技巧 >pandas LabelEncoder 測試集出現了訓練集中未出現過的值怎麼解決(y contains previously unseen labels 解決方法)

pandas LabelEncoder 測試集出現了訓練集中未出現過的值怎麼解決(y contains previously unseen labels 解決方法)

for i in categorical_ix:
    le = joblib.load(f"./LabelEncoder/{i}_LabelEncoder.model")
    #由於test集合中可能出現新的label,沒有在train中出現過,因此將新的標籤也轉為<unk>
    test_labels = df_test[i].unique()  #array 形式
    train_class = le.classes_
    for t in test_labels:
        if(t not in train_class):
            print
("***Warning***: y contains previously unseen labels") print("列名是:",i) print("將新出現值轉換成<unk>") df_test[i] =df_test[i].map(lambda s:'<unk>' if s not in le.classes_ else s) # #le.classes_ = np.append(le.classes_, '<unk>') df_test[i]
= le.transform(df_test[i])

參考:https://blog.csdn.net/qq_41185868/article/details/109408387#1%E3%80%81%E5%9C%A8%E6%95%B0%E6%8D%AE%E7%BC%BA%E5%A4%B1%E5%92%8Ctest%E6%95%B0%E6%8D%AE%E5%86%85%E5%AD%98%E5%9C%A8%E6%96%B0%E5%80%BC%28train%E6%95%B0%E6%8D%AE%E6%9C%AA%E5%87%BA%E7%8E%B0%E8%BF%87%29%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84%E6%95%B0%E6%8D%AELabelEncoder%E5%8C%96