Datacamp case-study budget school labels

本篇帶你迅速體驗一節(jié)datacamp數(shù)據(jù)在線課程鏈接見后https://campus.datacamp.com/courses/case-study-school-budgeting-with-machine-learning-in-python/exploring-the-raw-data?ex=4如何迅速開始Datacamp數(shù)據(jù)科學課程項目式在線課程學習?首選視頻是講述案例需求。

<iframe class="video_iframe rich_pages wx_video_iframe" data-vidtype="2" data-mpvid="wxv_2216787898945863685" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F96iaDuCe2JMgR2accTOG3m3voDg8LDY53HeXDkicZ0vVAjfHCv2LEhWAwLACVNE1ta6eKJrzT2cmvgYZic7Pp1uMg%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="1.810289389067524" data-w="1126" width="578" height="325" src="https://mp.weixin.qq.com/cgi-bin/readtemplate?t=tmpl/video_tmpl&vid=wxv_2216787898945863685" style="margin: 0px; padding: 0px; border: 0px; width: 562px; background-color: rgb(0, 0, 0); position: static;"></iframe>

本節(jié)以學校預算為案例背景提供5分鐘時長內,共3段視頻;配有幻燈提醒重點知識點;讀懂代碼后即可嘗試代碼補全,運行提交驗證;有錯誤提示。經(jīng)過提示都能試錯通過;任務有詳細的實現(xiàn)步驟提示!
Step-1 按什么類別標簽分類的問題?先了解任務的目的是什么? 你不是數(shù)據(jù)科學的新手,但讓我們確保我們在基礎知識上達成一致。Datacamp Data sciencecase-study budget school labels一本書的標簽可以包含:數(shù)學;年級;幾何等,事先由人工完成標簽設定的做法就是人工監(jiān)督的算法 但效率不高,機器學習替代人工監(jiān)督的做法的價值;機器學習處理的數(shù)字類型速度非???;是或者否可以用1或0替代 案例給出的數(shù)據(jù)有100+種變量<iframe class="video_iframe rich_pages wx_video_iframe" data-vidtype="2" data-mpvid="wxv_2216742987831803911" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F96iaDuCe2JMgR2accTOG3m3voDg8LDY53odNXL6ZOgVeftYPngvuwheeniaJibN53JQKmEO2PmVpFORvMZzicCiaSew%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="1.8167202572347267" data-w="1130" width="578" height="325" src="https://mp.weixin.qq.com/cgi-bin/readtemplate?t=tmpl/video_tmpl&vid=wxv_2216742987831803911" style="margin: 0px; padding: 0px; border: 0px; width: 546px; background-color: rgb(0, 0, 0); position: static;"></iframe>正如DrivenData的Peter在視頻中解釋的那樣,你要處理的是學校預算數(shù)據(jù)。這些數(shù)據(jù)可以根據(jù)某些標簽以多種方式進行分類,例如:功能劃分:職業(yè)和學術咨詢,或職位類型:圖書管理員你的目標是開發(fā)一個模型,通過依靠一些正確標記的例子來預測每個可能的標簽的概率,通過視頻學習了解知識點;

這屬于什么類型的機器學習問題?

  1. 強化學習,因為該模型是通過一個獎懲系統(tǒng)從數(shù)據(jù)中學習。

  2. 無監(jiān)督學習,因為該模型并不確定地輸出標簽。

  3. 無監(jiān)督學習,因為不是所有的數(shù)據(jù)一開始就能正確分類。

  4. 監(jiān)督學習,因為模型將使用標記的例子進行訓練。

該算法的目標是什么?正如你在以前的課程中所知,有不同類型的監(jiān)督機器學習問題。在這個練習中,你要告訴我們這是哪種類型的監(jiān)督機器學習問題,以及你為什么這樣認為。記住,你的目標是通過訓練一個有監(jiān)督的模型來預測每個可能的標簽的概率,將最有可能的標簽作為正確的標簽,從而正確標記預算項目。

  1. 回歸,因為該模型將輸出概率。

  2. 分類,因為預測的概率將被用來選擇一個標簽類別。

  3. 回歸,因為概率是在0和1之間的一個連續(xù)值。

  4. 分類,因為該模型將輸出概率。

Not quite. We will use sorted probabilities, but our goal is to group the items correctly.****Step_1 *****加載數(shù)據(jù)現(xiàn)在是檢查數(shù)據(jù)集的時候了 你將使用pandas(已預先導入為pd)將你的數(shù)據(jù)加載到一個DataFrame中,然后對其進行一些探索性數(shù)據(jù)分析(EDA)。訓練數(shù)據(jù)以TrainingData.csv的形式提供。你的第一個任務是在IPython Shell中使用pd.read_csv()和關鍵字參數(shù)index_col=0將其加載到一個DataFrame。使用諸如.info()、.head()和.tail()等方法來探索預算數(shù)據(jù)以及特征和標簽的屬性。一些列的名稱對應于特征--預算項目的描述--例如Job_Title_Description列。這一列的值告訴我們,一個預算項目是為教師、保管員或其他雇員準備的。有些列對應于你將試圖用你的模型來預測的預算項目標簽。例如,Object_Type列描述了預算項目是否與教室用品、工資、旅行費用等有關?*使用IPython Shell中的df.info()來回答以下問題。

訓練數(shù)據(jù)中共有多少行?

訓練數(shù)據(jù)中共有多少列?

在Job_Title_Description列中有多少個非空條目?

image
mport pandas as pd
  1. 25行,1560列,Job_Title_Description中有1560個非空條目。

  2. 25行,1560列,Job_Title_Description中有1131個非空條目。

  3. 1560行,25列,在Job_Title_Description中有1131個非空條目。

  4. 1560行,25列,1560個非空條目在Job_Title_Description中。可能的答案:C

    *No. Take another look at the output of the *.info() method.

    Did you find this feedback helpful?

Step_2 總結數(shù)據(jù)在這個練習中,你將繼續(xù)你的EDA,計算數(shù)據(jù)集中的數(shù)字數(shù)據(jù)的匯總統(tǒng)計。這些數(shù)據(jù)已經(jīng)被預先加載到一個叫做df的數(shù)據(jù)框架中。你可以在IPython Shell中使用df.info()來確定數(shù)據(jù)中哪些列是數(shù)字,特別是float64類型。你會注意到,有兩列數(shù)字,叫做FTE和Total。FTE:代表 "全職等價物"。如果預算項目與一個雇員相關聯(lián),這個數(shù)字告訴我們該雇員全職工作的百分比。值為1意味著相關雇員為學校全職工作。一個接近0的數(shù)值意味著該項目與一個兼職或合同雇員有關??傤~:代表支出的總成本。這個數(shù)字告訴我們這個預算項目的成本是多少。在打印完數(shù)字數(shù)據(jù)的匯總統(tǒng)計后,你的工作是為非空的FTE列繪制直方圖,以查看數(shù)據(jù)集中兼職和全職雇員的分布。本課程涉及到很多你可能已經(jīng)忘記的概念,所以如果你需要快速復習,請下載Scikit-Learn小抄,并將它放在手邊使用.describe()方法打印DataFrame df中數(shù)字列的匯總統(tǒng)計數(shù)據(jù)。將matplotlib.pyplot導入為plt。創(chuàng)建一個非空的 "FTE "列的直方圖。你可以通過將df['FTE'].dropna()傳遞給plt.hist()來實現(xiàn)。標題已經(jīng)指定,坐標軸也已標注,點擊提交就可以看到學校員工全職工作的頻率了。

# Print the summary statistics

正確補齊代碼后

image

很好,以上代碼補齊正確! 支出的高差異解釋是,有些采購很便宜,有些很貴。另外,看起來FTE一欄是說,有一些兼職和一些全職雇員。

image
Step_2***** 探索pandas中的數(shù)據(jù)類型了解你正在使用的數(shù)據(jù)類型總是好的,特別是當涉及到低效的pandas類型對象時。為了達到這個目的,讓我們來探索一下我們所擁有的東西。<iframe class="video_iframe rich_pages wx_video_iframe" data-vidtype="2" data-mpvid="wxv_2216744152220925953" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F96iaDuCe2JMgR2accTOG3m3voDg8LDY53Zkkx6GwUibX1vvYwcnfEUZZs6bNYtJ02MU2Tf8hxUKzy8pxicXQ3h8GA%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="1.810289389067524" data-w="1126" width="578" height="325" src="https://mp.weixin.qq.com/cgi-bin/readtemplate?t=tmpl/video_tmpl&vid=wxv_2216744152220925953" style="margin: 0px; padding: 0px; border: 0px; width: 546px; background-color: rgb(0, 0, 0); position: static;"></iframe>數(shù)據(jù)已經(jīng)以df的形式加載到工作區(qū)。工作是查看IPython Shell中的DataFrame屬性.dtypes,并調用其.value_counts()方法,以回答下面的問題。請確保調用 :df.dtypes.value_counts()而不是df.value_counts()df.value_counts()將返回一個錯誤,因為它不是一個DataFrame方法。*數(shù)據(jù)中有多少個帶有dtype對象的列?

  1. 2.

  2. 23.

  3. 64.

plt.show()

Step_3 *****將標簽編碼為分類變量記住,你的最終目標是預測某個標簽被附在預算項目上的概率。 你剛才看到,你的數(shù)據(jù)中的許多列是低效對象類型。這是否包括你試圖預測的標簽?讓我們來找出答案!在數(shù)據(jù)集中有9列標簽。每一列都是一個類別,它有許多可能的取值。這9個標簽已經(jīng)被加載到一個叫做LABELS的列表中。在 Shell 中,使用 df[LABELS].dtypes 檢查這些標簽的類型。你會注意到,每個標簽都被編碼為一個對象數(shù)據(jù)類型。因為類別數(shù)據(jù)類型的效率更高,你的任務是使用.astype()方法將標簽轉換為類別類型。注意:.astype()*只在pandas系列中工作。因為你正在使用pandas DataFrame,你需要使用.apply()方法,并提供一個名為categorize_label的lambda函數(shù),將.astype()應用于每一列,x。定義lambda函數(shù)categorize_label,將列x轉換成x.astype('category')。使用提供的LABELS列表,使用.apply()方法和categorize_label將數(shù)據(jù)子集df[LABELS]轉換為分類類型。不要忘記 axis=0打印df[LABELS]的轉換后的.dtypes屬性。

<pre class="code-snippet__js code-snippet code-snippet_nowrap" data-lang="properties" style="margin: 10px 0px; padding: 1em 1em 1em 3em; font-size: 14px; display: block; overflow-x: auto; color: rgb(51, 51, 51); position: relative; background-color: rgba(0, 0, 0, 0.03); border: 1px solid rgb(240, 240, 240); border-radius: 2px; counter-reset: line 0; line-height: 26px; white-space: normal; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Function category``Use category``Sharing category``Reporting category``Student_Type category``Position_Type category``Object_Type category``Pre_K category``Operating_Status category``dtype: object</pre>

*Step_4 *****計算獨特的標簽正如彼得在視頻中提到的,有超過100個獨特的標簽。在這個練習中,你將通過計算和繪制每一類標簽的獨特值的數(shù)量來探索這個事實。數(shù)據(jù)框架df和LABELS列表已經(jīng)被加載到工作區(qū);df的LABELS列已經(jīng)被轉換為類別類型。pandas,已經(jīng)預先導入為pd,提供了一個pd.Series.nunique方法,用于計算一個系列中唯一值的數(shù)量。

image

通過對df[LABELS]使用.apply()方法,以pd.Series.nunique為參數(shù),創(chuàng)建DataFrame num_unique_labels
image

使用pandas的.plot(kind='bar')方法創(chuàng)建一個num_unique_labels的柱狀圖。已經(jīng)為你貼好了標簽,點擊提交可以看到每個標簽的唯一值的數(shù)量。兩個標簽:Function和Position_Type 最后,如何衡量成功率?<iframe class="video_iframe rich_pages wx_video_iframe" data-vidtype="2" data-mpvid="wxv_2216745208514445315" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F96iaDuCe2JMgR2accTOG3m3voDg8LDY53EeaDeicENt8TyZjwyVWFpUPsHIRgPF8Vwkjmuh6ZcejfyFX7WmVbZSw%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="1.810289389067524" data-w="1126" width="578" height="325" src="https://mp.weixin.qq.com/cgi-bin/readtemplate?t=tmpl/video_tmpl&vid=wxv_2216745208514445315" style="margin: 0px; padding: 0px; border: 0px; width: 546px; background-color: rgb(0, 0, 0); position: static;"></iframe>截屏

image

相關鏈接:****Datacamp數(shù)據(jù)科學在線課程

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容