看板 Python 關於我們 聯絡資訊
from sklearn import preprocessing le = preprocessing.LabelEncoder() le.fit(["paris", "paris", "tokyo", "amsterdam"]) print('class:{}'.format(list(le.classes_))) data1 = ["tokyo", "tokyo", "paris"] print(le.transform(data1)) data2 = ["tokyo", "tokyo", "paris", "USA", "Taiwan"] print(le.transform(data2)) ----------------輸出----------------- class:['amsterdam', 'paris', 'tokyo'] [2 2 1] ValueError: y contains previously unseen labels: ['Taiwan', 'USA'] 原因是因為Taiwin 跟 USA沒有訓練過 我想要在transform到未知的資料時移除該筆資料 該怎操作呢 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.44.65 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1589273036.A.E94.html
TitanEric: 先filter掉再transform? 05/12 19:04
ctr1: 無法得知哪些東西沒出現過 05/13 13:14
eooft: data2=list(filter((lambda d: d in data1), data2)) 05/13 13:21
eooft: data1修正成list(le.classes_) 假如你是要刪USA跟TW 05/13 13:32
eooft: 假如是想刪data2,可能轉成set比較classes有沒有包含data, 05/13 13:39
eooft: true/false決定是否transform? 05/13 13:39