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