OneHot编码用于用于生产解决维度问题
生活随笔
收集整理的這篇文章主要介紹了
OneHot编码用于用于生产解决维度问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
不知道大家在使用OneHot編碼的過程中有沒有遇到這樣的問題,比如在訓(xùn)練樣本中某一列的值(離散)為“green” "red" "yellow",并對(duì)其進(jìn)行了one-hot編碼,效果如下:
當(dāng)在生產(chǎn)環(huán)境中實(shí)時(shí)讀取新增數(shù)據(jù)時(shí),出現(xiàn)一些訓(xùn)練樣本中未見過的數(shù)據(jù),如"green" "blue",其one-hot編碼如下:
那么在這種情況下會(huì)導(dǎo)致數(shù)據(jù)維度不一致,但由于訓(xùn)練好的模型輸入維度是確定的,這可能會(huì)導(dǎo)致模型無法正常計(jì)算,那么如何解決這個(gè)問題呢?
可以使用pandas中的Categorical解決這個(gè)問題,具體代碼如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Seven' import pandas as pdtrain_words = ['green', 'red', 'yellow'] product_words = pd.Series(['green', 'blue'])product_words_op = pd.Categorical(product_words, categories=train_words)print(pd.get_dummies(product_words_op))執(zhí)行效果如下:
由于green已知類別的列表中,green的所有one-hot編碼條目都為零。如果你在生產(chǎn)數(shù)據(jù)中發(fā)現(xiàn)了新的數(shù)據(jù),那么對(duì)應(yīng)的行應(yīng)該都是0。此種方法可以在一定程度上解決生產(chǎn)環(huán)境中的維度問題導(dǎo)致模型無法計(jì)算。
總結(jié)
以上是生活随笔為你收集整理的OneHot编码用于用于生产解决维度问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 社群经济与DBA+的2045年
- 下一篇: 基于IMS网络融合的关键技术问题分析