Python大規模機器學習》— 2.4 數據流的特征管理

      網友投稿 755 2025-04-01

      2.4????數據流的特征管理

      數據流帶來的問題是,不能像在處理一個完整的內存數據集那樣進行評估。為找到給SGD非核心算法提供數據的正確且最佳的方法,要求首先調查數據(例如,獲取文件初始實例),并查找你手頭的數據類型:

      使用以下數據類型進行區分:

      定量值

      整數編碼的類別值

      文本形式表示的非結構化類別值

      當數據定量時,它僅被提供給SGD學習器,但該算法對特征縮放非常敏感,也就是說,你必須把所有定量特征帶入相同數值范圍內,否則學習過程將難以準確收斂。常用的縮放策略是轉換在[0,1]、[-1,1]之間的所有值,或將變量的均值中心歸零并將其方差轉換為1來標準化變量。對縮放策略的選擇,我們沒有特別的建議,但如果處理稀疏矩陣并且大多數值為零,則在[0,1]范圍內的轉換效果特別好,

      至于內存中學習,在訓練集上轉換變量時必須注意所使用的值(基本上要求得到每個特征的最小值、最大值、平均值和標準偏差),并在測試集中重用它們,以保證結果一致性。

      如果正在流化數據并且不可能將所有數據上傳到內存中,則必須通過傳遞所有數據或至少部分數據對其進行計算 (采樣總是可行的方法)。使用瞬間流(非復制流)會帶來更具挑戰性的問題,事實上,你必須不斷追蹤持續接收的值。

      如果采樣只需計算n個實例的統計數據(假設數據流無特定順序),那么動態計算統計數據就需要記錄正確的度量。

      對于最小值和最大值,需要為每個定量特征分別存儲一個變量。你從流中接收的第一個值應存儲為初始最大值和最小值。對于每個新值,必須使用先前記錄的最小值和最大值與其比較,如果新實例超出舊值的范圍,則只需相應地更新變量。

      此外,平均值不會導致任何特殊問題,因為你只需要保存所看到的值和實例數目的總和。至于方差,請回顧教科書中的描述:

      注意,你需要知道平均值μ,它也是從流中增量學習得到的。但是,該公式可以解釋如下:

      由于只記錄實例數量n和x值的總和,所以只需存儲另一個變量,即x平方值的總和,這樣你就能得到所需的全部值。

      例如,從共享單車數據集能計算得到最終結果的運行平均值、標準差和范圍,并能繪制這些統計數據隨磁盤數據流變化的示意圖:

      稍后,數據將從數據源以流方式傳輸,相對于temp特征的關鍵值將被記錄為平均值的運行估計,并且在計算標準差后將其存儲在兩個單獨列表中。

      通過繪制列表中的值,可以檢查估算值相對于最終結果的波動程度,并了解需要多少實例才能得到穩定均值和標準差估計值:

      如果之前處理過原始共享單車數據集,將得到一個存在明顯數據趨勢的圖表(由于氣溫隨季節變化,數據呈現按時間變化趨勢,如圖2-3所示)。

      圖2-3數據呈現隨時間變化趨勢

      相反,如果使用數據集的打亂版本Shuffled_har.csv文件作為數據源,我們就能獲得一些更穩定和快速收斂的估計。確切地說,由于從數據流中觀察更少實例,

      我們能從平均值和標準差中學習到近似但更可靠的估計結果,如圖2-4所示。

      圖2-4從打亂的數據源觀察到的結果

      兩圖的差異提醒我們隨機化觀測順序的重要性。即使學習簡單的描述性統計數據,也會受到數據趨勢的嚴重影響,因此,用SGD學習復雜模型時,必須更加注意。

      2.4.1????描述目標

      此外,還需要在開始之前研究目標變量。事實上,需要確定它所假定的值,如果是分類,還要確定它在類中是否不平衡,或者是數字時是否有偏差分布。如果正在學習數字響應,可以采用前面處理特征時的相同策略,而對于類,用一個保留類(鍵)計數及其頻率(值)的Python字典就足夠了。作為示例,我們將下載用于分類的數據集Forest Covertype數據。

      為快速下載和準備該數據,我們將使用在本章的2.2.1中定義的gzip_FROM_UCI函數:

      如果運行代碼時出現問題,或者你更愿意自己準備文件,只需訪問UCI網站下載數據集,然后將其解壓到Python當前工作目錄中:

      一旦磁盤數據可用,我們就能掃描581 012個實例,從而將每行的最后一個值(代表我們估計的目標類)轉換為相應的森林覆蓋類型。

      輸出顯示Lodgepole Pine和Spruce/Fir兩個類占大多數觀測值。如果在流中適當打亂示例,則SGD將適當地學習正確的先驗分布,并因此調整其發生概率(后驗概率)。

      如果與我們當前的情況相反,你的目標不是分類準確性,而是增加受試者工作特性(ROC)曲線下面積(AUC)或fl-score,則應加入用于評估的誤差函數。有關其具體概述,請直接查閱http://scikit-learn.org/stable/modules/model_evaluation.html上的Scikit-learn文檔,該文檔介紹了在不平衡數據上訓練的分類模型,所提供的信息能幫助你在部分擬合模型中定義SGDClassifier或sample_weight時平衡權重class_weight參數。兩種方法都通過過度加權或低估來改變被觀測實例的影響。在這兩種方法中,修改這兩個參數會改變先驗分布。下一章將討論加權類和實例。

      在繼續訓練和與分類前,可以檢查類比例是否總是一致,以便向SGD傳遞正確的先驗概率:

      圖2-5代碼運行結果

      《Python大規模機器學習》— 2.4 數據流的特征管理

      在圖2-5中,可以注意到,按照現有順序流式傳輸數據時,示例的百分比是如何變化的。這種情況下,如果我們希望隨機在線算法能從數據中正確學習,那么打亂很有必要。實際上,比例是可變的,這個數據集有某種順序,也許是一個地理順序,應該通過打亂數據來糾正,否則我們會冒高估或低估某些類與其他類的風險。

      機器學習 Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:制造業生產管理系統(企業管理系統)
      下一篇:技術項目計劃書模板(項目計劃書模板免費下載)
      相關文章
      久久久久亚洲av毛片大| 亚洲电影日韩精品| 伊伊人成亚洲综合人网7777| 亚洲Av无码国产情品久久| 亚洲AV日韩综合一区| 亚洲丰满熟女一区二区哦| 亚洲日韩精品无码专区加勒比 | 亚洲综合伊人久久综合| 毛茸茸bbw亚洲人| 久久99亚洲综合精品首页| 亚洲男人的天堂一区二区| 亚洲国产一级在线观看| 亚洲男人的天堂一区二区| 在线亚洲97se亚洲综合在线| 亚洲色精品vr一区二区三区| 亚洲精品乱码久久久久久久久久久久 | 亚洲首页在线观看| 亚洲美女视频免费| 亚洲日本国产乱码va在线观看| 99亚洲精品高清一二区| 亚洲日韩国产精品无码av| 精品亚洲AV无码一区二区| 亚洲熟妇成人精品一区| 亚洲国产AV一区二区三区四区 | 亚洲成a人片77777kkkk| 午夜亚洲国产理论秋霞| 久久久无码精品亚洲日韩按摩| 亚洲精品网站在线观看你懂的| 亚洲精品亚洲人成在线麻豆| 亚洲免费网站在线观看| 亚洲精品天堂在线观看| 精品亚洲国产成人av| 亚洲精品456播放| 亚洲中文字幕无码一久久区| 亚洲AV永久无码精品水牛影视| 亚洲综合日韩中文字幕v在线| 亚洲精品不卡视频| 中文字幕在线日亚洲9| 久久亚洲中文无码咪咪爱| 亚洲国产一级在线观看| 国产成人精品日本亚洲网站|