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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 如何使用 scikit-learn 在 Python 中開發您的第一個 XGBoost 模型 > 原文: [https://machinelearningmastery.com/develop-first-xgboost-model-python-scikit-learn/](https://machinelearningmastery.com/develop-first-xgboost-model-python-scikit-learn/) XGBoost 是梯度提升決策樹的一種實現,旨在提高競爭機器學習速度和表現。 在這篇文章中,您將了解如何在 Python 中安裝和創建第一個 XGBoost 模型。 閱讀這篇文章后你會知道: * 如何在您的系統上安裝 XGBoost 以便在 Python 中使用。 * 如何準備數據并訓練您的第一個 XGBoost 模型。 * 如何使用 XGBoost 模型進行預測。 讓我們開始吧。 * **2017 年 1 月更新**:已更新,以反映 scikit-learn API 版本 0.18.1 中的更改??。 * **2017 年 3 月更新**:添加缺失導入,使導入更清晰。 * **更新 March / 2018** :添加了備用鏈接以下載數據集,因為原始圖像已被刪除。 ![How to Develop Your First XGBoost Model in Python with scikit-learn](https://img.kancloud.cn/74/d3/74d35310a6c5bdd6aff0ef7b434d34d9_640x425.jpg) 如何用 scikit-learn 開發你的第一個 XGBoost 模型 照片由 [Justin Henry](https://www.flickr.com/photos/zappowbang/524307651/) 開發,保留一些權利。 ## 教程概述 本教程分為以下 6 個部分: 1. 安裝 XGBoost 以與 Python 一起使用。 2. 問題定義和下載數據集。 3. 加載并準備數據。 4. 訓練 XGBoost 模型。 5. 進行預測并評估模型。 6. 將它們結合在一起并運行示例。 ## 1.安裝 XGBoost 以便在 Python 中使用 假設您有一個可用的 SciPy 環境,可以使用 pip 輕松安裝 XGBoost。 例如: ```py sudo pip install xgboost ``` 要更新 XGBoost 的安裝,您可以鍵入: ```py sudo pip install --upgrade xgboost ``` 如果您不能使用 pip 或者想要從 GitHub 運行最新代碼,則另一種安裝 XGBoost 的方法要求您復制 XGBoost 項目并執行手動構建和安裝。 例如,要在 Mac OS X 上沒有多線程構建 XGBoost(已經通過 macports 或 homebrew 安裝了 GCC),您可以鍵入: ```py git clone --recursive https://github.com/dmlc/xgboost cd xgboost cp make/minimum.mk ./config.mk make -j4 cd python-package sudo python setup.py install ``` 您可以在 [XGBoost 安裝指南](http://xgboost.readthedocs.io/en/latest/build.html)上了解有關如何為不同平臺安裝 XGBoost 的更多信息。有關安裝 XGBoost for Python 的最新說明,請參閱 [XGBoost Python 包](https://github.com/dmlc/xgboost/tree/master/python-package)。 作為參考,您可以查看 [XGBoost Python API 參考](http://xgboost.readthedocs.io/en/latest/python/python_api.html)。 ## 2.問題描述:預測糖尿病的發病 在本教程中,我們將使用皮馬印第安人糖尿病數據集。 該數據集由描述患者醫療細節的 8 個輸入變量和一個輸出變量組成,以指示患者是否在 5 年內患有糖尿病。 您可以在 UCI 機器學習存儲庫網站上了解有關此數據集的更多信息。 這是第一個 XGBoost 模型的一個很好的數據集,因為所有輸入變量都是數字的,問題是一個簡單的二進制分類問題。對于 XGBoost 算法來說,它不一定是一個好問題,因為它是一個相對較小的數據集,并且很容易建模。 下載此數據集并將其放入當前工作目錄,文件名為“ **pima-indians-diabetes.csv** ”(更新:[從此處下載](https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv))。 ## 3.加載和準備數據 在本節中,我們將從文件加載數據并準備用于訓練和評估 XGBoost 模型。 我們將從導入我們打算在本教程中使用的類和函數開始。 ```py from numpy import loadtxt from xgboost import XGBClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score ``` 接下來,我們可以使用 NumPy 函數 **loadtext()**將 CSV 文件作為 NumPy 數組加載。 ```py # load data dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",") ``` 我們必須將數據集的列(屬性或特征)分成輸入模式(X)和輸出模式(Y)。我們可以通過以 NumPy 數組格式指定列索引來輕松完成此操作。 ```py # split data into X and y X = dataset[:,0:8] Y = dataset[:,8] ``` 最后,我們必須將 X 和 Y 數據拆分為訓練和測試數據集。訓練集將用于準備 XGBoost 模型,測試集將用于進行新的預測,我們可以從中評估模型的表現。 為此,我們將使用 scikit-learn 庫中的 **train_test_split()**函數。我們還為隨機數生成器指定種子,以便每次執行此示例時始終獲得相同的數據分割。 ```py # split data into train and test sets seed = 7 test_size = 0.33 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed) ``` 我們現在準備訓練我們的模型。 ## 4.訓練 XGBoost 模型 XGBoost 提供了一個包裝類,允許在 scikit-learn 框架中將模型視為分類器或回歸器。 這意味著我們可以使用帶有 XGBoost 模型的完整 scikit-learn 庫。 用于分類的 XGBoost 模型稱為 **XGBClassifier** 。我們可以創建并使其適合我們的訓練數據集。使用 scikit-learn API 和 **model.fit()**函數擬合模型。 訓練模型的參數可以傳遞給構造函數中的模型。在這里,我們使用合理的默認值。 ```py # fit model no training data model = XGBClassifier() model.fit(X_train, y_train) ``` 您可以通過打印模型來查看訓練模型中使用的參數,例如: ```py print(model) ``` 您可以在 [XGBoost Python scikit-learn API](http://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.sklearn) 中了解有關 **XGBClassifier** 和 **XGBRegressor** 類的默認值的更多信息。 您可以在 [XGBoost 參數頁面](http://xgboost.readthedocs.io/en/latest//parameter.html)上了解有關每個參數含義以及如何配置它們的更多信息。 我們現在準備使用訓練有素的模型進行預測。 ## 5.使用 XGBoost 模型進行預測 我們可以使用測試數據集上的擬合模型進行預測。 為了進行預測,我們使用 scikit-learn 函數 **model.predict()**。 默認情況下,XGBoost 進行的預測是概率。因為這是二元分類問題,所以每個預測是輸入模式屬于第一類的概率。我們可以通過將它們四舍五入為 0 或 1 來輕松地將它們轉換為二進制類值。 ```py # make predictions for test data y_pred = model.predict(X_test) predictions = [round(value) for value in y_pred] ``` 現在我們已經使用擬合模型對新數據進行預測,我們可以通過將預測值與預期值進行比較來評估預測的表現。為此,我們將在 scikit-learn 中使用內置的 **accuracy_score()**函數。 ```py # evaluate predictions accuracy = accuracy_score(y_test, predictions) print("Accuracy: %.2f%%" % (accuracy * 100.0)) ``` ## 6.將它們捆綁在一起 我們可以將所有這些部分組合在一起,下面是完整的代碼清單。 ```py # First XGBoost model for Pima Indians dataset from numpy import loadtxt from xgboost import XGBClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # load data dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",") # split data into X and y X = dataset[:,0:8] Y = dataset[:,8] # split data into train and test sets seed = 7 test_size = 0.33 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed) # fit model no training data model = XGBClassifier() model.fit(X_train, y_train) # make predictions for test data y_pred = model.predict(X_test) predictions = [round(value) for value in y_pred] # evaluate predictions accuracy = accuracy_score(y_test, predictions) print("Accuracy: %.2f%%" % (accuracy * 100.0)) ``` 運行此示例將生成以下輸出。 ```py Accuracy: 77.95% ``` 對于這個問題,這是一個[良好的準確度得分,我們可以期待,考慮到模型的能力和問題的適度復雜性。](http://www.is.umk.pl/projects/datasets.html#Diabetes) ## 摘要 在這篇文章中,您了解了如何在 Python 中開發第一個 XGBoost 模型。 具體來說,你學到了: * 如何在您的系統上安裝 XGBoost 以備 Python 使用。 * 如何在標準機器學習數據集上準備數據并訓練您的第一個 XGBoost 模型。 * 如何使用 scikit-learn 進行預測并評估訓練有素的 XGBoost 模型的表現。 您對 XGBoost 或該帖子有任何疑問嗎?在評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看