EL之Bagging:利用Bagging演算法實現迴歸預測(實數值評分預測)問題
阿新 • • 發佈:2019-01-08
EL之Bagging:利用Bagging演算法實現迴歸預測(實數值評分預測)問題
輸出結果
設計思路
核心思路
#4.1、當treeDepth=1,對圖進行視覺化 #(1)、定義numTreesMax、treeDepth numTreesMax = 30 treeDepth = 1 # ----------------------▲▲▲▲▲ modelList = [] predList = [] #number of samples to draw for stochastic bagging nBagSamples = int(len(xTrain) * 0.5) for iTrees in range(numTreesMax): idxBag = [] for i in range(nBagSamples): idxBag.append(random.choice(range(len(xTrain)))) xTrainBag = [xTrain[i] for i in idxBag] yTrainBag = [yTrain[i] for i in idxBag] modelList.append(DecisionTreeRegressor(max_depth=treeDepth)) modelList[-1].fit(xTrainBag, yTrainBag) latestPrediction = modelList[-1].predict(xTest) predList.append(list(latestPrediction)) mse = [] allPredictions = [] for iModels in range(len(modelList)): prediction = [] for iPred in range(len(xTest)): prediction.append(sum([predList[i][iPred] for i in range(iModels + 1)])/(iModels + 1)) allPredictions.append(prediction) errors = [(yTest[i] - prediction[i]) for i in range(len(yTest))] mse.append(sum([e * e for e in errors]) / len(yTest)) #4.2、當treeDepth=1,對圖進行視覺化 #(1)、定義numTreesMax、treeDepth numTreesMax = 30 treeDepth = 5 # ----------------------▲▲▲▲▲ #4.3、當treeDepth=12,對圖進行視覺化 #(1)、定義numTreesMax、treeDepth numTreesMax = 100 # ----------------------☆☆☆☆☆ treeDepth = 12 # ----------------------☆☆☆☆☆