每個機器學習項目都有自己獨特的形式。對于每個項目,都可以遵循一組預定義的步驟。盡管沒有嚴格的流程,但是可以提出一個通用模板。
準備問題
不僅是機器學習,任何項目的第一步都是簡單地定義當前的問題。您首先需要了解背景和需要解決的問題。然后設(shè)計機器學習算法來有效地解決這一問題。一旦清楚地了解了問題,就可以解決它。
加載庫
我將繼續(xù)使用Python。第一步是加載或?qū)胨璧乃袔旌桶R恍┓浅;厩規(guī)缀醣匾臋C器學習軟件包是-NumPy,Pandas,Matplotlib和Scikit-Learn。
加載數(shù)據(jù)集
加載庫后,您需要加載數(shù)據(jù)。Pandas具有執(zhí)行此任務的非常簡單的功能-pandas.read_csv。read.csv函數(shù)不僅限于csv文件,而且還可以讀取其他基于文本的文件。其他格式也可以使用pandas讀取功能(例如html,json,pickled文件等)讀取。需要牢記的一件事是,您的數(shù)據(jù)需要與當前工作目錄位于同一工作目錄中,否則您將需要在函數(shù)中提供以“ /”為前綴的完整路徑。
匯總數(shù)據(jù)
現(xiàn)在數(shù)據(jù)已加載并準備好進行操作。但是,您需要先檢查數(shù)據(jù)的外觀以及內(nèi)容。首先,您需要查看數(shù)據(jù)具有多少行和列,以及每一列的數(shù)據(jù)類型都是什么(pandas認為它們是什么類型)。
快速查看數(shù)據(jù)類型和形狀的方法是— pandas.DataFrame.info。這將告訴您數(shù)據(jù)框具有多少行和列以及它們包含哪些數(shù)據(jù)類型和值。
描述性統(tǒng)計
顧名思義,描述性統(tǒng)計數(shù)據(jù)以統(tǒng)計數(shù)據(jù)的形式描述數(shù)據(jù)-均值,標準差,四分位數(shù)等。獲得完整描述的最簡單方法是pandas.DataFrame.describe。您可以輕松確定數(shù)據(jù)是否需要縮放或需要添加缺失值,等等。(稍后會對此進行更多介紹)。
數(shù)據(jù)可視化
數(shù)據(jù)可視化非常重要,因為它們是了解數(shù)據(jù)和規(guī)律(即使它們不存在)的最快方法。您的數(shù)據(jù)可能具有數(shù)千個樣本,甚至更多。無法直接分析所有數(shù)值數(shù)據(jù)。如果需要可視化,可以使用Matplotlib和Seaborn這樣強大的可視化程序包。
使用Seaborn的Matplotlib進行可視化可用于檢查特征內(nèi)的相關(guān)性以及與目標的關(guān)系,可以使用散點圖,直方圖和箱形圖來檢查分布和偏度等。甚至pandas都有自己的內(nèi)置可視化庫-pandas.DataFrame.plot,其中包含條形圖,散點圖,直方圖等。
Seaborn本質(zhì)上是經(jīng)過改造的matplotlib,因為它建立在matplotlib的基礎(chǔ)上,使繪圖更加美觀,并且繪圖速度更快。熱圖和對圖(pairplot)是Seaborn快速繪制整個數(shù)據(jù)的可視化以檢查多重共線性,缺失值等特征的示例。
一種獲取大多數(shù)上述數(shù)據(jù)描述性和推斷性信息的統(tǒng)計數(shù)據(jù)的非常有效的方法是Pandas Profiling。它會生成數(shù)據(jù)的精美報告,其中包含上述所有詳細信息,使您能夠一次分析所有數(shù)據(jù)。
準備數(shù)據(jù)
知道了數(shù)據(jù)的內(nèi)容和規(guī)律,就需要對其進行轉(zhuǎn)換,以使其適合算法來更有效地工作,以便提供更準確,更精確的結(jié)果。這就是數(shù)據(jù)預處理,這是任何ML項目中最重要,最耗時的階段。
數(shù)據(jù)清洗
現(xiàn)實生活中的數(shù)據(jù)不能很好地安排在沒有異常的數(shù)據(jù)框中并呈現(xiàn)給您。數(shù)據(jù)通常具有很多所謂的異常,例如缺失值,許多格式不正確的特征,不同比例的特征等。所有這些都需要手動處理,這需要大量時間和編碼技巧(主要是python和pandas:D )!
Pandas具有各種功能來檢查異常,例如pandas.DataFrame.isna以檢查NaN等值。您可能還需要轉(zhuǎn)換數(shù)據(jù)格式以擺脫無用的信息,例如刪除“ Mr.”和“ Mrs” ”(如果存在單獨的性別特征)。您可能需要使用pandas.DataFrame.replace函數(shù)以整個數(shù)據(jù)框的標準格式獲取它,或使用pandas.DataFrame.drop刪除不相關(guān)的特征。
特征選擇
特征選擇是選擇一定數(shù)量的最有用特征的過程,這些特征將用于訓練模型。這樣做是為了在大多數(shù)特征對整體差異的貢獻不足時縮小尺寸。如果您的數(shù)據(jù)中有300個特征,而前120個特征可以解釋97%的方差,那么用這么多無用的特征來充實您的算法是沒有意義的。減少特征不僅可以節(jié)省時間,還可以節(jié)省成本。
一些流行的特征選擇技術(shù)包括SelectKBest,特征消除方法(例如RFE(遞歸特征消除))和嵌入式方法(例如LassoCV)。
特征工程
所有功能可能都不處于最佳狀態(tài)。特征工程的意思是通過使用一組函數(shù)可以將它們轉(zhuǎn)換為不同的相關(guān)的數(shù)據(jù)。這是為了增加與目標的相關(guān)性,從而增加準確性/分數(shù)。其中一些轉(zhuǎn)換與縮放有關(guān),例如StandardScaler,Normalizer,MinMaxScaler等。甚至可以通過將一些特征進行線性/二次組合來增加特征,以提高性能。對數(shù)轉(zhuǎn)換,交互作用和Box-Cox轉(zhuǎn)換是數(shù)字數(shù)據(jù)的一些有用轉(zhuǎn)換。
對于分類數(shù)據(jù),有必要將類別編碼為數(shù)字,以便算法可以從中識別出來。一些最有用的編碼技術(shù)是– LabelEncoder,OneHotEncoder和Binarizer。
評估算法
數(shù)據(jù)準備就緒后,請繼續(xù)檢查各種回歸/分類算法的性能(基于問題的類型)。您可以首先創(chuàng)建一個基本模型來設(shè)置要進行比較的基準。
拆分驗證數(shù)據(jù)集
訓練完模型后,還需要對其進行驗證,以查看它是否真的對數(shù)據(jù)進行了概括或擬合過度/不足。手中的數(shù)據(jù)可以預先分為訓練集和驗證集。這種拆分具有多種技術(shù)-訓練測試拆分,隨機排序等。您還可以對整個數(shù)據(jù)集運行交叉驗證,以進行更可靠的驗證。KFold交叉驗證,Leave-One-Out-CV是最流行的方法。
測試選項和評估指標
基于一組需要定義的評估指標來評估模型。對于回歸算法,一些常用指標是MSE和R Square。
與分類有關(guān)的評估指標要多樣化得多-混淆矩陣,F(xiàn)1得分,AUC / ROC曲線等。對每種算法的這些得分進行比較,以檢查哪些算法的性能優(yōu)于其余算法。
抽查算法
拆分數(shù)據(jù)并定義評估指標后,您需要在for循環(huán)中運行一組算法,以檢查哪個算法表現(xiàn)最佳。簡短的算法列表可以很好地解決您的問題,這是一個反復的嘗試,這樣您便可以加速研究并進一步調(diào)優(yōu)它們。
可以制作流水線,并可以混合使用線性和非線性算法來檢查性能。
比較算法
現(xiàn)場運行測試工具后,您可以輕松查看哪些工具最適合您的數(shù)據(jù)。始終獲得高分的算法應該是您的目標。然后,您可以選擇最好的,并對其進行進一步調(diào)整以提高其性能。
提高準確性
擁有性能最佳的算法之后,可以調(diào)整它們的參數(shù)和超參數(shù)以提供最好的結(jié)果。也可以連接多種算法。
算法調(diào)整
維基百科指出“超參數(shù)調(diào)整是為機器學習算法選擇一組最佳超參數(shù)”。超參數(shù)是無法學習的參數(shù),必須在運行算法之前進行設(shè)置。超參數(shù)的一些例子包括邏輯回歸的損失,隨機梯度下降的損失以及SVM的核。
這些參數(shù)可以在數(shù)組中傳遞,并且算法可以遞歸運行,直到找到完美的超參數(shù)。這可以通過諸如網(wǎng)格搜索和隨機搜索之類的方法來實現(xiàn)。
組合
可以將多種機器學習算法組合在一起,以形成一個更健壯和更優(yōu)化的模型,該模型相比于單個算法可以提供更好的預測。這被稱為合奏。
有2種類型常見的合奏-套袋(Bootstrap-Aggregating)和Boosting。例如,“隨機森林”是一種Bagging集成體,它組合了多個決策樹并獲取輸出的總和。
另一方面,Boosting通過適應性學習的方式組合了一組弱學習方式:集合中的每個模型都得到了擬合,從而更加重視數(shù)據(jù)集中實例中序列中先前模型存在較大錯誤的實例。XGBoost,AdaBoost,CatBoost是一些例子。
完成模型
驗證數(shù)據(jù)集的預測
當您獲得具有最佳超參數(shù)和合奏的最佳性能模型時,可以在未知的測試數(shù)據(jù)集上對其進行驗證。
在訓練集上創(chuàng)建獨立模型
驗證后,對整個數(shù)據(jù)集運行一次模型,以確保在訓練/測試時不會遺漏任何數(shù)據(jù)點。現(xiàn)在,您的模型處于最佳狀態(tài)。
保存模型以備后用
有了準確的模型后,您仍然需要保存并加載它,以備將來需要時使用。完成此操作的最常用方法是Pickle。
以上就是本文的內(nèi)容。當然,在機器學習方面,這還不是全部。但這可以用作良好的路線圖。對于不同類型的數(shù)據(jù)/問題,需要自己發(fā)揮。在下面評論您的想法,或說一說您是否了解更好和更關(guān)鍵的技術(shù)。
半小時訓練億級規(guī)模知識圖譜,亞馬遜AI開源知識圖譜嵌入表示框架DGL-KE
中國頂尖的技術(shù)社區(qū)們在一個群里,會聊什么…
京東智能內(nèi)容創(chuàng)作算法的演進與實踐:基于關(guān)鍵詞自動生成摘要
馬化騰、馬云并列成為中國首富;百度回應“將上線電商直播”;.NET 5 Preview 2 發(fā)布 | 極客頭條
程序員職場背鍋甩鍋指南
警惕!新騙術(shù)出現(xiàn):這些虛假二維碼生成器已成功盜取 4.6 萬美元!
“出道” 5 年采用率達 78%,Kubernetes 的成功秘訣是什么?
-
算法
+關(guān)注
關(guān)注
23文章
4697瀏覽量
94704 -
機器學習
+關(guān)注
關(guān)注
66文章
8490瀏覽量
134060 -
數(shù)據(jù)可視化
+關(guān)注
關(guān)注
0文章
475瀏覽量
10705
發(fā)布評論請先 登錄
NanoEdge AI Studio 面向STM32開發(fā)人員機器學習(ML)技術(shù)

SSM開發(fā)環(huán)境的搭建教程 SSM與Spring Boot的區(qū)別
使用SSR構(gòu)建React應用的步驟
如何優(yōu)化單片機項目的功耗
舵機技術(shù)新紀元:解鎖DIY項目的無限可能
步驟詳解:彈性公網(wǎng)ipv6如何申請?
簡述光刻工藝的三個主要步驟
改善升壓轉(zhuǎn)換器PCB布局的五個步驟

Modbus、樓宇自控、電力協(xié)議轉(zhuǎn)Modbus協(xié)議網(wǎng)關(guān)BL120ML支持一鍵對接LabVIEW

評論