• 沒有找到結果。

第三節 深度學習技術

一、 Scikit-Learn:

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

一、 Scikit-Learn:

Scikit-Learn,簡稱為 SKlearn,為機器學習領域中 Python 的模塊之一。官 方網站中亦將其功能分為六大塊(如圖 3-1-1),

圖 3-1-1

圖表 3- 4 Scikit-learn 提供的 machine learning 算法地圖 資料來源:Sklearn

(一) 監督式學習--分類演算法(Classification) :

分類主要識別給定對象之所屬類別,屬於監督式學習的演算法,演算 法包含支持向量機模型(Support Vector Machine , SVM)、K 最鄰近演算 法(K-Nearest Neighbor , KNN)、羅吉斯迴歸(Logistic Regression)、決 策樹(Decision Tree)、多層感知器(MLP, Multi-layer Perception)神經網 絡等,其應用於垃圾郵件檢測、圖像識別等。而由於 Scikit-Learn 不支援深 度學習,亦不支持 GPU 加速,因此對於多層感知器 MPL 的實現並不適合 於處理大規模的問題。

(二) 監督式學習--迴歸演算法(Regression):

迴歸模型即為預測與給定對象相關聯的連續值屬性,亦為監督式學習 之模型之一,演算法包含支持向量迴歸(Support Vector Regression,

SVR)、脊迴歸(Ridge Regression)、最小角迴歸(LARS)以及貝斯迴歸

(Bayesian Regression)等模型,最常應用於預測藥物反應、預測股價價格

(三) 非監督式學習--分群演算法(Clustering):

聚類、分群即為自動辨識聚有相似屬性的給定對象,將其分組分群為 一個集合,屬於非監督式學習的模型之一,Scikit-Learn 演算法包含 K-均值 聚類(K-means)、均值偏移(Mean Shift)、分層具類及 DBSCAN 聚類 等,其中最常應用於顧客分群以及實驗結果分組等。

(四) 降低維度(Dimensionality Reduction):

當數據具有大量屬性時,可透過降低維度的方法歸納屬性,透過降低 維度技術以減少要考慮的隨機變量個數,其演算法包含主成分分析(PCA, Principal Component Analysis)、非負矩陣分解(NMF, Non-negative Matrix Factorization)、特徵選擇等,應用於可視化處理或是於模型中提升效率。

(五) 模型選擇(Model selection):

模型選擇則為給於給定參數以及模型的比較、驗證與選擇方法,目的 為透過參數調整來提升模型的精確度,Scikit-Learn 可選擇的模型包含了交 叉驗證法(Cross Validation)及各種針對預測誤差評估的度量函數,例如 均方差等。

(六) 資料的前處理(Preprocess)

資料的前處理為機器學習過程中最重要的環節,將輸入數據轉換為具

Scikit-Learn 作為專門面向機器學習 Python 開源框架,可在一定範圍內為開 發者提供相當多的幫助,更實現了各種成熟的演算法,釋例也相當豐富,其介 紹亦相當詳細,而另一方面,Scikit-Learn 的缺點則為不支持深度學習和強化學 習,此外,亦不支持圖模型及序列的預測,而若不考慮多層神經網絡的相關應 用,其性能表現由於內部演算法的高效率,且歸功於 Cython 的編譯氣,透過

Cython 在 Scikit-Learn 框架內生成的 C 語言的運行方式,消除了大部分的性能 瓶頸。

本文將分析電子商務客戶之資料,將未知之客戶資訊透過購買行為分群,

屬於機器學習方法之聚類分析,因此將透過 Scikit-Learn 之聚類分析演算法,聚 類分析即透過未知之資訊中以找出其資料之間之相關性,集群之目標即為在數

因此,K-Means 演算法中心點的選擇相當重要,由於此演算法能夠保證收 斂,卻無法保證收斂於全局最優點,當初始中心點若選擇不好時,則只能達到

「k-means++」。

5. algorithm:

有「auto」、「full」或是「elkan」三種選擇,其中,「full」即為傳統 的 K-Means 演算法、「elkan」為 elkan K-Means 演算法,而默認值

「auto」則會根據數據值是否稀疏來決定使用「full」或是「elkan」,若數 據為稠密的則選擇「elkan」,反之,若數據為稀疏的則選擇「full」,因此 一般建議使用默認之「auto」演算法進行分析。