<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Python 軟件包介紹 本文檔給出了有關 xgboost python 軟件包的基本演練. **_其他有用的鏈接列表_** * [Python 演練代碼集合](https://github.com/tqchen/xgboost/blob/master/demo/guide-python) * [Python API 參考](python_api.html) ## 安裝 XGBoost 要安裝 XGBoost, 請執行以下步驟: * 您需要在項目的根目錄下運行 `make` 命令 * 在 `python-package` 目錄下運行 ``` python setup.py install ``` ``` import xgboost as xgb ``` ## 數據接口 XGBoost python 模塊能夠使用以下方式加載數據: * libsvm txt format file(libsvm 文本格式的文件) * Numpy 2D array, and(Numpy 2維數組, 以及) * xgboost binary buffer file. (xgboost 二進制緩沖文件) 這些數據將會被存在一個名為 `DMatrix` 的對象中. * 要加載 ligbsvm 文本格式或者 XGBoost 二進制文件到 `DMatrix` 對象中. 代碼如下: ``` dtrain = xgb.DMatrix('train.svm.txt') dtest = xgb.DMatrix('test.svm.buffer') ``` * 要加載 numpy 的數組到 `DMatrix` 對象中, 代碼如下: ``` data = np.random.rand(5,10) # 5 entities, each contains 10 features label = np.random.randint(2, size=5) # binary target dtrain = xgb.DMatrix( data, label=label) ``` * 要加載 scpiy.sparse 數組到 `DMatrix` 對象中, 代碼如下: ``` csr = scipy.sparse.csr_matrix((dat, (row, col))) dtrain = xgb.DMatrix(csr) ``` * 保存 `DMatrix` 到 XGBoost 二進制文件中后, 會在下次加載時更快: ``` dtrain = xgb.DMatrix('train.svm.txt') dtrain.save_binary("train.buffer") ``` * 要處理 `DMatrix` 中的缺失值, 您可以通過指定缺失值的參數來初始化 `DMatrix`: ``` dtrain = xgb.DMatrix(data, label=label, missing = -999.0) ``` * 在需要時可以設置權重: ``` w = np.random.rand(5, 1) dtrain = xgb.DMatrix(data, label=label, missing = -999.0, weight=w) ``` ## 設置參數 XGBoost 使用 pair 格式的 list 來保存 [_參數_](../parameter.html). 例如: * Booster(提升)參數 ``` param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' } param['nthread'] = 4 param['eval_metric'] = 'auc' ``` * 您也可以指定多個評估的指標: ``` param['eval_metric'] = ['auc', 'ams@0'] # alternativly: # plst = param.items() # plst += [('eval_metric', 'ams@0')] ``` * 指定驗證集以觀察性能 ``` evallist = [(dtest,'eval'), (dtrain,'train')] ``` ## 訓練 有用參數列表和數據以后, 您現在可以訓練一個模型了. * 訓練 ``` num_round = 10 bst = xgb.train( plst, dtrain, num_round, evallist ) ``` * 保存模型 訓練之后,您可以保存模型并將其轉儲出去. ``` bst.save_model('0001.model') ``` * 轉儲模型和特征映射 您可以將模型轉儲到 txt 文件并查看模型的含義 ``` # 轉存模型 bst.dump_model('dump.raw.txt') # 轉儲模型和特征映射 bst.dump_model('dump.raw.txt','featmap.txt') ``` * 加載模型 當您保存模型后, 您可以使用如下方式在任何時候加載模型文件 ``` bst = xgb.Booster({'nthread':4}) #init model bst.load_model("model.bin") # load data ``` ## 提前停止 如果您有一個驗證集, 你可以使用提前停止找到最佳數量的 boosting rounds(梯度次數). 提前停止至少需要一個 `evals` 集合. 如果有多個, 它將使用最后一個. `train(..., evals=evals, early_stopping_rounds=10)` 該模型將開始訓練, 直到驗證得分停止提高為止. 驗證錯誤需要至少每個 `early_stopping_rounds` 減少以繼續訓練. 如果提前停止,模型將有三個額外的字段: `bst.best_score`, `bst.best_iteration` 和 `bst.best_ntree_limit`. 請注意 `train()` 將從上一次迭代中返回一個模型, 而不是最好的一個. 這與兩個度量標準一起使用以達到最小化(RMSE, 對數損失等)和最大化(MAP, NDCG, AUC). 請注意, 如果您指定多個評估指標, 則 `param ['eval_metric']` 中的最后一個用于提前停止. ## 預測 當您 訓練/加載 一個模型并且準備好數據之后, 即可以開始做預測了. ``` # 7 個樣本, 每一個包含 10 個特征 data = np.random.rand(7, 10) dtest = xgb.DMatrix(data) ypred = bst.predict(xgmat) ``` 如果在訓練過程中提前停止, 可以用 `bst.best_ntree_limit` 從最佳迭代中獲得預測結果: ``` ypred = bst.predict(xgmat,ntree_limit=bst.best_ntree_limit) ``` ## 繪圖 您可以使用 plotting(繪圖)模塊來繪制出 importance(重要性)以及輸出的 tree(樹). 要繪制出 importance(重要性), 可以使用 `plot_importance`. 該函數需要安裝 `matplotlib`. ``` xgb.plot_importance(bst) ``` 輸出的 tree(樹)會通過 `matplotlib` 來展示, 使用 `plot_tree` 指定 target tree(目標樹)的序號. 該函數需要 `graphviz` 和 `matplotlib`. ``` xgb.plot_tree(bst, num_trees=2) ``` 當您使用 `IPython` 時, 你可以使用 `to_graphviz` 函數, 它可以將 target tree(目標樹)轉換成 `graphviz` 實例. `graphviz` 實例會自動的在 `IPython` 上呈現. ``` xgb.to_graphviz(bst, num_trees=2) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看