某些数据挖掘方法能够直接处理分类自变量,譬如第八章将介绍的决策树;但很多数据挖掘方法都只能处理数值自变量,如线性回归、神经网络等,使用这些方法时就需要把分类自变量转换为数值自变量。
对于定序自变量,最常用的一种转换是按各类别的序号直接将该变量转换为数值自变量。对于名义自变量,最常用的转换是将该变量转换为哑变量。例如,对于性别而言,可以生成一个二元哑变量,取值1表示“女”,0表示“男”。
对于有多个取值的名义自变量,可以生成一系列二元哑变量。例如,中国内地有31个省、自治区和直辖市,可以据此生成30个哑变量。但是,如果一个名义自变量取值过多,生成过多的哑变量容易造成过度拟合。一个简单而有效的方法是只针对包含观测比较多的类别生成哑变量,而将剩余的类别都归于“其他”这个大类别。还有一种方法是利用领域知识,将各类别归为几个大类之后再生成哑变量,例如,将中国内地31个省、自治区和直辖市归为华北、华中、华东、华南、西北、东北、西南等地区,再生成地区的哑变量。
时间变量无法直接进入建模数据集,因为时间是无限增长的,在历史数据中出现的时间肯定不同于将来模型所需应用的数据集中出现的时间,所以直接使用历史数据的时间建立的模型就无法应用于将来的数据集。如果要在建模过程中考虑时间变量,就必须对其进行转换。常用的转换有如下几种:
1.转换为距某一基准时间的时间长短,例如,“距离××年××月××日的天数”、“距离下一次春节的周数”等。
2.转换为季节性信息,例如,一年中第几季度或第几个月,每个季度或月对应于一个二元哑变量。
很多情形下可以考虑对时间进行多种转换,把所有可能影响因变量的时间信息都放入建模过程中。例如,对于某些食品的购买量而言,不仅存在节日效应,也存在季节性效应,这时就需要同时使用上述两种转换。