人工智能是過去兩到三年時間內科技行業最熱的話題。而人工智能技術進步的背后,實質上是機器學習快速發展后所帶來的巨大提升。
機器學習被廣泛定義為“利用經驗來改善計算機系統的自身性能”。事實上,“經驗”在計算機中主要是以數據的形式存在的,因此數據是機器學習的前提和基礎。
在第一期格物匯的文章中,我們介紹了工業數據預處理的方法,主要針對數據格式異常,數據內容異常等問題進行了簡要探討。做數據預處理的主要目的是將雜亂無章的數據規整成我們想要的矩陣、表格、張量等結構,方便在之后的機器學習中進行模型訓練。然而數據中的問題還包含了冗余,噪聲,高維度,體量大等很多問題。解決這些問題的方法與數據預處理的方法在機器學習中被統稱為特征工程,今天我們就來了解一下吧。
◆◆◆
特征工程是什么
當你想要你的預測模型性能達到最佳時,你要做的不僅是要選取最好的算法,還要盡可能的從原始數據中獲取更多的信息。那么問題來了,你應該如何為你的預測模型得到更好的數據呢?這就是特征工程要做的事,它的目的就是獲取更好的訓練數據。
維基百科中給特征工程做出了簡單定義:特征工程是利用數據領域的相關知識來創建能夠使機器學習算法達到最佳性能的特征的過程。簡而言之,特征工程就是一個把原始數據轉變成特征的過程,這些特征可以很好的描述這些數據,并且利用它們建立的模型在未知數據上的表現性能可以達到最優(或者接近最佳性能)。從數學的角度來看,特征工程就是人工地去設計輸入變量X。
◆◆◆
特征工程的重要性
關于特征工程(Feature Engineering),已經是很古老很常見的話題了,坊間常說:“數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已”。由此可見,特征工程在機器學習中占有相當重要的地位。
1、特征越好,靈活性越強
只要特征選得好,即使是一般的模型(或算法)也能獲得很好的性能,因為大多數模型(或算法)在好的數據特征下表現的性能都還不錯。好特征的靈活性在于它允許你選擇不復雜的模型,同時運行速度也更快,也更容易理解和維護。
2、特征越好,構建的模型越簡單
有了好的特征,即便你的參數不是最優的,你的模型性能也能仍然會表現的很nice,所以你就不需要花太多的時間去尋找最有參數,這大大的降低了模型的復雜度,使模型趨于簡單。
3、特征越好,模型的性能越出色
顯然,這一點是毫無爭議的,我們進行特征工程的最終目的就是提升模型的性能。
◆◆◆
特征工程怎么做
既然特征工程這么重要,那么我們就來看看特征工程到底是如何實現或者工作的。特征工程到底分為哪些內容?我們大致可以參考如下流程圖來看看。
簡單來說,特征處理主要分如下三個方法:
特征構建
特征構建是指從原始數據中人工的找出一些具有實際意義的特征。需要花時間去觀察原始數據,思考問題的潛在形式和數據結構,對數據敏感性和機器學習實戰經驗能幫助特征構建。除此之外,屬性分割和結合是特征構建時常使用的方法。特征構建是個非常麻煩的問題,書里面也很少提到具體的方法,需要對問題有比較深入的理解。
特征抽取
一些觀測數據如果直接建模,其原始狀態的數據太多。像圖像、音頻和文本數據,如果將其看做是表格數據,那么其中包含了數以千計的屬性。特征抽取是自動地對原始觀測降維,使其特征集合小到可以進行建模的過程。通常可采用主成分分析(PCA)、線性判別分析(LDA))等方法;對于圖像數據,可以進行線(line)或邊緣(edge)的提取;根據相應的領域,圖像、視頻和音頻數據可以有很多數字信號處理的方法對其進行處理。
特征選擇
不同的特征對模型的準確度的影響不同,有些特征與要解決的問題不相關,有些特征是冗余信息,這些特征都應該被移除掉。特征選擇是自動地選擇出對于問題最重要的那些特征子集的過程。常用的特征選擇方法可以分為3類:過濾式(filter)、包裹式(wrapper)和嵌入式(embedding)。
◆◆◆
小結
總的來說,數據會存在各種各樣的問題,針對這些問題我們的特征工程給出了相應的解決辦法:1.特征解釋能力不足,我們可以嘗試使用特征構建,對數據進行升維來提升特征解釋能力;2.特征冗余,維度太高,噪聲太多,我們可以通過特征抽取和特征選擇,來對數據進行降維去噪,提煉特征。當然還有其他的特征處理方法,一般需要根據具體問題而定。
-
機器學習
+關注
關注
66文章
8422瀏覽量
132712 -
智能制造
+關注
關注
48文章
5570瀏覽量
76368 -
工業互聯網
+關注
關注
28文章
4323瀏覽量
94144
發布評論請先 登錄
相關推薦
評論