先進的機器學習算法所取得的結果在外人看來可能令人難以置信的神秘,但仔細的數(shù)據(jù)集編程使它們成為可能。它們涉及諸如了解完成的算法如何在理想情況下工作,獲取適當?shù)男畔?,并準備它以消除錯誤。以下是創(chuàng)建數(shù)據(jù)集以編寫有效的機器學習算法時要采取的一些關鍵步驟。
1.花時間理解和定義問題或問題
人們通常開發(fā)機器學習算法,因為他們需要解決一個問題或回答一個緊迫的問題。考慮一個電子商務零售商想知道哪些產(chǎn)品最有可能促使購物者重新購買商品的示例。在這種情況下,機器算法可能會包含有關消費者過去購買和任何其他顯著購買趨勢的數(shù)據(jù)。
從事數(shù)據(jù)集編程的人最終不會使用機器學習算法。從醫(yī)學到教育的行業(yè)以多種方式使用人工智能(AI)。程序員和數(shù)據(jù)科學家不一定需要在這些領域工作的第一手經(jīng)驗來構建出色的算法。但是,理想情況下,他們應該花時間與使用它的人交談。
這是因為機器學習問題定義通常是一個迭代過程,隨著人們提供更多細節(jié)而得到改進。與最終用戶的信息訪談對于更多地了解人們?nèi)绾误w驗問題或需要機器學習為他們回答問題非常有價值。您從他們那里獲得的見解越多,就越容易理解他們的立場并創(chuàng)建數(shù)據(jù)集,使機器學習算法能夠按照每個人的期望工作。
了解用戶需求后,您可以開始思考機器學習算法的不同功能以及如何應用它們。
2.開始收集數(shù)據(jù)
數(shù)據(jù)集編程的成功需要有足夠的信息供機器學習算法使用。在此過程的早期需要決定的是,您將在多大程度上依賴您的公司或客戶的信息,而不是公開可用的數(shù)據(jù)集中包含的信息。
幸運的是,您會找到大量后者的資源。美國政府還維護了一個網(wǎng)站,其中包含可供考慮的開放數(shù)據(jù)集。
此步驟中的另一個考慮因素是哪種數(shù)據(jù)最有用。在為相對廣泛的行業(yè)(例如醫(yī)療保健或交通運輸)開發(fā)算法時,問問自己哪種信息與您使用機器學習最相關。確定您是否依賴上一步的學習會容易得多,上一步要求您與將使用或直接受益于您完成的算法的人交談。
算法做出正確預測的能力取決于它對訓練數(shù)據(jù)中過去結果的訪問。這意味著它需要大量的信息。一個常用的統(tǒng)計數(shù)據(jù)是,您需要的訓練數(shù)據(jù)示例數(shù)量大約是您的模型自由度的10倍。
但是,這些數(shù)量可能會因個人用例而異。相反,幾乎不可能建議最少的信息量仍然可以讓您的算法運行良好。通常,如果您的訓練數(shù)據(jù)包括圖片或視頻,則您需要比其他類型的信息更大的數(shù)據(jù)集。
3.清理數(shù)據(jù)
這個階段并不是機器學習數(shù)據(jù)集編程中最迷人的部分,但大多數(shù)數(shù)據(jù)科學家在它上面花費了大量時間。這是因為數(shù)據(jù)清理的徹底性將極大地影響結果算法的工作準確度以及它是否回答了您想要和期望的問題。
首先刪除數(shù)據(jù)集中不需要的或重復的觀察結果。消除重復尤其重要,因為它們可能會引入偏見并影響您得出錯誤的結論。
接下來,查找格式錯誤——尤其是那些與數(shù)據(jù)類別相關的錯誤。您可能會看到您正在使用的每個類別的標題都有一個大寫字母,除了一個。在這種情況下,您需要修復它以使其具有與其余部分相同的結構。主要原因是名稱相同但大小寫不同的類別可能被視為單獨的實例,影響準確性。
如果有正當理由,從數(shù)據(jù)中刪除異常值也很重要。不過要小心,不要太倉促。假設它不正確,您可能會在數(shù)據(jù)集中看到大量數(shù)字。但是,最好進行進一步調查以確認是否是這種情況。
最后,正確處理丟失的數(shù)據(jù)是清理數(shù)據(jù)的關鍵步驟。但是,這并不意味著做出假設并使用您的最佳猜測來輸入缺失的內(nèi)容。它也不涉及消除部分缺乏價值的信息。相反,解決這個常見問題的最佳方法是將該方面標記為“缺失”。如果它是一個數(shù)字,首先將其標記為缺失,然后用零填充它。
4.參與特征工程和選擇
使用數(shù)據(jù)集編程進行機器學習的最后一個主要步驟是特征工程和選擇。它們總體上相似但與眾不同。當您為機器學習模型添加或創(chuàng)建新變量以改進其輸出時,就會發(fā)生特征工程。這是數(shù)據(jù)科學家所做的主要工作。
例如,他們可能通過將變量分解為單獨的特征或使用概率分布來轉換元素來改變數(shù)據(jù)集的組成。這些變化有助于增強模型的輸出。
當數(shù)據(jù)科學家檢查模型以查看最相關的內(nèi)容并消除不必要的內(nèi)容時,就會進行特征選擇。這是必不可少的一步,因為它使模型過度訓練不太可能發(fā)生。
您將如何使用數(shù)據(jù)集編程?
數(shù)據(jù)集編程是機器學習的重要組成部分,因為它共同幫助算法充分發(fā)揮其潛力。數(shù)據(jù)科學家和相關專業(yè)人員在采取這些步驟時所采取的護理措施將對使用它們或以其他方式與之交互的人產(chǎn)生深遠的影響。