a、某些数值自变量在测量时存在随机偏差,须要对数值进行平滑以消除噪音算法
b、有些数值自变量有大量不重复的取值,对于使用 <、>、=等基本操做符的算法(如决策树)而言,若是能减小这些不重复取值的个数,就能提升算法的速度函数
c、有些算法只能使用分类自变量,须要把数值变量离散化spa
数据内被概括入几个分箱后,能够用每一个分箱内数值的均值、中位数或边界值替代分箱内各观测的数值,也能够把每一个分箱做为离散化后的一个类别。code
例如,对象
某个自变量的观测值为1,2.1,2.5,3.4,4,5.6,7,7.4,8.2.it
假设将它们分为三个分箱,(1,2.1,2.5),(3.4,4,5.6),(7,7.4,8.2),变量
那么使用分箱均值替代后所得值为(1.87,1.87,1.87),(4.33,4.33,4.33),(7.53,7.53,7.53),im
使用分箱中位数替代后所得值为(2.1,2.1,2.1),(4,4,4),(7.4,7.4,7.4),数据
使用边界值替代后所得值为(1,2.5,2.5),(3.4,3.4,5.6),(7,7,8.2)(每一个观测值由其所属分箱的两个边界值中较近的值替代)img
分箱法分为等深分箱(样本量一致,比等宽好)、等宽分箱(cut函数直接能够获取)
能够很方便的将一个连续型变量切割成很小的片断。下面是cut函数的默认形式,用于处理数值向量。该方式实现等宽分箱
#数值形式 cut(x,breaks,labels= NULL, include.lowers = F, right = TURE,dig.lab = 3, ordered_result = F,...)
x:数值向量(用于转换成一个因子)
breaks:指定分割点数量的整数,或者指定分割点位置的向量
labels:输出因子的水平的标签,默认问:null
include.lowest:逻辑值、当right = T时,代表区间左边的临界点是否应该被包含在区间内;当 right=F时,区间右边的临界点是否应该被包含在区间内,默认为F
rigth:逻辑值,代表区间是否应该是左开右闭的(当right=F,区间左闭右开),默认是T
dig.lab:当产生一个标签时,标签的有效位数(当标签未被显式指定时),默认是3
ordered_results:一个逻辑值,代表返回值是否应该被转换成有序因子,默认是FINS
cut函数还能够用来操纵R中的Date对象:
#日期形式 cut(x,breaks,labels=NULL,start.on.monday=T,right=F,...)
cut函数的输入是一个数值向量, 输出是一个因子。因子的每一个水平对应输入向量的每一个区间范围