OneHot编码用于用于生产解决维度问题
生活随笔
收集整理的這篇文章主要介紹了
OneHot编码用于用于生产解决维度问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不知道大家在使用OneHot編碼的過程中有沒有遇到這樣的問題,比如在訓練樣本中某一列的值(離散)為“green” "red" "yellow",并對其進行了one-hot編碼,效果如下:
當在生產環境中實時讀取新增數據時,出現一些訓練樣本中未見過的數據,如"green" "blue",其one-hot編碼如下:
那么在這種情況下會導致數據維度不一致,但由于訓練好的模型輸入維度是確定的,這可能會導致模型無法正常計算,那么如何解決這個問題呢?
可以使用pandas中的Categorical解決這個問題,具體代碼如下:
#!/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))執行效果如下:
由于green已知類別的列表中,green的所有one-hot編碼條目都為零。如果你在生產數據中發現了新的數據,那么對應的行應該都是0。此種方法可以在一定程度上解決生產環境中的維度問題導致模型無法計算。
總結
以上是生活随笔為你收集整理的OneHot编码用于用于生产解决维度问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 社群经济与DBA+的2045年
- 下一篇: 基于IMS网络融合的关键技术问题分析