年後又開始新一輪的學習了。
今天我來複習跟鞏固機器學習的基礎概念。
我們將機器學習系統按他們的特點分類:
是否在人類監督下訓練。例如:有監督學習,無監督學習,半監督學習,強化學習。是否簡單地將新的資料點和已知的資料點進行匹配,還是像科學家一樣,對訓練資料進行模式檢測然後建立乙個**模型。例如:基於例項的學習和基於模型的學習。
1.1 有監督學習和無監督學習
根據訓練期間接受的監督數量和監督型別,可以將機器學習系統分為以下四個主要類別:有監督學習,無監督學習,半監督學習,強化學習。
1.1.1有監督學習
在有監督學習中,提供演算法的包含所需解決方案的訓練集稱為標籤。
概念:通過已有的訓練樣本去訓練得到乙個最優模型,再利用這個模型將所有的輸入對映為相應的輸出,對輸出進行簡單的判斷從而實現**和分類的目的,也就具有了對未知資料進行**和分類的能力。簡單來說,就像有標準答案的練習題,然後再去考試,相比沒有答案的練習題然後去考試準確率更高。監督學習中的資料中是提前做好了分類資訊的, 它的訓練樣本中是同時包含有特徵和標籤資訊的,因此根據這些來得到相應的輸出。
補充:最常見的監督學習就是回歸和分類。
這裡是一些重要的有監督學習演算法:
·k-近鄰演算法
·線性回歸
·邏輯回歸
·支援向量機(svm)
·決策樹和隨機森林
·神經網路
1.1.2無監督學習
顧名思義,無監督學習的訓練資料都是未經標記的。系統會在沒有「老師」的情況下學習。
概念:訓練樣本的標記資訊未知, 目標是通過對無標記訓練樣本的學習來揭示資料的內在性質及規律,為進一步的資料分析提供基礎,此類學習任務中研究最多、應用最廣的是"聚類" (clustering),聚類目的在於把相似的東西聚在一起,主要通過計算樣本間和群體間距離得到。深度學習和pca都屬於無監督學習的範疇。
這裡有一些重要的無監督學習演算法
·聚類演算法
·k-均值演算法
·dbscan
·分層聚類分析(hca)
·異常檢測和新穎性檢測
·單類svm
·孤立森林
·視覺化和降維
·主成分分析(pca)
·核主成分分析
·區域性線性嵌入(lle)
·t-分布隨機近鄰嵌入(t-sne)
·關聯規則學習
·apriori
·eclat
1.1.3半監督學習
概念:由於通常給資料做標記是非常耗時和昂貴的,你往往會有很多未標記的資料而很少有已標記的資料。有些演算法可以處理部分已標記的資料。這被稱為半監督學習
有些**託管服務(例如google相簿)就是很好的示例。一旦你將所有的家庭**上傳到伺服器後,他會自動識別出人物a出現在**1、5、11中,人物b出現在**2、5、7中。這就是演算法的無監督學習部分(聚類)。現在系統需要你做的就是只是告訴他這些人都是誰,給每乙個人標籤後,他就可以給每張**中的每個人命名,這對於搜尋非常重要。
大多數半監督學習演算法是無監督演算法和有監督演算法的結合。
1.1.4強化學習
強化學習則是乙個非常與眾不同的「巨獸」。他的學習系統(在其語境中稱為智慧型體)能夠觀察環境,做出選擇,執行動作,並獲取回報(或者是以負面回報的形式獲得懲罰)。所以他必須自行學習什麼是最好的策略,從而隨著時間的推移獲得最大的回報。策略代表智慧型體在特定情況下應該選擇的動作。
像這個圖,智慧型體在遇到火焰後,懲罰為減50分,所以他知道了火是不好的,下次繞開走。而遇到水,回報是加50分,所以他知道了水是好的。
講了一些機器學習的基本概念,現在來看乙個例項,加深下印象。這個是想要知道賽普勒斯人有多幸福,但是經合組織的資料沒有提供答案。幸好你有這個模型可以做出**:先查查賽普勒斯的人均gdp是多少,發現是22587美元,然後運用到模型中,發現生活滿意度大約是4.85+22587*0.0000491 = 5.96.下面這個**就是解釋,如何計算出生活滿意度的。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn.linear_model
#匯入資料
oecd_bli = pd.
read_csv
("d:/jiqixuexitest/handson-ml2/datasets/lifesat/oecd_bli_2015.csv"
, thousands =
',',error_bad_lines=false)
gdp_per_capita = pd.
read_csv
("d:/jiqixuexitest/handson-ml2/datasets/lifesat/gdp_per_capita.csv"
,thousands =
',',delimiter=
'\t'
,encoding=
'latin1'
,na_values=
"n/a"
,error_bad_lines=false)
#處理資料
country_stats =
country_stats_prepare
(oecd_bli, gdp_per_capita)
x = np.c_[country_stats[
"gdp per capita"]]
y = np.c_[country_stats[
"life satisfaction"]]
#視覺化資料
country_stats.
plot
(kind=
'scatter'
, x=
"gdp per capita"
, y=
"life satisfaction"
)plt.
show()
#選擇線性模型
model = sklearn.linear_model.
linearregression()
#訓練模型
model.
fit(x,y)
#做出**
在本案例中,葡萄牙和西班牙的生活滿意度分別為5.1和6.5,**的賽普勒斯的生活滿意度為5.7,取這三個數的平均值為5.77,這野非常接近基於模型**所得的值,這個簡單的演算法被稱為k-近鄰回歸(在本例中,k=3)
乙個經典的機器學習專案分為:
·研究資料
·選擇模型
·使用訓練資料進行訓練(即前面學習演算法搜尋模型引數值,從而使成本函式最小化的過程)。
·最後,應用模型對新示例進行**(稱為推斷),希望模型的泛化結果不錯。
機器學習入門(一)
分類和回歸 均為 過程,其中分類是對離散值的 回歸是對連續值的 監督學習和無監督學習 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習 聚類 監督學習就是給輸入的無標籤資料新增標籤的過程。資料集的劃分方法 1.留出法,即把資料集分為兩部分 一般來說是8 2,8...
機器學習入門 一
上大學的時候人工智慧火了一段時間 雖然現在還是虛假的繁榮現象 但是不得不說人工只能肯定是未來的發展方向,所以我們就有必要了解其基本的理論原理,當然了我寫出來的東西肯定不會和數學特別相關,因為我概率論差啊,那段時間沉迷遊戲,然後60多分飄過,所以各位肯定是比我牛逼的。我參考的書籍是 機器學習及實踐 範...
機器學習(一) 機器學習入門常識
機器學習常常劃分為三個方面 分類問題 因為有了標籤值,根據演算法,將樣本歸於哪一類。邏輯回歸,決策樹,隨機森林,svm 回歸問題 是乙個連續值,根據樣本上的一些特徵,連續值結果。聚類問題 因為沒有標籤以及明顯的劃分標準,根據樣本的相似性或者關聯關係,把類似的歸於一類 常用的一些術語 對於結構化資料,...