正文
为什么需要将数据分成两部分?
用 Training Data 来训练模型,用 Validation Data 来检验这个模型的表现,不然的话,通过各种调节参数,模型可以在训练数据集上面表现的非常出色,但是这可能会是过拟合,过拟合就是太依赖现有的数据了,拟合的效果特别好,但是只适用于训练集,以致于来一个新的数据,就不知道该预测成什么了。所以需要有 Validation 来验证一下,看这个模型是在那里自娱自乐呢,还是真的表现出色。
在 scikit learn 包里就有工具可以帮你做到这些:
分类问题用 StrtifiedKFold
from sklearn.cross_validation import StratifiedKFold
回归问题用 KFold
from sklearn.cross_validation import KFold
第三步:构造特征
这个时候,需要将数据转化成模型需要的形式。数据有三种类型:数字,类别,文字。当数据是类别的形式时,需要将它的每一类提取出来作为单独一列,然后用二进制表示每条记录相应的值。例如:
record 1: 性别 女
record 2:性别 女
record 3:性别 男
转化之后就是:
女 男
record 1: 1 0
record 2:1 0
record 3:0 1
这个过程 sklearn 也可以帮你做到:
from sklearn.preprocessing import LabelEncoder
或者
from sklearn.preprocessing import