用Scikit-learn和TensorFlow进行机器学习(一)
文章目錄
- 機器學習概覽
- 一、什么是機器學習?
- 1、定義
- 2、適用
- 二、分類
- 1、監督, 非監督, 半監督和強化學習
- (1)監督學習
- (2)非監督學習
- (3)半監督學習
- (4)強化學習
- 2、在線學習 vs 批量學習
- (1)在線學習
- (2)批量學習
- 3、基于實例學習 vs 基于模型學習
- (1)基于實例學習
- (2)基于模型學習
- 三、主要挑戰
- 四、測試和確認
機器學習概覽
一、什么是機器學習?
1、定義
計算機程序利用經驗 E 學習任務 T, 性能是 P, 如果針對任務 T 的性能 P 隨著經驗 E 不斷增長, 則稱為機器學習。(湯姆·米切爾,1997)
2、適用
- 需要進行大量手工調整或需要擁有長串規則才能解決的問題: 機器學習算法通常可以簡化代碼、 提高性能。
- 問題復雜, 傳統方法難以解決: 最好的機器學習方法可以找到解決方案。
- 環境有波動: 機器學習算法可以適應新數據。
- 洞察復雜問題和大量數據。
二、分類
注意下述規則可以組合
1、監督, 非監督, 半監督和強化學習
分類依據:根據訓練時監督的量和類型進行分類。
(1)監督學習
分為:分類任務、回歸任務
常用算法:
- K近鄰算法
- 線性回歸
- 邏輯回歸
- 支持向量機( SVM)
- 決策樹和隨機森林
- 神經網絡
(2)非監督學習
常用算法:
聚類
- K 均值
- 層次聚類分析( Hierarchical Cluster Analysis, HCA)
- 期望最大值
可視化和降維(簡化數據、 但是不能失去大部分信息)
- 主成分分析( Principal Component Analysis, PCA)
- 核主成分分析
- 局部線性嵌入( Locally-Linear Embedding, LLE)
- t-分布鄰域嵌入算法( t-distributed Stochastic Neighbor Embedding, t-SNE)
關聯性規則學習(挖掘大量數據以發現屬性間有趣的關系)
- Apriori 算法
- Eclat 算法
此外,還常用于異常檢測( anomaly detection)
(3)半監督學習
數據形式:通常是大量不帶標簽數據加上小部分帶標簽數
據。
多數半監督學習算法是非監督和監督算法的結合。eg:深度信念網絡(deep belief networks)
(4)強化學習
智能體(agent), 可以對環境進行觀察(observation), 選擇和執行動作(action), 獲得獎勵。然后它必須自己學習哪個是最佳方法( 稱為策略, policy) , 以得到長久的最大獎勵。 策略決定了智能體在給定情況下應該采取的行動。
2、在線學習 vs 批量學習
分類依據:是否能從導入的數據流進行持續學習
(1)在線學習
用數據實例持續地進行訓練,可以一次一個或一次幾個實例( 稱為小批量)。 每個學習步驟都很快且廉價,所以系統可以動態地學習到達的新數據。
==》適合接收連續流的數據,且需要自動對改變作出調整。
數據的使用:
- 一旦在線學習系統學習了新的數據實例,它就不再需要這些數據了, 所以扔掉這些數據( 除非你想滾回到之前的一個狀態, 再次使用數據)==》這樣可以節省大量的空間。
- 核外數據(機器內存存不下大量數據集時):加載部分數據,之后訓練,然后重復該過程,直到所有數據都進行了訓練。
(2)批量學習
系統不能持續學習:必須用所有可用數據進行訓練。
==》占用大量時間和計算資源
3、基于實例學習 vs 基于模型學習
(1)基于實例學習
記憶學習。系統先用記憶學習案例, 然后使用相似度測量推廣到新的例子
(2)基于模型學習
從樣本集進行歸納的方法是建立這些樣本的模型, 然后使用這個模型進行預測。
三、主要挑戰
- 訓練數據量不足:數據不合理的有效性;
- 沒有代表性的訓練數據;
- 樣本太小==》樣本噪聲
- 樣本太大==》樣本偏差:可能沒有代表性, 如果取樣方法錯誤的話。
- 低質量數據:錯誤、異常值和噪聲
- 不相關的特征
- 特征工程(特征選擇、特征提取、收集新數據創建新特性)
- 過擬合訓練數據
- 簡化模型, 可以通過選擇一個參數更少的模型( 比如使用線性模型, 而不是高階多項式模型)、 減少訓練數據的屬性數、 或限制一下模型(正則化)
- 收集更多的訓練數據
- 減小訓練數據的噪聲( 比如, 修改數據錯誤和去除異常值)
- 欠擬合訓練數據
四、測試和確認
數據集劃分:訓練集、驗證集、測試集;
在驗證集上模型和超參數,選擇性能最佳的模型和超參數
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的用Scikit-learn和TensorFlow进行机器学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode】35. 搜索插入位置
- 下一篇: Pandas——loc、iloc、ix