Python機器學習應用(中國mooc)-摘1

機器學習的目標:
機器學習是實現人工智能的手段,其主要研究內容如何利用數據或經 驗進行學習,改善具體算法的性能
• 多領域交叉,涉及概率論、統計學算法複雜度理等門科
• 廣泛應用於 網絡搜索、垃圾郵件過濾 、推薦 系統、廣告投放信用 評價 、 欺詐檢測、股票交易 和醫療診斷等 應用
 

 

機器學習分類:
機器學習一般分爲下面幾種類別
• 監督學習 (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)

 

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中的標準數據集:

 

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

 

使用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。該數據集可用於多分類問題。

使用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,代表顏色的深度。

使用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大部分,分別用於完成分類任務、迴歸任務、聚類任務、降維任務、模型選擇以及數據的預處理。

 

 

無監督學習的目標:

利用無標籤的數據學習數據的分佈或數據與數據之間的關係被稱作無監督學習。
有監督學習和無監督學習的最大區別在於數據是否有標籤。
無監督學習最常應用的專題是聚類(clustering)和降維(Dimension Reduction)
 

聚類(clustering):
聚類,就是根據數據的“相似性”將數據分爲多類的過程。
評估兩個不同樣本之間的“相似性”,通常使用的方法就是計算兩個樣本之間的“距離”。使用不同的方法計算樣本間的距離會關係到聚類結果的好壞。

 

 

Sklearn vs. 聚類:
scikit -learn 庫(以後簡稱sklearn庫)提供的常用聚類算法函數包含在sklearn.cluster這個模塊中,如:K-Means, 近鄰傳播算法,DBSCAN等。
以同樣的數據集應用於不算法,可能會得到不同的結果,算法所耗費時間也不盡相同,這是由算法的特性決定的。
 

sklearn.cluster:
sklearn.cluster 模塊提供的各聚類算法函數可以使用不同據形式作爲輸入 :
標準數據輸入格式 :[ 樣本個數 ,特徵]定義的矩陣形式。
相似性矩陣輸入格式:即由 [樣本數目 ,樣本數目]定義的矩陣形式,矩陣中的每一個元素爲兩樣本相似度, 如DBSCAN ,AffinityPropagation(近鄰傳 播算法 )接受這種輸入。如果以餘弦相似度爲例,則對角線元素全爲1. 矩陣中每個元素的取值範圍爲[0,1] 。

 

降維:
降維,就是在保證數據所具有的代表性特性或者分佈的情況下,將高維數據轉化爲低維數據的過程:
數據的可視化;
精簡數據。

 

 

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


sklearn vs 降維:
降維是機器學習領域的一個重要研究內容,有很多被工業界和學術界接受的典型算法,截止到目前sklearn庫提供7種降維算法。
降維過程也可以被理解爲對數據集的組成成份進行分解(decomposition)的過程,因此sklearn爲降維模塊命名爲decomposition,在對降維算法調用需要使用sklearn.decomposition模塊。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章