<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 使用 Python 中的描述性統計來了解您的機器學習數據 > 原文: [https://machinelearningmastery.com/understand-machine-learning-data-descriptive-statistics-python/](https://machinelearningmastery.com/understand-machine-learning-data-descriptive-statistics-python/) 您必須了解您的數據才能獲得最佳效果。 在這篇文章中,您將發現可以在 Python 中使用的 7 個秘籍,以了解有關機器學習數據的更多信息。 讓我們開始吧。 * **更新 March / 2018** :添加了備用鏈接以下載數據集,因為原始圖像已被刪除。 ![Understand Your Machine Learning Data With Descriptive Statistics in Python](https://img.kancloud.cn/fb/65/fb65198ab004ec3da7dcd6f881008729_500x375.jpg) 使用 Python 中的描述性統計理解您的機器學習數據 [過路人](https://www.flickr.com/photos/passer-by/75060078/)的照片,保留一些權利。 ## Python Recipes 了解您的機器學習數據 本節列出了 7 種可用于更好地了解機器學習數據的秘籍。 通過加載來自 UCI 機器學習庫的 [Pima 印第安人糖尿病](https://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes)分類數據集來證明每個秘籍(更新:[從這里下載](https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv))。 打開你的 python 交互式環境,依次嘗試每個秘籍。 ### 1.窺視您的數據 查看原始數據是無可替代的。 查看原始數據可以揭示您無法通過任何其他方式獲得的見解。它還可以種植種子,這些種子可能會成為如何更好地預處理和處理機器學習任務數據的想法。 您可以使用 Pandas DataFrame 上的 _head()_ 函數查看數據的前 20 行。 ``` # View first 20 rows import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) peek = data.head(20) print(peek) ``` 您可以看到第一列列出了行號,這對于引用特定觀察非常方便。 ``` preg plas pres skin test mass pedi age class 0 6 148 72 35 0 33.6 0.627 50 1 1 1 85 66 29 0 26.6 0.351 31 0 2 8 183 64 0 0 23.3 0.672 32 1 3 1 89 66 23 94 28.1 0.167 21 0 4 0 137 40 35 168 43.1 2.288 33 1 5 5 116 74 0 0 25.6 0.201 30 0 6 3 78 50 32 88 31.0 0.248 26 1 7 10 115 0 0 0 35.3 0.134 29 0 8 2 197 70 45 543 30.5 0.158 53 1 9 8 125 96 0 0 0.0 0.232 54 1 10 4 110 92 0 0 37.6 0.191 30 0 11 10 168 74 0 0 38.0 0.537 34 1 12 10 139 80 0 0 27.1 1.441 57 0 13 1 189 60 23 846 30.1 0.398 59 1 14 5 166 72 19 175 25.8 0.587 51 1 15 7 100 0 0 0 30.0 0.484 32 1 16 0 118 84 47 230 45.8 0.551 31 1 17 7 107 74 0 0 29.6 0.254 31 1 18 1 103 30 38 83 43.3 0.183 33 0 19 1 115 70 30 96 34.6 0.529 32 1 ``` ### 2.數據的大小 您必須非常好地處理您擁有的數據量,無論是行數還是列數。 * 太多行和算法可能需要很長時間才能進行訓練。太少,也許你沒有足夠的數據來訓練算法。 * 由于維數的詛咒,太多的功能和一些算法可能會分散注意力或表現不佳。 您可以通過在 Pandas DataFrame 上打印 shape 屬性來查看數據集的形狀和大小。 ``` # Dimensions of your data import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) shape = data.shape print(shape) ``` 結果列在行然后列中。您可以看到數據集有 768 行和 9 列。 ``` (768, 9) ``` ### 3.每個屬性的數據類型 每個屬性的類型很重要。 字符串可能需要轉換為浮點值或整數以表示分類或序數值。 如上所述,您可以通過查看原始數據來了解屬性的類型。您還可以使用 _dtypes_ 屬性列出 DataFrame 用于表征每個屬性的數據類型。 ``` # Data Types for Each Attribute import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) types = data.dtypes print(types) ``` 您可以看到大多數屬性都是整數,而 mass 和 pedi 是浮點值。 ``` preg int64 plas int64 pres int64 skin int64 test int64 mass float64 pedi float64 age int64 class int64 dtype: object ``` ### 4.描述性統計 描述性統計可以讓您深入了解每個屬性的形狀。 通常,您可以創建比您有時間審核的摘要更多的摘要。 Pandas DataFrame 上的 _describe()_ 函數列出了每個屬性的 8 個統計屬性: * 計數 * 意思 * 標準偏差 * 最低價值 * 25%百分位數 * 第 50 百分位數(中位數) * 第 75 百分位 * 最大價值 ``` # Statistical Summary import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) pandas.set_option('display.width', 100) pandas.set_option('precision', 3) description = data.describe() print(description) ``` 您可以看到您確實獲得了大量數據。您將注意到秘籍中對 _pandas.set_option()_ 的一些調用,以更改數字的精度和輸出的首選寬度。這是為了使這個例子更具可讀性。 以這種方式描述您的數據時,值得花一些時間并從結果中查看觀察結果。這可能包括缺少數據的“ _NA_ ”值或屬性的令人驚訝的分布。 ``` preg plas pres skin test mass pedi age class count 768.000 768.000 768.000 768.000 768.000 768.000 768.000 768.000 768.000 mean 3.845 120.895 69.105 20.536 79.799 31.993 0.472 33.241 0.349 std 3.370 31.973 19.356 15.952 115.244 7.884 0.331 11.760 0.477 min 0.000 0.000 0.000 0.000 0.000 0.000 0.078 21.000 0.000 25% 1.000 99.000 62.000 0.000 0.000 27.300 0.244 24.000 0.000 50% 3.000 117.000 72.000 23.000 30.500 32.000 0.372 29.000 0.000 75% 6.000 140.250 80.000 32.000 127.250 36.600 0.626 41.000 1.000 max 17.000 199.000 122.000 99.000 846.000 67.100 2.420 81.000 1.000 ``` ### 5.類別分布(僅限分類) 在分類問題上,您需要知道類值的平衡程度。 高度不平衡的問題(對于一個類別的觀察比另一個類別更多)是常見的,并且可能需要在項目的數據準備階段進行特殊處理。 您可以快速了解 Pandas 中 class 屬性的分布。 ``` # Class Distribution import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) class_counts = data.groupby('class').size() print(class_counts) ``` 您可以看到,與 0 級(糖尿病發病)相比,0 級(無糖尿病發作)的觀察數量幾乎翻了一番。 ``` class 0 500 1 268 ``` ### 6.屬性之間的相關性 相關性是指兩個變量之間的關系以及它們如何一起變化或不變化。 計算相關性的最常用方法是 [Pearson 相關系數](https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient),它假定所涉及屬性的正態分布。 -1 或 1 的相關性分別顯示完全的負相關或正相關。值 0 表示根本沒有相關性。 如果數據集中存在高度相關的屬性,則某些機器學習算法(如線性和邏輯回歸)可能會遇到表現較差的情況。因此,最好檢查數據集中屬性的所有成對關聯。您可以使用 Pandas DataFrame 上的 _corr()_ 函數來計算相關矩陣。 ``` # Pairwise Pearson correlations import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) pandas.set_option('display.width', 100) pandas.set_option('precision', 3) correlations = data.corr(method='pearson') print(correlations) ``` 矩陣列出了頂部和側面的所有屬性,以給出所有屬性對之間的相關性(兩次,因為矩陣是對稱的)。您可以看到矩陣左上角到右下角的矩陣對角線顯示每個屬性與自身的完美關聯。 ``` preg plas pres skin test mass pedi age class preg 1.000 0.129 0.141 -0.082 -0.074 0.018 -0.034 0.544 0.222 plas 0.129 1.000 0.153 0.057 0.331 0.221 0.137 0.264 0.467 pres 0.141 0.153 1.000 0.207 0.089 0.282 0.041 0.240 0.065 skin -0.082 0.057 0.207 1.000 0.437 0.393 0.184 -0.114 0.075 test -0.074 0.331 0.089 0.437 1.000 0.198 0.185 -0.042 0.131 mass 0.018 0.221 0.282 0.393 0.198 1.000 0.141 0.036 0.293 pedi -0.034 0.137 0.041 0.184 0.185 0.141 1.000 0.034 0.174 age 0.544 0.264 0.240 -0.114 -0.042 0.036 0.034 1.000 0.238 class 0.222 0.467 0.065 0.075 0.131 0.293 0.174 0.238 1.000 ``` ### 7.單變量分布的偏差 偏斜指的是假設高斯(正常曲線或鐘形曲線)在一個方向或另一個方向上移位或壓扁的分布。 許多機器學習算法假設高斯分布。知道屬性有偏差可能允許您執行數據準備以糾正偏斜,然后提高模型的準確性。 您可以使用 Pandas DataFrame 上的 _skew()_ 函數計算每個屬性的偏斜。 ``` # Skew for each attribute import pandas url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = pandas.read_csv(url, names=names) skew = data.skew() print(skew) ``` 偏斜結果顯示正(右)或負(左)偏斜。接近零的值顯示較少的偏斜。 ``` preg 0.901674 plas 0.173754 pres -1.843608 skin 0.109372 test 2.272251 mass -0.428982 pedi 1.919911 age 1.129597 class 0.635017 ``` ## 更多秘籍 這只是一些最有用的摘要和描述性統計數據的選擇,您可以在機器學習數據上使用這些摘要和描述性統計數據進行分類和回歸。 您還可以計算許多其他統計數據。 當您開始處理新數據集時,是否有您想要計算和審核的特定統計信息?發表評論并告訴我。 ## 要記住的提示 本部分為您提供了在使用摘要統計信息查看數據時要記住的一些提示。 * **查看數字**。生成摘要統計數據是不夠的。花點時間暫停,閱讀并真正考慮您所看到的數字。 * **問為什么**。檢查您的號碼并提出很多問題。你是如何以及為什么看到具體的數字。考慮數字如何與一般的問題域以及觀察所涉及的特定實體相關。 * **寫下想法**。寫下你的觀察和想法。保留一個小的文本文件或記事本,記下關于變量如何相關的所有想法,數字的含義以及稍后嘗試的技巧的想法。當你想要嘗試新事物時,你現在在數據新鮮時記下的東西將非常有價值。 ## 摘要 在這篇文章中,您發現了在開始處理機器學習項目之前描述數據集的重要性。 您發現了使用 Python 和 Pandas 匯總數據集的 7 種不同方法: 1. 窺視你的數據 2. 您的數據的維度 3. 數據類型 4. 類分布 5. 數據摘要 6. 相關性 7. 偏態 ### 行動步驟 1. 打開 Python 交互式環境。 2. 輸入或復制并粘貼每個秘籍,看看它是如何工作的。 3. 讓我知道你如何評論。 您對此帖子中的 Python,Pandas 或秘籍有任何疑問嗎?發表評論并提出問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看