1. 程式人生 > >EL之隨機性的Bagging:利用隨機選擇屬性的bagging方法解決迴歸(對多變數的資料集+實數值評分預測)問題

EL之隨機性的Bagging:利用隨機選擇屬性的bagging方法解決迴歸(對多變數的資料集+實數值評分預測)問題

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))