对类别Category数据编码的几种方法
来源:互联网 发布:数组tostring 编辑:程序博客网 时间:2024/05/22 14:38
文中数据以Titanic数据集为例
1、Query the column
titanic_df['Embarked'][titanic_df['Embarked']=='S'] = 0titanic_df['Embarked'][titanic_df['Embarked']=='Q'] = 1titanic_df['Embarked'][titanic_df['Embarked']=='C'] = 2titanic_df['Embarked']= titanic_df['Embarked'].astype(np.int64)
2、map()
embarked_mapping = {'S': 0, 'Q': 1, 'C': 2}titanic_df['Embarked'] = titanic_df['Embarked'].map(embarked_mapping)
对于有大小意义的离散特征,比如size:[X, XL, XXL],那么就可以直接使用数值的映射{X: 1, XL: 2, XXL: 3}
3、apply()
def get_number(c): dic = {'S': 0, 'Q': 1, 'C': 2} return dic[c]titanic_df['Embarked'] = titanic_df['Embarked'].apply(get_number)
4、LabelEncoder()
from sklearn.preprocessing import LabelEncoderle = LabelEncoder()titanic_df['Embarked'] = le.fit_transform(list(titanic_df['Embarked'])test_df['Embarked'] = le.fit_transform(list(test_df['Embarked'])
如果要查看类别与数值的对应关系,可以
le.classes_
5、pd.get_dummies()
titanic_df = pd.get_dummies(titanic_df, columns=['Embarked'])
6、one-hot编码
通常来说,特征不都是连续的值而是由分类给出的。例如,一个人可以具有如下特征:
[“male”, “female”]
[“from Europe”, “from US”, “from Asia”]
[“uses Firefox”, “uses Chrome”, “uses Safari”, “uses Internet Explorer”]
这样的特征可以被有效地整合在一起然后进行编码,比如:
[“male”, “from US”, “uses Internet Explorer”] 可以用[0, 1, 3]表示
[“female”, “from Asia”, “uses Chrome”] 可以用[1, 2, 1]表示
但是,这样的表示不能用于Sklearn进行估计,因为离散(分类)特征,将特征值转化成数字时往往是不连续的。OneHotEncoder函数通过one-of-K (k之一)和 one-hot(独热)编码来解决这个问题。
参考:
https://www.kaggle.com/omarelgabry/a-journey-through-titanic
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html
http://blog.csdn.net/cheng9981/article/details/61650879
- 对类别Category数据编码的几种方法
- python数据处理:对类别Category进行编码(转化为数值)
- 类别(Category)的作用(二)---对私有方法的前向引用
- 在分类及预测任务中对高维类别(category)变量的预处理方法
- objective-c中对类别category的理解
- 用js对字符串编码的几种方法
- ios category类别的使用
- ios category类别的使用
- OC category类别的使用
- 分类(类别)的应用 Category
- 好用的类别Category
- PHP对GB编码动态转UTF-8编码的几种方法评测
- php对gb编码动态转utf-8编码的几种方法评测
- js和php几种编码方法对特殊符号的编码对照表
- js和php几种编码方法对特殊符号的编码对照表
- 几种防止对数据“过分”挖掘的方法
- category 类别
- 类别category
- sklearn机器学习常用过程总结
- 线程的生命周期和状态转换
- Python字典数据对象拆分的小例子
- 设计模式之使用静态块,静态内部类,枚举类实现单例模式
- UVA1151buy or build 最小生成树+子集枚举
- 对类别Category数据编码的几种方法
- 【网易】游历魔法王国
- 机器学习笔记(4)-EM算法(期望极大算法)
- 用jenkins实现参数化构建-只依靠ssh
- 嵌入式 ARM9 对中断的整体理解(图)
- 【51NOD 1585】买邮票送邮票
- 炼数成金CUDA视频教程——第三课1——学习笔记
- 希尔排序
- 数据结构实验之二叉树二:遍历二叉树