V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yagamil
V2EX  ›  Python

在做特征向量化的时候, 为什么一个特征有 3 个不同的值,向量化后变为了 0 和 1? 在学习随机森林的时候遇到问题. 虚心请教大佬

  •  
  •   yagamil · 2021-07-20 19:33:00 +08:00 · 948 次点击
    这是一个创建于 982 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vec = DictVectorizer()
    X = vec.fit_transform(feature_list).toarray()
    

    数据格式如下: WN5Il4.png

    age 特征有 3 个值 youth, middle_age , sesor 然后向量化后就变成了 WN5jfO.png

    这样得到的结果是不是就不准了?

    6 条回复    2021-07-23 10:03:39 +08:00
    necomancer
        1
    necomancer  
       2021-07-20 22:51:50 +08:00
    取决于你对 feature 的理解和怎么建模,比如你可以 low=1, medium=2, high=3,因为 low-high 之间距离大于 medium 到 high 的距离似乎也挺合理的。但向量化
    low medium high
    (01) (01) (01)
    比如你有一个 feature 对应 low,则给出向量
    1 0 0
    high 则是
    0 0 1
    这样做是为了两两间等距,并且是一组正交基。一般用于你的离散 feature 之间等权且没什么关联。
    yagamil
        2
    yagamil  
    OP
       2021-07-20 23:21:29 +08:00
    @necomancer 谢谢回复.
    如果特征里面的不同值有 4 个,5 个,是不是就无法用 0 和 1 表达了你?
    necomancer
        3
    necomancer  
       2021-07-22 10:06:45 +08:00
    @yagamil 可以啊,
    a b c d e
    0 0 0 0 1
    代表选择了 e
    princelai
        4
    princelai  
       2021-07-22 15:47:08 +08:00
    更常用的是 one hot 方法,特征处理是为了让计算机知道怎么区分,通常连续数字不需要做处理,分类 /非连续内容需要做处理,或者说不可以比较大小的都需要处理,能比较大小的直接替换为数字就能用。
    yagamil
        5
    yagamil  
    OP
       2021-07-22 23:18:46 +08:00
    谢谢大神回复
    @princelai 这个倒经常用. 不过对于随机森林这种算信息商的, 不同类别只是一个符号作用, 并不涉及距离. 好像 onehot 没用的 ?
    princelai
        6
    princelai  
       2021-07-23 10:03:39 +08:00
    @yagamil #5 你可以看看西瓜书,我印象中以上来就讲的挑西瓜对西瓜分类。比如西瓜有很多性状,根蒂曲直,瓜皮花纹,瓜皮颜色,瓤颜色等等,瓤颜色有红色、青色、分红三种,这一个特征做完 onehot 就是 001,010,100,最终结果恰好是红色的就是熟瓜,那么这个特征熵最低,从这里分裂可以使结果误差最小,那么其他特征都可以不用,只用到瓜瓤颜色 onehot 后的三列特征即可 100%预测准确了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1006 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:05 · PVG 04:05 · LAX 13:05 · JFK 16:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.