這裏說說機器學習問題分析的通常性過程,儘管存在各類各樣的機器學習問題,但大致上的步驟及最佳實踐都有必定的套路。mysql
首先得理解要解決的是什麼問題,好比算法
以上等等等等。sql
待收集的數據多是表格數據、一串實時數據,N維矩陣或其餘類型數據,同時也多是多種存儲介質,經過ETL處理將混合的數據源轉成咱們須要的格式,生成結構化數據類型。網絡
對於收集的數據,可能存在缺陷,好比空值、異常值或數據產生器自己引發的誤差。這些缺陷可能致使模型效果不佳,同時爲了優化更快收斂,須要作數據標準化處理,因此須要進行數據預處理。併發
好比缺失值能夠簡單設爲0、列平均值、中值、最高頻率值、甚至是穩健算法和knn等等。機器學習
好比標準化數據集,使數據集正態分佈,平均值爲0標準差爲1。並且還達到了特徵縮放效果。函數
機器學習主要就是模型問題,咱們經過機器學習來對現實進行抽象建模,以解決現實問題。因此機器學習主要工做就是使用哪一種模型來建模,儘管各類大大小小模型一大堆,但大致上也有些套路。學習
損失函數用於衡量模型質量,它能夠度量模型預測值與實際指望之間的差距,選擇不合適的函數可能會影響模型的準確性,甚至影響收斂速度。測試
數據準備好了,模型定義好了,就能夠開始訓練模型。訓練中涉及幾個關鍵術語:迭代,表示模型計算和調整的一次過程;批,數據集每次以一批爲單位輸入到模型中;epoch,每當整個數據集被處理完稱爲一個epoch。優化
另外,訓練模型前先調整模型的初始權重,以便能更快更好地收斂。不能初始化爲0,不然將致使學習失敗。通常可使用標準化技術將權重初始化。
通常將整個數據集分紅三組,比例是7:2:1,第一組爲訓練集,用於調整模型參數;第二種爲驗證集,用於比較多個模型直接的表現;第三組爲測試集,用於測試訓練獲得的模型準確性。
模型訓練完後要看效果如何,要看看泛化的能力。
對於迴歸問題,能夠經過下面幾個指標來了解擬合效果。
對於分類問題,能夠經過下面幾個指標來了解分類效果。
對於聚類問題,能夠經過下面幾個指標來了解聚類效果。
-------------推薦閱讀------------
個人開源項目彙總(機器&深度學習、NLP、網絡IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:
歡迎關注: