<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 模型 > 原文:[https://www.bookbookmark.ds100.org/ch/10/modeling_simple.html](https://www.bookbookmark.ds100.org/ch/10/modeling_simple.html) ``` # HIDDEN # Clear previously defined variables %reset -f # Set directory for data loading to work properly import os os.chdir(os.path.expanduser('~/notebooks/10')) ``` ``` # HIDDEN import warnings # Ignore numpy dtype warnings. These warnings are caused by an interaction # between numpy and Cython and can be safely ignored. # Reference: https://stackoverflow.com/a/40846742 warnings.filterwarnings("ignore", message="numpy.dtype size changed") warnings.filterwarnings("ignore", message="numpy.ufunc size changed") import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns %matplotlib inline import ipywidgets as widgets from ipywidgets import interact, interactive, fixed, interact_manual import nbinteract as nbi sns.set() sns.set_context('talk') np.set_printoptions(threshold=20, precision=2, suppress=True) pd.options.display.max_rows = 7 pd.options.display.max_columns = 8 pd.set_option('precision', 2) # This option stops scientific notation for pandas # pd.set_option('display.float_format', '{:.2f}'.format) ``` 在美國,許多用餐者會在用餐者付錢時給他們的服務員留下小費。盡管美國習慣于提供 15%的小費,但也許有些餐館的顧客比其他餐館更慷慨。 一個特別的服務員對他能得到多少小費非常感興趣,他收集了他在一個月工作期間提供的所有桌子的信息。 ``` # HIDDEN tips = sns.load_dataset('tips') tips ``` | | 賬單合計 | 提示 | 性別 | 吸煙者 | 白天 | 時間 | 大小 | | --- | --- | --- | --- | --- | --- | --- | --- | | 零 | 十六點九九 | 1.01 年 | 女性 | 不 | 太陽 | 晚餐 | 二 | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 個 | 十點三四 | 一點六六 | 男性 | No | Sun | Dinner | 三 | | --- | --- | --- | --- | --- | --- | --- | --- | | 二 | 二十一點零一 | 3.50 美元 | Male | No | Sun | Dinner | 3 | | --- | --- | --- | --- | --- | --- | --- | --- | | …… | …… | ... | ... | ... | ... | ... | ... | | --- | --- | --- | --- | --- | --- | --- | --- | | 241 個 | 二十二點六七 | 2.00 美元 | Male | 是的 | 坐 | Dinner | 2 | | --- | --- | --- | --- | --- | --- | --- | --- | | 二百四十二 | 十七點八二 | 1.75 美元 | Male | No | Sat | Dinner | 2 | | --- | --- | --- | --- | --- | --- | --- | --- | | 二百四十三 | 十八點七八 | 3 點 | Female | No | 周四 | Dinner | 2 | | --- | --- | --- | --- | --- | --- | --- | --- | 244 行×7 列 我們可以繪制尖端數量的柱狀圖: ``` # HIDDEN sns.distplot(tips['tip'], bins=np.arange(0, 10.1, 0.25), rug=True) plt.xlabel('Tip Amount in Dollars') plt.ylabel('Proportion per Dollar'); ``` ![](https://img.kancloud.cn/f1/45/f1456be1d008e00e959aa0192b073e14_415x290.jpg) 數據中已經有一些有趣的模式。例如,有一個清晰的模式是 2 美元,大多數提示似乎是 0.50 美元的倍數。 目前,我們對小費百分比最感興趣:小費金額除以賬單金額。我們可以在數據框架中為這個變量創建一個列并顯示它的分布。 ``` # HIDDEN tips['pcttip'] = tips['tip'] / tips['total_bill'] * 100 sns.distplot(tips['pcttip'], rug=True) plt.xlabel('Percent Tip Amount') plt.ylabel('Proportion per Percent'); ``` ![](https://img.kancloud.cn/e0/de/e0deb5a22920bf12b46efb246ae47ef6_424x290.jpg) 看起來有一張桌子給了我們的服務員 70 美元的小費!然而,大部分小費百分比低于 30 美元。讓我們放大分布的那部分。 ``` # HIDDEN sns.distplot(tips['pcttip'], bins=np.arange(30), rug=True) plt.xlim(0, 30) plt.xlabel('Percent Tip Amount') plt.ylabel('Proportion per Percent'); ``` ![](https://img.kancloud.cn/4c/11/4c1197b8e25dc4297c9dd000c2904e02_424x290.jpg) 我們可以看到分布大致集中在$15\%$和另一個潛在模式$20\%$之間。假設我們的服務員有興趣預測他從一張給定的桌子上能得到多少小費。為了解決這個問題,我們可以創建一個服務生能得到多少小費的模型。 ### 一個簡單的模型 一個簡單的模型是完全忽略數據,并聲明由于美國的慣例是給 15%的小費,服務員總是從他的桌子上得到 15%的小費。雖然非常簡單,但我們將使用這個模型來定義一些稍后將使用的變量。 這個模型假設有一個正確的百分比提示,所有的表,過去和未來,都將給服務員。這是百分比提示的 _ 填充參數 _,我們將用$\theta^*$表示。 在做出這個假設之后,我們的模型說我們對$\theta^*$的猜測是$15\%$。我們將使用$\theta$來表示當前的猜測。 在數學符號中,我們的模型指出: $$\theta=15$$ 如果模型是真的,那么這個模型顯然是有問題的,我們數據集中的每個表都應該給服務員 15%的小費。盡管如此,這個模型將對許多場景做出合理的猜測。事實上,如果我們沒有其他信息,除了服務員受雇于美國之外,這個模型可能是最有用的選擇。 但是,由于我們的服務生收集了數據,我們可以使用他的提示歷史來創建模型,而不是僅根據慣例選擇 15%。 ### 損失函數直覺 為了方便起見,下面復制了數據集中提示百分比的分布。 ``` # HIDDEN sns.distplot(tips['pcttip'], bins=np.arange(30), rug=True) plt.xlim(0, 30) plt.xlabel('Percent Tip Amount') plt.ylabel('Proportion per Percent'); ``` ![](https://img.kancloud.cn/4c/11/4c1197b8e25dc4297c9dd000c2904e02_424x290.jpg) 假設我們正在比較兩個選項,分別是:$10\%$和$15\%$。我們可以在發行版上標記這兩種選擇: ``` # HIDDEN sns.distplot(tips['pcttip'], bins=np.arange(30), rug=True) plt.axvline(x=10, c='darkblue', linestyle='--', label=r'$ \theta = 10$') plt.axvline(x=15, c='darkgreen', linestyle='--', label=r'$ \theta = 15$') plt.legend() plt.xlim(0, 30) plt.xlabel('Percent Tip Amount') plt.ylabel('Proportion per Percent'); ``` ![](https://img.kancloud.cn/ce/55/ce552b229bfbbf38110a16b9e17fd9ce_424x290.jpg) 直觀地說,在給定數據集的情況下,選擇$\theta=15$比選擇$\theta=10$更有意義。這是為什么?當我們查看數據中的點時,我們可以看到更多的點接近 15 美元,而不是 10 美元。 雖然看起來很明顯,$\theta=15$比$\theta=10$是更好的選擇,但還不太清楚,$\theta=15$是否比$\theta=16$更好。為了在不同的$\theta$值之間做出精確的選擇,我們要為每個$\theta$值分配一個數字,該數字測量數據的“好”程度。也就是說,我們需要一個函數,它將輸入一個$\theta$值和數據集中的點,輸出一個單一的數字,我們將使用它來選擇我們可以選擇的最佳值$\theta$。 我們稱此函數為**損失函數**。
                  <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>

                              哎呀哎呀视频在线观看