EL之隨機性的Bagging:利用隨機選擇屬性的bagging方法解決迴歸(對多變數的資料集+實數值評分預測)問題
阿新 • • 發佈:2019-01-09
EL之隨機性的Bagging:利用隨機選擇屬性的bagging方法解決迴歸(對多變數的資料集+實數值評分預測)問題
輸出結果
設計思路
核心程式碼
for iTrees in range(numTreesMax): modelList.append(DecisionTreeRegressor(max_depth=treeDepth)) #第一個隨機:隨機抽取屬性樣本 idxAttr = random.sample(range(ncols), nAttr) idxAttr.sort() indexList.append(idxAttr) #第二個隨機:隨機抽取訓練行樣本 idxRows = [] for i in range(int(0.5 * nTrainRows)): idxRows.append(random.choice(range(len(xTrain)))) idxRows.sort() xRfTrain = [] yRfTrain = [] for i in range(len(idxRows)): temp = [xTrain[idxRows[i]][j] for j in idxAttr] xRfTrain.append(temp) yRfTrain.append(yTrain[idxRows[i]]) modelList[-1].fit(xRfTrain, yRfTrain) xRfTest = [] for xx in xTest: temp = [xx[i] for i in idxAttr] xRfTest.append(temp) latestOutSamplePrediction = modelList[-1].predict(xRfTest) predList.append(list(latestOutSamplePrediction))