跟著迪哥學Python資料分析和機器學習 三)

2022-10-09 08:42:09 字數 2422 閱讀 1084

檢視樣本資料是否均衡

(1)下取樣

讓正常樣本和異常樣本資料一樣少。

缺點:原始資料很豐富,下取樣過後,只利用了其中一小部分。

(2)過取樣

讓異常樣本和正常樣本一樣多。

缺點:異常資料是造出來的。

資料特徵決定結果的上限,而模型的調優只決定如何接近這個上限

特徵標準化就是希望資料經過處理後得到的每乙個特徵的數值都在較小範圍內浮動,公式如下:

$z=\frac } $

其中$z$為標準化後的資料

$x$為原始資料

$x_$為原始資料的均值

$std(x)$為原始資料的標準差

過程分解:

①將資料的各個維度減去其各自的均值,這樣資料就以原點為中心對稱。其中數值浮動較大的資料,其標準差也必然更大;數值浮動較小的資料,其標準差也會比較小。

②再將結果除以各自的標準差,就相當於當大的資料壓縮到較小的空間中,讓小的資料能夠伸張一些。

資料標準化過程

sklearn工具包核心三大板塊:classification、regression、clustering,以及資料降維(dimensionality reduction)、模型選擇(model selection)、資料預處理(preprocessing)

使用sklearn工具包來完成特徵標準化操作

對正常樣本進行取樣,得到與異常樣本一樣多的個數即可。

交叉驗證:把訓練集切分成多份,例如分成10份。在驗證某一次結果時,需要把整個過程分成10步,第一步用前9份當做訓練集,最後乙份當做驗證集,得到乙個結果。以此類推,每次都依次用另外乙份當做驗證集,其他部分當做訓練集。這樣經過10步之後,就得到10個結果,每個結果分別對應其中每一小份,組合在一起恰好包含原始訓練集中所有資料,再對最終得到的10個結果進行平均,就得到最終模型評估的結果。

準確率:準確率=符合條件的測定值個數/總測定值個數*100%=分類器正確分類的樣本數與總樣本數之比。

召回率(recall):觀察給定目標,針對這個目標統計你取得了多大成績,而不是針對整體而言。

在機器學習中,通常都是先用簡單的模型進行嘗試,如果達不到要求,再做複雜一點的,而不是先用最複雜的模型來做。

過擬合:訓練集效果越來越好,但是測試集效果反而越來越差。

對於統一演算法,模型的複雜成都由其中要求解的引數(例如梯度下降中優化的引數)來控制。正則化懲罰就是為解決過擬合準備的,即懲罰數值較大的權重引數,讓它們對結果的影響小一點。

懲罰項:用於懲罰那些模型引數,懲罰項會與目標函式組合在一起,讓模型在迭代過程中就開始重視這個問題,而不是見面完成後再來調整。

常見有l1l2正則化懲罰項:

l1正則化:$j=j_ +\alpha \sum_^{} |w|$

此種方式下,$\theta _ :[1,0,0,0],\theta _ :[0.25,0.25,0.25,0.25]$結果仍然相同。

l2正則化:$j=j_ +\alpha \sum_^{}w^ $

懲罰力度更大,對權重引數求平方和,目的就是讓大的更大,相對懲罰更多。$\theta _ $的懲罰為1,$\theta _ $的懲罰只有0.25,表明$\theta _ $帶來的損失更大,在模型效果一致的前提下,當然選擇整體效果更優的$\theta _ $組模型。

在懲罰項前面還有乙個$\alpha$係數,它表示正則化懲罰的力度。

如果$\alpha$值比較大,意味著要非常嚴格地對待權重引數,此時正則化懲罰的結果會對整體目標函式產生較大影響。

如果$\alpha$值比較小,意味著懲罰的力度較小,不會對結果產生太大影響。

小白學 Python 資料分析(1) 資料分析基礎

人工植入廣告 ps 小編最近兩天偷了點懶,好久沒有發原創了,最近是在 csdn 開通了乙個付費專欄,用來發布去年寫的沒有出版的書稿,感興趣的同學可以去看下 已經上傳了一部分,第一章設定為了試讀章節 主要是講 springcloud 微服務方面的一些內容,整體排版下來如果是印在實體書上應該會超過 40...

小白學資料分析 DNU DAU

行業指標觀察分析 dnu dau 寫在分析之前 一直以來,我們對於資料都是在做加法,也希望這個過程中,不斷蒐羅和變換出來更多的資料指標,維度等等。而在實際的分析中,我們發現,一如我們給使用者提供產品一樣,太多的時候,我們思考的是如何增加功能,而產品的核心功能和訴求,卻越來越遠。最近有幸和一些團隊在做...

python資料分析

以網路爬蟲為例,網路爬蟲是乙個自動提取網頁的程式,爬蟲是搜尋引擎的第一步,也是最容易的一部。網頁搜尋,建立索引,查詢排序 用c c 效率高,速度塊,適合通用搜尋引擎做往往爬取。但是它的缺點也特別明顯 開發慢,寫起來又臭又長的。而python無論在資料分析還是在指令碼自動化編寫尚都是簡單,易學的。良好...