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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM