機器學習實戰筆記(一)

2021-10-24 20:34:21 字數 1468 閱讀 3111

機器學習是通過程式設計讓計算機從資料中進行學習的科學(和藝術)。

機器學習是讓計算機具有學習的能力,無需進行明確程式設計。(亞瑟·薩繆爾,1959)

電腦程式利用經驗e學習任務t,效能是p,如果針對任務t的效能p隨著經驗e不斷增長,則稱為機器學習(湯姆·公尺切爾,1997)

需要進行大量手工調整或者需要擁有長串規則才能解決的問題:機器學習演算法通常可以簡化**、提高效能。

問題複雜,傳統方法難以解決:最好的機器學習方法可以找到解決方案。

使用機器學習方法挖掘大量資料,可以發現並不顯著的規律。(這稱作資料探勘。)

環境有波動時,機器學習演算法可以適應新資料。

一、按是否在人類監督下進行訓練分為:

非監督學習半監督學習

強化學習

二、按是否可以動態地進行增量學習(是否能從匯入的資料流中持續進行學習):

三、根據是簡單地將新的資料點和已知的資料點進行匹配還是像科學家那樣對訓練資料進行模式檢測,然後建立乙個資料模型:

基於模型學習

研究資料

選擇模型

用訓練資料進行訓練(即,學習演算法搜尋模型引數值,使代價函式最小)

最後,使用模型對新案例進行**(推斷)

不好的資料

對複雜問題而言,資料比演算法更重要。不過需要指出的是,中小型資料及依然非常普遍,獲得額外的訓練資料並不是總是一件輕而易舉或者物美價廉的事情,所以暫時先不要拋棄演算法。

1 訓練資料量不足

2 沒有代表性的訓練資料(樣本偏差、異常值、取樣偏差)

3 低質量資料(錯誤、缺失、異常值以及雜訊太多)

如果某些例項缺少部分特徵(比如,5%的顧客沒有指定年齡):

4 不相關的特徵

不好的演算法

1 過擬合訓練資料

解決辦法:

2 欠擬合訓練資料

訓練集和測試集

將資料集分割成兩部分:訓練集和測試集。(一般用80%的資料訓練,保留20%用於測試)用訓練集的資料來訓練模型,然後測試集的資料來測試模型。

應對新場景的誤差率,稱為泛化誤差。如果訓練誤差很低,但是泛化誤差很高,那說明你的模型對於訓練資料存在過擬合現象。

如果在兩個模型之間猶豫不決,就兩個都訓練,然後對比他們對測試資料的泛化能力。

怎麼樣選擇正則化超引數的值?

再單獨分出來乙個集合,稱作驗證集。

訓練集上,使用不同的超引數訓練多個模型,然後通過驗證集,選擇最好的那個模型和對應的超引數,當你對模型基本滿意之後,再使用測試集執行最後一輪測試並得到泛化誤差的估值。

為了避免驗證集浪費太多的訓練資料,常見的技術是使用交叉驗證。

沒有免費午餐定理:如果你對資料沒有任何假設,那麼你沒有理由會偏好於某個模型。

機器學習實戰學習筆記(一)

簡單來說 k 近鄰演算法 knn 採用測量不同特徵值之間的距離演算法進行分類 優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型 工作原理 存在乙個訓練樣本集,樣本集中每個資料都存在標籤。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資...

機器學習sklearn實戰筆記 一

寫在開始的話 什麼是sklearn?tensorflow又是什麼?sklearn是python的乙個非常流行的機器學習庫.tensorflow是google研發的非常流行的深度學習庫.簡單講,深度學習是機器學習的乙個分類,這裡不再贅述.通過本系列文章你將懂得 了解監督學習,非監督學習,資料處理等在s...

機器學習實戰筆記

在 機器學習實戰 的決策樹的儲存這方面內容學習過程中,進行 除錯時遇到以下兩個錯誤 1 typeerror write argument must be str,not bytes 2 unicodedecodeerror gbk codec can t decode byte 0x80 in po...