Stata:機器學習分類器大全

2021-02-13 Stata連享會

🍎 連享會主頁:lianxh.cn

New! lianxh 命令發布了:   GIF 動圖介紹
隨時搜索 Stata 推文、教程、手冊、論壇,安裝命令如下:
  . ssc install lianxh

連享會 · 最受歡迎的課


🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4

🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)

👉 課程主頁:https://gitee.com/arlionn/PX

作者: 樊嘉誠 (中山大學)

E-Mail: fanjch676@163.com

目錄

1. 引言

2. 理論介紹

3. 命令介紹和安裝

3.1 基本介紹

3.2 安裝方法

3.3 語法及選項

3.4 注意事項

4. Stata 實操

4.1 數據結構描述

4.2 模型訓練和結果

4.3 結果匯總

5. 總結

6. 參考資料


溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。

1. 引言

「如何根據西瓜的色澤、根蒂、敲聲等特徵分辨出好瓜和壞瓜」,這是我們日常生活中經常面臨的分類問題 (classification problem) 。而在學術研究中,諸多研究都離不開分類的影子:識別經濟周期,判斷未來經濟形勢;研究上市公司財務信息,對其財務困境或危機進行預警……此外,計算機視覺、垃圾郵件分類、醫學診斷等也與分類問題密切相關。

回想經典的計量模型 Logit 回歸,為解決離散選擇問題提供思路,本質上也可視作一種分類算法。隨著大數據時代的到來,許多分類任務面臨著數據維度過高數據質量較低樣本不平衡等諸多問題。機器學習 (Machine Learning, ML) 算法作為近年來炙手可熱的方法,為解決這些問題開闢了新的思路與途徑。

本推文將要介紹的命令 c_ml_stata 利用 Python 語言在 Stata 中實現了機學習分類算法,不僅囊括了眾多分類算法,如支持向量機決策樹神經網絡等;也支持交叉驗證 (Cross Validation, CV) ,是利用 Stata 處理分類問題有力工具。本推文的餘下部分安排如下:在第二部分,對該命令的部分機器學習分類算法進行簡單的理論介紹;在第三部分,對該命令的簡要介紹和安裝方法進行說明;在第四部分,利用該命令及其提供的數據集使用 Stata 進行分類問題的處理;在第五部分,對本推文主要內容進行總結。

2. 理論介紹

機器學習分類算法眾多,由於篇幅有限,現結合 c_ml_stata 命令中提供的部分分類算法進行簡要的理論介紹,以便對機器學習分類問題、算法及後續命令使用有更清楚的認識。熟悉這些算法的讀者可以快速跳過。該部分主要介紹的機器學習算法包括:支持向量機 (Support Vector Machine, SVM) 、決策樹 (Decesion Tree) 和神經網絡 (Neural Network, NN) 。

2.1 支持向量機2.1.1 支持向量與間隔

支持向量機是一種二分類器,它的基本思想是基於訓練集 劃分超平面,將不同類別的樣本劃分開。

支持向量機學習方法包括由簡至繁的一系列模型:當訓練數據線性可分時,通過硬間隔最大化 (hard margin maximization) ,學習一個線性分類器,即線性可分支持向量機;當訓練數據近似線性可分時,通過軟間隔最大化 (soft margin maximization) ,也學習一個線性分類器,即線性支持向量機;當訓練數據線性不可分時,通過使用核方法 (kernel method) 及軟間隔最大化,學習非線性支持向量機

我們從最簡單的線性可分支持向量機作為引入,假定給定一個特徵空間訓練數據集 訓練數據集是線性可分的。我們的目的是找到一個劃分超平面

特別地,若 支持向量」 (support vector) 。

一般地,對於線性可分的數據,存在無窮多個劃分超平面可以將兩類數據正確地分開,那麼如何獲得一個唯一的最優劃分超平面呢?在下圖中,有 一般來說,一個點離劃分超平面的遠近可以表示分類結果的可信度,而最優的劃分超平面應使得所有點的分類結果可信度儘可能的高。由基本的空間幾何知識可以知道,間隔 (margin),定義為

基於最初的直覺,我們的目標自然是希望即使是離劃分超平面最近的點,其劃分結果的可信度也較高。因此,最大化間隔是一個不錯的想法。然而,注意到如果我們成比例地改變

略微遺憾的是,以上最優化問題是「非凸」 (Non-convex) 的,求解過程較為複雜。幸運的是,上述最優化問題可以通過等價變換,轉換為以下凸 (Convex) 問題:

求得最優解

2.1.2 軟間隔

以上的討論中,我們假定了訓練數據集可以被劃分超平面準確、完全地分開。然而,在實際問題中,我們往往難以確定數據是否線性可分;或者,即使數據線性可分,也很難斷定這個貌似線性可分的結果不是由於過擬合導致的。因此,為了減少數據中」噪聲「的幹擾,我們允許支持向量機在一些樣本上的分類結果出錯。為此,我們需要引入軟間隔 (soft margin) 的概念。之前的約束要求所有樣本均劃分正確,即滿足

其中,

引入鬆弛變量 (slack variables)

2.1.3 核方法

由於現實中的許多問題並非是線性可分的,對於非線性可分的數據,常採用核方法將樣本從原始空間映射到更高維的特徵空間 (如下圖所示) ,使得樣本在這個特徵空間內線性可分。

因此,最優化問題可以寫為

在求解過程中,由於需要計算樣本

可以大大簡化運算過程。而函數 核函數 (kernel function) 。核函數的選取並非是任意的,需要滿足一些條件,受限於篇幅我們不作詳細討論。以下列出一些常用的核函數:

2.1.4 補充

支持向量機可以構造對偶問題,利用拉格朗日乘子法求解。支持向量機最終可轉化為一個二次規劃問題,使用諸如 SMO ( Sequential Minimal Optimization ) 等高效算法求解 (由於我們本著淺顯地了解支持向量機的基本理論,便不詳細介紹其求解優化過程)。

此外,支持向量機有以下優劣勢,我們在使用該分類方法時需額外注意:

支持向量機的最優化函數僅由少數的支持向量確定,計算的複雜性取決於支持向量的個數,而非樣本空間的維數,因此在某種程度上可以避免「維數災難」。支持向量機擁相對於其他黑箱 (Black box) 的機器學習方法有更多的更有理論,並且其結果具有較好的穩健性 (Robust) 。支持向量機算法難以用於大規模的訓練樣本的計算,對缺失數據和核函的選取較為敏感。傳統的支持向量機算法僅適用於二分類問題,而實際應用中常常面臨多分類任務。2.2 決策樹2.2.1 基本模型

決策樹是一種基於的分類和回歸方法,顧名思義,決策樹呈現樹形結構 (見下圖) 。一顆決策樹由結點 (node) 和有向邊 (directed edge) 或分枝組成,結點一般包括根結點、內部結點和葉結點,可以形象類比為「樹根」和「樹葉」,有向邊可以理解為「樹枝」。用決策樹分類的基本思想是,從根結點開始,對樣本的某一特徵 (劃分依據) 進行測試,根據測試結果將樣本分配到子結點;如此遞歸地對樣本進行測試並分配,直至到達葉結點。

2.2.2 特徵選擇

決策樹學習的關鍵問題之一是特徵選擇,即在每次分類時選擇什麼特徵進行測試和劃分。因此,我們需要確定選擇特徵的準則。直觀上,如果某一個特徵具有更好的分類能力,那麼決策樹按這一特徵分類後的各個子類應儘可能地屬於同一類別,結點的「純度」越高。接下來,我們會依次引入一些概念:信息熵、條件熵、信息增益以及信息增益比,來理解如何進行特徵選擇。

信息熵 (information entropy) 是度量樣本集合純度的一種指標,對於一個有

其信息熵定義為

特別地,若

對於隨機變量

條件熵 (conditional entropy)

這裡,經驗熵經驗條件熵

信息增益 (information gain) 表示得知特徵

顯然,對於具有較強分類能力的特徵,其信息增益更高。因此,我們利用信息增益選擇特徵的方法是,對於訓練數據集

但是,使用信息增益作為劃分標準存在偏向於選擇特徵取值較多的特徵的問題,這樣是不公平的。因此,引入了信息增益比 (information gain ratio) 的概念。定義特徵

2.2.3 樹的生成

決策樹的生成有多種算法,如 ID3C4.5 等經典的生成算法。為了理解決策樹的生成過程,我們還是選擇介紹其中的一種生成算法:ID3 ,其核心思想是在樹的各個結點用信息增益作為特徵選擇準則,遞歸地構建決策樹。具體方法是:

從根結點開始,對結點計算所有可能特徵的信息增益,選擇信息增益最大的特徵作為結點的特徵,並由該特徵的不同取值建立不同的子結點;直到所有特徵的信息增益很小或者所有特徵均選擇完畢為止。

C4.5 算法與 ID3 算法相似,不同之處在於, C4.5 使用信息增益比作為特徵選擇的依據。此外還有諸如 CART 算法等等多種多樣的生成樹的方法。

2.2.4 補充

生成決策樹後,往往還需要對其進行剪枝 (pruning) ,顧名思義,就是從已生成的樹上裁剪一些子樹或者葉結點,對樹的結構進行簡化以防止其過擬合。總結一下決策樹的優缺點:

易於理解和實現,並且能夠理解決策樹所表達特徵的含義;

因此,在其基礎上也有諸多拓展模型:與袋裝法 (Bagging) 思想結合的隨機森林 (Random Forest) ,與提升法 (Boosting) 結合的梯度提升樹 (Gradient Boosting Decesion Tree) 、極端梯度提升樹 (Extreme Gradient Boosting Decesion Tree) 等等。

2.3 神經網絡2.3.1 神經元

神經網絡是現在比較流行的機器學習算法,可以處理回歸、分類等多種問題。神經網絡中最基本的結構是神經元 (neuron) ,其結構見下圖。

一個最基本的神經元由輸入 (input) 、權重 (weight) 、偏置 (bias) 或閾值 (threshold) 、激活函數 (active function) 和輸出 (output) 組成。以一個有多個輸入只有一個輸出的神經元為例,其接受了

激活函數

一般而言,常常選取 ReLu 激活函數,原因是該函數形式較為簡單,計算快、收斂快且可以避免諸如梯度消失等問題。

2.3.2 前饋神經網絡

神經網絡結構一般由**輸入層 (input layer) ** 、**隱層 (hidden layer) ** 和 輸出層 (output layer) 組成。

隱層和輸出層:由多個有激活函數結構的神經元組成,且同層間神經元的激活函數往往相同。

最經典也是最常見的前饋神經網絡正是由輸入層、隱層和輸出層構成,其特點是含有多個隱層,每層神經元與下一層神經元全互連,神經元之間不存在同層連接,也不存在跨層連接。如下圖所示。

2.3.3 神經網絡分類算法

一般地,對於一個多分類問題,我們可以定義神經網絡的輸出

其中,softmax 方法計算其「概率」,即

設定某一閾值,或將其最大的

2.3.4 補充

前饋神經網絡中的權重 誤差逆傳播算法 (Error BackPropagation, BP) 進行確定。神經網絡算法有以下需要注意的地方:

神經網絡的結構 (即設定多少個隱層、包含多少個神經元) 需要事先設定,其結構與算法的收斂性、是否過擬合 (over fitting) 等問題密切相關;為了便於計算、消除量綱的影響,一般對輸入數據進行標準化 (normalization) 處理。由於神經網絡具有強大的表示能力,經常需使用一些策略避免過擬合,如早停 (early stop) 、正則化 (regularization) 、丟包法 (dropout) 等。

3. 命令介紹和安裝

熬過以上略微繁瑣的算法理論介紹,正是來到本次推文的主角命令——c_ml_stata 。雖然機器學習算法十分複雜 (遠比以上的理論介紹要複雜許多) , 但是該命令較為簡潔而直接地集成了多種算法,同時十分容易調用。該部分主要對命令進行基本介紹,說明其安裝方法以及語法選項的使用及一些注意事項。

3.1 基本介紹

c_ml_stata 由 Giovanni Cerulli 編寫,是在 Stata 16 中實現機器學習分類算法的命令,該命令使用 Python 中的 Scikit-learn 接口實現模型訓練、預測等功能,主要有以下特點:

支持多種分類算法: 該命令提供了分類樹 (Classification tree) 、袋裝樹和隨機森林 (Bagging and random forests) 、提升算法 (Boosting) 、正則化多項式 (Regularized multiomial) 、K 近鄰算法 (K-Neareast Neighbor) 、神經網絡 (Neural network) 、樸素貝葉斯 (Naive Bayes) 和支持向量機 (Support vector machine) 多種分類算法,便於模型的嘗試和比較。支持交叉驗證: 該命令提供了 cross_validation 選項,利用「貪婪搜索」 (greed search) 實現 K 折交叉驗證 (K-fold cross validation) 選擇最優超參數 (hyper parameters) ,調優分類模型。3.2 安裝方法

c_ml_stata 需要在 Stata 16.0 及以上版本使用。在 Stata 的命令行中輸入 ssc install c_ml_stata 即可下載,或者使用如下命令打開下載頁面:

. veiw net describe c_ml_stata  // 命令包簡介

查看與之相關的完整程序文件和相關附件,主要包括以下文件:

example_c_ml_stata.do :作者提供示例的 do 文件。c_ml_stata_data_example.dta :作者提供示例的樣本內訓練數據。c_ml_stata_data_new_example.dta :作者提供示例的樣本外預測數據。

如果想完全使用命令來安裝,可以執行如下兩條命令:

· net install  c_ml_stata  // 安裝命令包
. net get c_ml_stata // 下載附件:dofile, .dta 等
// 存儲在當前工作路徑下

3.3 語法及選項

c_ml_stata 主要命令的語法格式為:

c_ml_stata outcome [varlist], mlmodel(modeltype) out_sample(filename)
in_prediction(name) out_prediction(name) cross_validation(name)
seed(integer) [save_graph_cv(name)]

輸入變量的含義如下:

outcome:是一個數值型、離散的因變量 (或標籤) ,表示不同的類別。若因變量有 注意:outcome 不接受缺失值。varlist:是代表自變量 (或特徵) 的數值型變量列表,屬於可選項。若某一特徵也是類別變量,則需先生成相應的數值型、離散的虛擬變量。注意:varlist 不接受缺失值

各個選項的含義如下:

mlmodel(modeltype):指定使用的機器學習分類算法 (模型) ,有以下幾種選擇:

tree : Classification tree (分類樹)randomforest : Bagging and random forests (袋裝樹和隨機森林)boost : Boosting (提升算法,提升樹)regularizedmultionmial : Regularized multinomial (正則化多項式)nearestneighbor : Nearest Neighbor (K 近鄰算法)neuralnet : Neural network (神經網絡)naivebayes : Naive Bayes (樸素貝葉斯)svm : Support vector machine (支持向量機)

out_sample(filename):要求指定一個樣本外的新數據集 (測試集) ,該數據集僅包含各個特徵 (無因變量) ,用於樣本外測試。filename 表示存放該數據集的文件名。

in_prediction(name):保存樣本內訓練數據 (訓練集和驗證集) 的擬合結果,name 為文件名。

out_prediction(name):保存樣本外數據 (測試集) 的預測結果 ,name 為文件名。樣本外數據從 out_sample 中獲得。

cross_validation(name):將 name 設定為 "CV" 可以執行交叉驗證,默認為 10 折交叉驗證。

seed(integer):隨機種子 (整數) 。

[save_graph_cv(name)]:可選項,保存交叉驗證中模型在訓練集和驗證集上分類結果的準確性 ( Accuracy ) ,用於確定最優的超參數和模型。

c_ml_stata 的返回值:

儲存通過交叉驗證確定的最優超參數 (不同模型儲存的超參數不同) 、最優訓練集準確率、最優驗證集準確率,可以通過 ereturn list 命令查看 (數值型返回值儲存在 scalars 中,字符型結果儲存在 macros 中) 。3.4 注意事項運行 c_ml_stata 程序需要擁有 Stata 16 及 Python (2.7 及以上版本) ,同時需安裝 Python 的 Scikit-learn 和 Stata Function Interface (SFI) 兩個依賴庫。outcome 和 varlist 均不允許出現缺失值,因此在使用該命令前需檢查數據集是否出現缺失值 (並刪除缺失值)。建議安裝該命令的最新版本並及時更新,命令為:ssc install c_ml_stata, replace。更多詳細介紹可使用 help c_ml_stata 命令獲取。

4. Stata 實操

我們使用 c_ml_stata 提供的數據集 (儲存在 c_ml_stata_data_example.dta 文件中) 進行實操。由於作者並未提供過多有關該數據集的其他解釋信息,所以該例子僅作為操作和演示提供,實際意義不大。

4.1 數據結構描述

該數據集共有 74 個樣本,包含 4 個解釋變量 (分別命名為 x1, x2, x3, x4 ) 和 1 個因變量 (命名為 y ) 。其中,4 個解釋變量均為連續變量,而因變量為分類變量 (離散取值) ,因此我們分別使用 summary 和 tab 命令對變量進行描述性統計。可以看出,根據 c_ml_stata 命令的要求,輸入數據集並無缺失值。待分類變量 (作為 outcome 的輸入) y 進行數值化編碼,

. use "c_ml_stata_data_example.dta", clear
. tab y

y | Freq. Percent Cum.
--+
1 | 42 56.76 56.76
2 | 22 29.73 86.49
3 | 10 13.51 100.00
--+
Total | 74 100.00

. sum x1-x4

Variable | Obs Mean Std. Dev. Min Max
+----
x1 | 74 6165.257 2949.496 3291 15906
x2 | 74 21.2973 5.785503 12 41
x3 | 74 3019.459 777.1936 1760 4840
x4 | 74 187.9324 22.26634 142 233

4.2 模型訓練和結果

由於 c_ml_stata 提供了多種有監督學習分類算法,我們使用變量 x1, x2, x3, x4 作為解釋變量,y 作為標籤進行模型訓練。以下部分我們以支持向量機為例,詳細介紹該命令的調用方法和輸出結果。

4.2.1 支持向量機

將選項 mlmodel 設定為 svm 即可使用支持向量機算法進行分類。樣本內預測結果保存在文件 in_pred_svm.dta 中,使用 c_ml_stata_data_new_example.dta 文件讀取樣本外數據 (僅包含特徵 x1, x2, x3, x4 ) ,樣本外預測結果保存在文件 out_pre_svm.dta 中。在 cross_validation 選項中使用 CV 即可進行交叉驗證,交叉驗證結果自動保存在 CV.dta 文件中;若有需要可使用 save_graph_cv 選項可視化交叉驗證結果並保存。具體代碼及部分輸出結果如下:

. c_ml_stata y x1-x4, mlmodel(svm)   ///
out_sample("c_ml_stata_data_new_example") ///
in_prediction("in_pred_svm") ///
out_prediction("out_pred_svm") ///
cross_validation("CV") ///
seed(10) save_graph_cv("graph_cv_svm")

---
CROSS-VALIDATION RESULTS TABLE
---
The best score is:
0.5678571428571428
---
The best parameters are:
{'C': 1, 'gamma': 0.1}
1
0.1
---
The best estimator is:
SVC(C=1, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma=0.1, kernel='rbf',
max_iter=-1, probability=True, random_state=None, shrinking=True, tol=0.001,
verbose=False)
---
The best index is:
0
---

in_pred_svm.dta 部分數據如下圖所示,其中 index 表示觀測值樣本標號,與原數據樣本標號相對應;label_in_pred 表示樣本內標籤的預測結果;Prob_1, Prob_2, Prob_3 可能表示預測結果不是第

out_pred_svm.dta 數據結果與 in_pred_svm.dta 類似。其中,label_out_pre 表示樣本外標籤的預測結果,可以看出 SVM 將樣本外結果分類為第

對於支持向量機算法,根據第二部分理論部分的介紹,我們的主要超參數為正則化係數

. ereturn list

scalars:
e(OPT_C) = 1
e(OPT_GAMMA) = .1
e(TEST_ACCURACY) = .5678571428571428
e(TRAIN_ACCURACY) = 1
e(BEST_INDEX) = 94.5

詳細的交叉驗證結果可在 CV.dta 中查看。此外,通過 save_graph_cv("graph_cv_svm") 可視化交叉驗證結果並保存為 graph_cv_svm.gph 文件,結果如下所示。可以發現,隨著 index 的改變 (不同超參數組合的設定) ,模型在訓練集、驗證集的表現均不改變。值得注意的是,這種情況在實際應用中極為少見。

4.2.2 決策樹

將 mlmodel 選項設定為 tree 即可使用決策樹進行分類。決策樹的超參數主要為葉子節點個數 (leaves) ,通過交叉驗證的可視化結果可以發現,隨著 index 的增加 (葉子節點個數的增加) , 模型在訓練集的表現不斷提高,而在驗證集的表現先上升後呈下降趨勢 (出現過擬合問題) ,因此可以得到最優的葉子節點個數 (對應於驗證集最高的分類正確率) 。使用 ereturn list 查看最有超參數的選取結果。可以發現,最優的葉子節點個數為 3 ;交叉驗證中訓練集的正確率為

. c_ml_stata y x1-x4, mlmodel(tree)    ///
out_sample("c_ml_stata_data_new_example") ///
in_prediction("in_pred_ctree") ///
out_prediction("out_pred_ctree") ///
cross_validation("CV") ///
seed(10) save_graph_cv("graph_cv_ctree")

. ereturn list

scalars:
e(OPT_LEAVES) = 3
e(TEST_ACCURACY) = .6375
e(TRAIN_ACCURACY) = .8108095884215288
e(BEST_INDEX) = 2

4.2.3 神經網絡

將 mlmodel 選項設定為 neuralnet 即可使用神經網絡進行分類。神經網絡的主要超參數為神經網絡層數 (layers) 和神經元個數 (neurons) 。通過查看神經網絡在樣本內外的預測結果發現,該分類算法在該數據集上的表現較差,「暴力」地將所有標籤均分類為

4.3 結果匯總

c_ml_stata 命令共提供了 8 種分類模型,逐一使用各模型對所提供的樣本內數據集進行訓練後,樣本內最優分類結果的準確率及驗證集集準確率如下所示:

模型最優訓練集
準確率最優驗證集
準確率決策樹

隨機森林

提升數

K 近鄰

神經網絡

樸素貝葉斯

支持向量機

Note: 正則化多項式結果無法收斂,暫不參與比較。

5. 總結

本推文的內容即將進入尾聲,簡要回顧我們上述的主要內容:我們簡單了解了什麼是分類問題以及機器學習的分類算法,介紹了 c_ml_stata 這一 Python 和 Stata 結合的命令及其使用方法。我們可以看到隨著時代的發展,機器學習算法的多樣性以及其廣闊的應用範圍;但是,我們始終不能將方法做為最終的目的,其背後的經濟學含義依然值得我們思考。

6. 參考資料

溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。

連享會 · 最受歡迎的課


🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4

🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)

👉 課程主頁:https://gitee.com/arlionn/PX

🍏 🍏 🍏 🍏
連享會主頁:🍎 www.lianxh.cn
直播視頻:lianxh.duanshu.com

免費公開課:

直擊面板數據模型:https://gitee.com/arlionn/PanelData - 連玉君,時長:1小時40分鐘Stata 33 講:https://gitee.com/arlionn/stata101 - 連玉君, 每講 15 分鐘.Stata 小白的取經之路:https://gitee.com/arlionn/StataBin - 龍志能, 2 小時部分直播課課程資料下載 👉 https://gitee.com/arlionn/Live (PPT,dofiles等)

溫馨提示: 文中連結在微信中無法生效,請點擊底部「閱讀原文」。

關於我們🍎 連享會 ( 主頁:lianxh.cn ) 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。👉 直達連享會:百度一下:連享會】即可直達連享會主頁。亦可進一步添加 主頁,知乎,面板數據,研究設計 等關鍵詞細化搜索。連享會主頁  lianxh.cn

New! lianxh 命令發布了:    GIF 動圖介紹
隨時搜索連享會推文、Stata 資源,安裝命令如下:
  . ssc install lianxh
使用詳情參見幫助文件 (有驚喜):
  . help lianxh

相關焦點

  • 如何用sklearn創建機器學習分類器?這裡有一份上手指南
    原作:Kasper Fredenslund林鱗 編譯自 Data Science Central量子位 出品 |分類器是數據挖掘中對樣本進行分類的方法的統稱,也是入坑機器學習的一項必備技能。這篇文章中,作者簡要介紹了用Python中的機器學習工具scikit-learn(sklearn)創建機器學習分類器的步驟與注意事項。
  • SAST Weekly|MATLAB機器學習初探——做個心音分類器
    本期的SAST weekly,想跟大家分享一下如何用MATLAB進行初步的機器學習,構建一個正常/異常心跳聲分類器。MATLAB提供了強大的數據處理功能,豐富的機器學習模型與接口,且具有一定可移植性,對代碼能力要求相對不高。對於有機器學習方面需求的數學家、工程師而言,是不錯的選擇。
  • 機器學習自動文本分類
    我們想要快速創建、分析和報告信息,自動文本分類也就應運而生了。更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)文本分類是對文本進行智能分類。使用機器學習來實現這些任務的自動化,使整個過程更加快速高效。人工智慧和機器學習可以說是近來最受益的技術。它們的應用無處不在。
  • BRAIN:機器學習:基於EEG的跨中心、跨方案的意識狀態分類器
    事實上,機器學習算法可以通過訓練來從未知的生理標記組合中最好地預測單個病人的醫療狀況。通常情況下,分類器會根據大腦數據來優化區分臨床標籤。然後,通過將分類器的預測與實際診斷進行比較來評估泛化性能。在缺乏獨立數據集的情況下,通過將數據細分為訓練集和測試集,並對測試集得分進行平均,進行交叉驗證以估計樣本外的性能。
  • 機器學習小白看過來,帶你全面了解分類器評價指標
    近日,towardsdatascience 上的一篇文章就深入介紹了分類器的評價指標,以及應該在什麼場景下使用,雷鋒網 AI 研習社將內容編譯整理如下:在本文中,你將了解到為什麼評價分類器比較困難;為什麼在大多數情況下,一個看起來分類準確率很高的分類器性能卻沒有那麼理想;什麼是正確的分類器評價指標;你應該在何時使用這些評價指標;如何創造一個你期望的高準確率的分類器。
  • 淺談機器學習分類算法
    目前隨著人工智慧的發展,機器學習的應用領域日益寬泛,各種機器學習適應不同的應用場景,而機器學習差別的關鍵點之一就在於所使用算法的不同,
  • 機器學習資源大全中文版
    官網snowball:Go語言版的Snowball詞幹提取器。官網通用機器學習Go Learn:Go語言機器學習庫。官網go-pr:Go語言機器學習包。官網bayesian:Go語言樸素貝葉斯分類庫。官網go-galib:Go語言遺傳算法庫。官網數據分析/數據可視化go-graph:Go語言圖形庫。
  • 機器學習入門3 ——感知器和邏輯回歸
    在這篇文章中,我們將討論最基本的機器學習算法之一:感知器算法(Perceptron)。
  • 機器學習分類算法總結
    主要分類方法介紹解決分類問題的方法很多,單一的分類方法主要包括:決策樹、貝葉斯、人工神經網絡、K-近鄰、支持向量機和基於關聯規則的分類等;另外還有用於組合單一分類方法的集成學習算法
  • Stata 函數大全
    日期時間值•   dhms(td, h, m, s) 從日期,小時,分鐘,秒得到stata日期時間值•   hms(h, m, s)    從小時,分鐘,秒返回一個stata日期時間值•   mdy(M, D, Y)   從月,日,年中得到一個stata日期值
  • 國外程式設計師整理的機器學習資源大全
    Stanford POS Tagger —一個詞性分類器。Stanford Name Entity Recognizer—Java實現的名稱識別器Stanford Word Segmenter—分詞器,很多NLP工作中都要用到的標準預處理步驟。
  • 【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第3章 分類(下)
    —— 第1章 機器學習概覽(下)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章  一個完整的機器學習項目(上)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章 一個完整的機器學習項目(中)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章 一個完整的機器學習項目
  • [算法]機器學習分類模型評估指標
    新的機器學習方法主要包括:深度學習和強化學習。深度學習中可以做分類和回歸的無監督算法,在無監督學習方法主要還是做分類,深度學習的無監督主要是生成模型GAN。強化學習是一種激勵性的學習方式,其評價方式也比較獨特。
  • 【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第3章 分類(上)
    (中二)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章 一個完整的機器學習項目(下)在第一章我們提到過最常用的監督學習任務是回歸(用於預測某個值)和分類(預測某個類別)。
  • 一文讀懂機器學習分類算法(附圖文詳解)
    說起分類算法,相信學過機器學習的同學都能侃上一二。可是,你能夠如數家珍地說出所有常用的分類算法,以及他們的特徵、優缺點嗎?比如說,你可以快速地回答下面的問題麼:KNN算法的優缺點是什麼?Naive Bayes算法的基本假設是什麼?
  • 機器學習之KNN分類算法介紹: Stata和R同步實現(附數據和代碼)
    ,2前沿: 機器學習在金融和能源經濟領域的應用分類總結,3文本分析的步驟, 工具, 途徑和可視化如何做?4文本大數據分析在經濟學和金融學中的應用, 最全文獻綜述,5最全: 深度學習在經濟金融管理領域的應用現狀匯總與前沿瞻望, 中青年學者不能不關注!
  • 手把手教你用PyTorch實現圖像分類器(第一部分)
    本文的目標是加載其中的一個pre-trained網絡,並且將其中的分類器替換為自己的分類器,從而可以訓練自己的分類器。雖然這個想法是合理的,但我發現它也會產生一些問題,因為加載一個預先訓練的網絡並不能節省訓練分類器的時間。
  • 機器學習常見算法分類匯總
    機器
  • 教你用Sklearn創建機器學習分類器模型!
    我們可以通過在分類器上使用score()方法,從而快速了解該模型對數據的有效性。 既然我們沒有運行一個二進位分類器(預測「是」或「否」),而是一個分類器,猜測一系列標籤中的屬於哪一個,每個錯誤都將是對某些標籤來說是假陽性,而對其它標籤來說是假陰性。 在機器學習中,我們經常使用精確率(Precision)和召回率(Recall)來代替假陽性和假陰性。
  • 萬象智慧|機器學習分類算法介紹(一)
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡中誠信徵信數據分析團隊-追AI騎士為您歸納整理一下常見的機器學習分類算法,以供您在工作和學習中參考。機器學習本質上就是一種對問題真實模型的逼近。其中有監督的分類算法在眾多的業務場景得到了非常廣泛的應用,如:根據個人的學歷、性別、年齡等信息判斷用戶是否會違約等。