zoukankan      html  css  js  c++  java
  • 机器学习实战基础(十二):sklearn中的数据预处理和特征工程(五) 数据预处理 Preprocessing & Impute 之 处理分类特征:处理连续性特征 二值化与分段

    处理连续性特征 二值化与分段

    sklearn.preprocessing.Binarizer
    根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量。大于阈值的值映射为1,而小于或等于阈值的值映射为0。默认阈值为0时,特征中所有的正值都映射到1。
    二值化是对文本计数数据的常见操作,分析人员可以决定仅考虑某种现象的存在与否。它还可以用作考虑布尔随机变量的估计器的预处理步骤(例如,使用贝叶斯设置中的伯努利分布建模)。

    #将年龄二值化
    data_2 = data.copy()
     
    from sklearn.preprocessing import Binarizer
    X = data_2.iloc[:,0].values.reshape(-1,1)               #类为特征专用,所以不能使用一维数组
    transformer = Binarizer(threshold=30).fit_transform(X)
     
    transformer

    preprocessing.KBinsDiscretizer
    这是将连续型变量划分为分类变量的类,能够将连续型变量排序后按顺序分箱后编码。总共包含三个重要参数:

    from sklearn.preprocessing import KBinsDiscretizer
     
    X = data.iloc[:,0].values.reshape(-1,1) 
    est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
    est.fit_transform(X)
     
    #查看转换后分的箱:变成了一列中的三箱
    set(est.fit_transform(X).ravel())
     
    est = KBinsDiscretizer(n_bins=3, encode='onehot', strategy='uniform')
    #查看转换后分的箱:变成了哑变量
    est.fit_transform(X).toarray()



  • 相关阅读:
    iOS开发——工厂模式
    iOS开发——单例模式
    iOS开发——设备信息小结(未完待续...)
    iOS开发——点击图片全屏显示
    关于Extjs Grid的选择问题
    Extjs form表单获得Values,表单控件没有Name,只有值时,如何获取后面的值
    Extjs Grid获取当前选中的行号
    让ToolBar的Item放置在右边(默认为左边)
    WBS探讨
    EXtjs为combo设置默认值
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12981363.html
Copyright © 2011-2022 走看看