天天看点

ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})

输出结果

ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})

设计思路

ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})

核心代码

for iDepth in depthList:

   for ixval in range(nxval):

       idxTest = [a for a in range(nrow) if a%nxval == ixval%nxval]

       idxTrain = [a for a in range(nrow) if a%nxval != ixval%nxval]

       xTrain = [x[r] for r in idxTrain]

       xTest = [x[r] for r in idxTest]

       yTrain = [y[r] for r in idxTrain]

       yTest = [y[r] for r in idxTest]

       treeModel = DecisionTreeRegressor(max_depth=iDepth)

       treeModel.fit(xTrain, yTrain)

       treePrediction = treeModel.predict(xTest)

       error = [yTest[r] - treePrediction[r] for r in range(len(yTest))]

       if ixval == 0:

           oosErrors = sum([e * e for e in error])

       else:

           oosErrors += sum([e * e for e in error])

   mse = oosErrors/nrow

   xvalMSE.append(mse)

继续阅读