sklearn one_hot 操作

Posted 不说话的汤姆猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn one_hot 操作相关的知识,希望对你有一定的参考价值。

1.编码

  one_hot编码不再过多叙述,类似于hash的那种方法去改变数的编码方式。比如label存在与(0,1,2,3),那么一条记录的label为3,那么将编码维[0,0,0,1]

2.包: tf.one_hot(label,n_label) 需要注意的是返回的是一个tensor

   from sklearn.preprocessing import OneHotEncoder

  这个的用法就比较多了

技术分享图片
1 enc = OneHotEncoder()
2 enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1],[1, 0, 2]])
3 print "enc.n_values_ is:",enc.n_values_
4 print "enc.feature_indices_ is:",enc.feature_indices_
5 print enc.transform([[0, 1, 1]]).toarray()
View Code

 这里,我们把以上一行看作是一条记录,那么每一行的第n列就是其第n个特征。基于这个理解,我们说下面的问题。

  1)其中enc.fit与平时所用的sklearn 的作用相同。

  2)enc.n_values_->各个特征的种类

  其输出:[2 3 4] 可以看到一共4行,3列,也就说4条记录3个特征,那么我们可以看出n_values_是统计各个特征的值

  3) feature_indices_ 

   输出为:[0 2 5 9]也就时说对上面n_values的累加

  4) enc.transform(one_array) 这个就不用说了

 



以上是关于sklearn one_hot 操作的主要内容,如果未能解决你的问题,请参考以下文章

Sklearn:如何在庞大的数据集上应用降维?

用pickle加速sklearn/机器学习的分类任务?

将 Sklearn GridSearchCV 与 Pipeline 一起使用时如何传递权重

tensorflow one_hot

VSCode自定义代码片段——git命令操作一个完整流程

在TensorFlow中,函数'tf.one_hot'中的参数'axis'是啥