資料去噪:
無論是資料探勘的比賽也好,還是日常生活中的各種專案也好,我們拿到手的資料集含有雜訊資料是很正常的。雜訊會降低我們的資料質量,從而影響我們模型的效果。因此,對雜訊的處理是必須的,這一點是眾所周知的事情。但是,在去噪的過程中我們也要注意以下問題。
在我們這些天做的乙個比賽上,乙個隊友,拿著沒有好好處理噪音的資料集卻誤打誤撞跑出了最高的分數,這一點著實令人感到沮喪和產生棄賽的想法。昨天看一本機器學習的書的時候才知道:在訓練集中引入雜訊資料能起到提公升模型健壯性的作用。
提高模型的健壯性,會使得模型對雜訊資料不再那麼敏感。因此,當你準備處理雜訊資料對時候,要權衡模型對健壯性和模型的效果。
另外注意,資料去噪主要是去除資料中標註帶雜訊的例項,去除這樣的雜訊資料是有利的。但去除特徵帶雜訊的資料,往往效果變差。可見,雜訊特徵也帶有一定資訊,能用來構建模型。說一句比較哲學的話:沒有特徵也是乙個特徵。
取樣:
無放回簡單隨機抽樣,有放回簡單抽樣,這兩個我想不用多提。
主要了解一下:
平衡取樣,分層取樣
整群取樣
我們在分類問題上,經常會遇到不平衡的分類問題。比如說正樣本10000條,負樣本才100條。這是我們應該採用平衡取樣,或者分層取樣。對於上述例子來說,平衡取樣會將負樣本複製10遍,將正樣本隨機刪除,直至留下1000條。如此一來正負樣本數目一致。也就是說,對大樣本進行下取樣,對小樣本進行上取樣。而對於分層取樣來說,他會將資料分層,保證正負樣本資料比例仍然為100:1,否則可能會出現全是正樣本,沒有負樣本,或負樣本極少的情況。
整群取樣則是將資料集分組成n個簇,這些簇彼此互斥。然後從n個簇中隨機取樣p個為樣本集。
交叉驗證:
1.留出法:一種很簡單的方法,只需要將資料劃分為兩部分,一部分為訓練集,一部分為測試集。對於留出法我的下意識覺得這種做法太low,毫無用處。但這種想法是完全錯誤的,絕不能因為原理簡單而輕視任何演算法。當資料有明顯的時間序列因素的時候,就應該採用留出法,因為這樣可以體現時間因素的作用。
2.k折交叉驗證:這種演算法不用多說,大家應該很清楚了。我要說的是,k折交叉驗證也有其不足之處。當你選擇這種做法的時候,可能會因為單次k份資料劃分導致資料分布發生變化而引入偏差。這時候我們可以進行多次k折交叉驗證,取均值。另外,當k=n(n為資料的條數)時,k折交叉驗證有了另乙個名字:留一法。即每一條樣本當測試集,其餘資料作訓練集。這種演算法計算成本很高,但是在資料稀疏的時候,很實用。
自助法:即自主取樣,使用有放回的重複取樣的方式進行訓練集,測試集構建。在資料集小的時候很有用。建議放入知識庫中。
對特徵工程的一些理解:
1.所謂特徵工程,就是將原始資料空間變換為新的特徵空間。但注意,將原始資料轉化為實向量之後,對應的特徵空間不一定是最佳的。
2.線性模型我們需要將類別變數進行one-hot,但是對樹模型來說,如lgb,可以直接處理categorical型別變數。
3.特徵的挖掘與專業領域知識強相關。特徵工程即該領域的業務邏輯的一種資料層面的表現。特徵提取即是用特徵描述業務邏輯的過程
4.先做探索性資料分析(eda)。
k均值例子 資料探勘 K means聚類原理和例子
本課程講解現在工業界和學術界流行的機器學習演算法的相關知識,以及如何用python去實現這些演算法。演算法的講解包括supervised learning 有監督式學習 和unsupervised learning 無監督式學習 兩個部分。其中supervised learning包括classif...
資料探勘 筆記 閱讀之資料探勘比賽基本流程
乾貨 kaggle 資料探勘比賽經驗分享 資料分析,資料清洗,特徵工程,模型訓練和驗證等四個大的模組 離散值 目標變數的分布 離散值 某個id上面不平衡 變數之間的分布和相關度,發現高相關和共線性的特徵 預處理 特徵缺失值的處理 連續值 偏正態分佈用均值代替,保持資料均值 長尾分布用中值代替,避免受...
資料探勘 K 近鄰演算法
k 近鄰演算法 k nearest neighbor 是最基本的分類演算法,其基本思想是採用測量不同特徵值之間的距離方法進行分類。存在乙個樣本資料集合 訓練集 並且樣本集中每個資料都存在標籤 即每一資料與所屬分類的關係已知 輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較 ...