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)
赞 (0)