機器學習入門 一)

2021-10-19 10:39:58 字數 3607 閱讀 6059

年後又開始新一輪的學習了。

今天我來複習跟鞏固機器學習的基礎概念。

我們將機器學習系統按他們的特點分類:

是否在人類監督下訓練。例如:有監督學習,無監督學習,半監督學習,強化學習。是否簡單地將新的資料點和已知的資料點進行匹配,還是像科學家一樣,對訓練資料進行模式檢測然後建立乙個**模型。例如:基於例項的學習和基於模型的學習。

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 回歸問題 是乙個連續值,根據樣本上的一些特徵,連續值結果。聚類問題 因為沒有標籤以及明顯的劃分標準,根據樣本的相似性或者關聯關係,把類似的歸於一類 常用的一些術語 對於結構化資料,...