天天看點

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

機器學習的目标:

機器學習是實作人工智能的手段,其主要研究内容如何利用資料或經 驗進行學習,改善具體算法的性能

• 多領域交叉,涉及機率論、統計學算法複雜度理等門科

• 廣泛應用于 網絡搜尋、垃圾郵件過濾 、推薦 系統、廣告投放信用 評價 、 欺詐檢測、股票交易 和醫療診斷等 應用

機器學習分類:

機器學習一般分為下面幾種類别

• 監督學習 (Supervised Learning Supervised Learning )

• 無監督學習 (Unsupervised Learning )

• 強化學習( Reinforcement Learning Reinforcement Learning ,增強學習)

• 半監督學習( Semi -supervised Learning supervised Learning )

• 深度學習 (Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)(Deep Learning)

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

sklearn庫:

sklearn 是scikit scikit -learn 的簡稱,是一個基于 Python Python 的第三方子產品。 

sklearn 庫內建了一些常用的機器學習方法, 在進行任務時并不需要實作算法,隻簡單的調用 sklearn 庫中提供的子產品就能 完成大多數的機器學習任務。

sklearn 庫是在 Numpy 、Scipy Scipy 和matplotlib matplotlib 的基礎上開發而成, 是以在介紹sklearn的安裝前,需要先安裝這些依賴庫。

安裝順序如下:

1. Numpy 庫

2. Scipy 庫

3. matplotlib 庫

4. sklearn 庫

sklearn中的标準資料集:

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

波士頓房價資料集:

波士頓房價資料集包含 506 組資料,每條包含房屋 以及周圍的詳細資訊。其中包括城鎮犯罪率、一氧化氮濃度住宅平均房間數、到中心區域的權重距離以及自住房平均價等。是以,波士頓房價資料集能夠應用到回歸問題上。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

使用sklearn.datasets .load_boston即可加載相關資料集

其重要參數為:

•return_X_y:表示是否傳回target(即價格),預設為False, 隻傳回data(即屬性)。

波士頓房價資料集-加載示例:
示例一:
from sklearn.datasets import load_boston
boston=loan_boston()
print(boston.data.shape)

示例二:
from sklearn.datasets import load_boston
data,target=loan_boston(return_x_y=True)
print(data.shape)
print(target.shape)
           

鸢尾花資料集:

鸢尾花資料集采集的是鸢尾花的測量資料以及其所屬的類别。

測量資料包括:萼片 長度、寬度、花瓣長。

類别共分為三類: Iris Setosa, Iris Versicolour,Iris Virginica。該資料集可用于多分類問題。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

使用sklearn.datasets.load_iris即可加載相關資料集。

其參數有:

return_x_y:若為True,即以(data,target)形式傳回資料;預設為False,表示以字典形式傳回資料全部資訊(包括data和target)。

鸢尾花資料集-加載示例:

from sklearn.datasets import loan_iris
iris=loan_iris()
print(iris.data.shape)
print(iris.target.shape)
list(iris.target_names)
           

手寫數字資料集:

手寫數字資料集包括1797個0-9的手寫數字資料,每個數字由8*8大小的矩陣構成,矩陣中值的範圍是0-16,代表顔色的深度。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

使用sklearn.datasets.load_digits即可加載相關資料集。

其參數包括:

return_x_y:若為True,則以(data,target)形式傳回資料;預設為False,表示以字典形式傳回資料全部資訊(包括data和target);

n_class:表示傳回資料的類别數,如n_class=5,則傳回0到4的資料樣本。

手寫數字資料集-加載示例:

from sklearn.datasets import load_digits
digits=load_digits()
print(digits.data.shape)
print(digits.target.shape)
print(digits.images.shape)
import matplotlib.pyplot as plt
plt.matshow(digits.images[0])
plt.show()
           

sklearn庫的基本功能:

sklearn庫共分為6大部分,分别用于完成分類任務、回歸任務、聚類任務、降維任務、模型選擇以及資料的預處理。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

無監督學習的目标:

利用無标簽的資料學習資料的分布或資料與資料之間的關系被稱作無監督學習。

有監督學習和無監督學習的最大差別在于資料是否有标簽。

無監督學習最常應用的專題是聚類(clustering)和降維(Dimension Reduction)

聚類(clustering):

聚類,就是根據資料的“相似性”将資料分為多類的過程。

評估兩個不同樣本之間的“相似性”,通常使用的方法就是計算兩個樣本之間的“距離”。使用不同的方法計算樣本間的距離會關系到聚類結果的好壞。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:
Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

Sklearn vs. 聚類:

scikit -learn 庫(以後簡稱sklearn庫)提供的常用聚類算法函數包含在sklearn.cluster這個子產品中,如:K-Means, 近鄰傳播算法,DBSCAN等。

以同樣的資料集應用于不算法,可能會得到不同的結果,算法所耗費時間也不盡相同,這是由算法的特性決定的。

sklearn.cluster:

sklearn.cluster 子產品提供的各聚類算法函數可以使用不同據形式作為輸入 :

标準資料輸入格式 :[ 樣本個數 ,特征]定義的矩陣形式。

相似性矩陣輸入格式:即由 [樣本數目 ,樣本數目]定義的矩陣形式,矩陣中的每一個元素為兩樣本相似度, 如DBSCAN ,AffinityPropagation(近鄰傳 播算法 )接受這種輸入。如果以餘弦相似度為例,則對角線元素全為1. 矩陣中每個元素的取值範圍為[0,1] 。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

降維:

降維,就是在保證資料所具有的代表性特性或者分布的情況下,将高維資料轉化為低維資料的過程:

資料的可視化;

精簡資料。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能:

聚類 VS 降維:

聚類和降維都是無監督學習的典型任務,任務之間存在關聯,比如某些高維資料的聚類可以通過降維處理更好地獲得,另外學界研究也表明代表性的聚類算法如K-means與降維算法如NMF之間存在等價性,在此我們就不展開讨論了,有興趣的同學可以參考我們推薦的閱讀内容。

sklearn vs 降維:

降維是機器學習領域的一個重要研究内容,有很多被工業界和學術界接受的典型算法,截止到目前sklearn庫提供7種降維算法。

降維過程也可以被了解為對資料集的組成成份進行分解(decomposition)的過程,是以sklearn為降維子產品命名為decomposition,在對降維算法調用需要使用sklearn.decomposition子產品。

Python機器學習應用(中國mooc)-摘1sklearn庫的基本功能: