學(xué)習(xí)目標(biāo)
- 如何創(chuàng)建數(shù)據(jù)挖掘工作流?
- 如何使用文件組件加載數(shù)據(jù)集?
- 什么是特征?
- 使用散點(diǎn)圖組件使用“信息投影”實(shí)現(xiàn)數(shù)據(jù)數(shù)據(jù)分類?
問題描述
你是一名植物學(xué)愛好者,對(duì)鳶尾花(Iris)的品種很感興趣,你收集了一些鳶尾花的以下測(cè)量數(shù)據(jù):
- 花瓣的長(zhǎng)度
- 花瓣的寬度
- 花萼的長(zhǎng)度
- 花萼的寬度
所有測(cè)量結(jié)果的單位都是厘米
| 萼長(zhǎng) | 萼寬 | 瓣長(zhǎng) | 瓣寬 | 類別 |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | ? |
| 4.9 | 3 | 1.4 | 0.2 | ? |

你還有一些鳶尾花分類的測(cè)量數(shù)據(jù),這些花已經(jīng)被植物學(xué)專家鑒定為屬于Iris setosa(山鳶尾)、Iris versicolor(變色鳶尾)或 Iris virginica(維吉尼亞鳶尾花)三個(gè)品種之一。對(duì)于這些測(cè)量數(shù)據(jù),你可以確定每朵鳶尾花所屬的品種。
現(xiàn)在的問題,你想知道采集的鳶尾花是不是這些已知的品種,如果是,是哪一種。
模型(model)
我們的目標(biāo)是構(gòu)建一個(gè)機(jī)器學(xué)習(xí)模型,可以從這些已知品種的鳶尾花測(cè)量數(shù)據(jù)中進(jìn)行學(xué)習(xí),從而能夠預(yù)測(cè)新鳶尾花的品種。因?yàn)槲覀冇幸阎镍S尾花的測(cè)量數(shù)據(jù),所以這是一個(gè)監(jiān)督學(xué)習(xí)問題。
類別(class)
在這個(gè)問題中,我們要在多個(gè)選項(xiàng)中預(yù)測(cè)其中一個(gè)(鳶尾花的品種),這是一個(gè)分類(classification)問題的示例??赡艿妮敵?鳶尾花的品種)叫做類別(class)。數(shù)據(jù)集中的每朵鳶尾花都屬于三個(gè)類別之一,所以這是一個(gè)三分類問題。
標(biāo)簽(label)
單個(gè)數(shù)據(jù)點(diǎn)(一朵鳶尾花)的預(yù)期輸出是這朵花的品種。對(duì)于一個(gè)數(shù)據(jù)點(diǎn)來說,它的品種叫做標(biāo)簽(label)。
特征(feature)
采集到的鳶尾花數(shù)據(jù)包含:萼長(zhǎng)、萼寬、瓣長(zhǎng)、瓣寬4個(gè)特征,我們選擇 瓣長(zhǎng)、瓣寬兩個(gè)屬性,并以瓣寬為X軸,瓣長(zhǎng)為Y軸在二維平面上將這些樣本繪制出來,從圖中可以看出變色鳶尾花和維吉利亞鳶尾花兩個(gè)類別的有一部分樣本混合在一起,而山鳶尾花和其它兩個(gè)類別的花能夠能夠很好的區(qū)分開來。
使用散點(diǎn)圖可以可視化查看測(cè)試數(shù)據(jù),由于采集到的樣本有四個(gè)屬性,是一個(gè)4維的向量,不能在平面上展示出來,因此我們?nèi)斯みx擇瓣長(zhǎng)、瓣寬兩個(gè)屬性分別作為x和y軸的屬性,從而在散點(diǎn)圖上展示樣本的分布情況。
通過查找信息投影(Find Information Projections)按鈕自動(dòng)選擇最具有分辨能力的兩個(gè)特征:瓣長(zhǎng)、瓣寬。

接下來我們通過k近鄰算法用機(jī)器來統(tǒng)計(jì)有多少花能夠正確的分類,識(shí)別的正確率有多少。
kNN 算法
算法
k 近鄰(kNN)算法把每個(gè)樣例看做是空間上的一個(gè)點(diǎn),給定一個(gè)測(cè)試樣例,使用適當(dāng)?shù)泥徑远攘克惴?,?jì)算出該點(diǎn)與訓(xùn)練集中其他點(diǎn)的鄰近度。選擇 K 個(gè)最相近的點(diǎn)。在選擇出的 K 個(gè)樣例中,比例最好的類就是測(cè)試樣例的類。
從以上描述中可以看出,如果 k 選擇的太小,該算法容易受到噪聲的影響,而產(chǎn)生過度擬合的影響,然而如果選擇的過大,可能造成誤分類。
算法描述
k是最近鄰數(shù)目,D是訓(xùn)練樣例的集合,z是測(cè)試樣例
for 樣例 in 訓(xùn)練樣例集合:
計(jì)算 z和每個(gè)樣例的相似度
找到k個(gè)最相近的樣例集合
k個(gè)樣例中類標(biāo)號(hào)最多的類,就是測(cè)試樣例的類標(biāo)號(hào)
實(shí)驗(yàn)與評(píng)估
實(shí)驗(yàn)平臺(tái)
- Orange(http://orange.biolab.si/)由斯洛文尼亞大學(xué)計(jì)算與信息學(xué)系的生物信息實(shí)驗(yàn)室BioLab開發(fā),是一個(gè)基于組件的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)軟件套裝,支持 Python 進(jìn)行腳本開發(fā)。
- Orange是一個(gè)開源的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)軟件。Orange 基于 Python 和 C/C++ 開發(fā),提供了一系列的數(shù)據(jù)探索、可視化、預(yù)處理以及建模組件。Orange 擁有漂亮直觀的交互式用戶界面,非常適合新手進(jìn)行探索性數(shù)據(jù)分析和可視化展示;同時(shí)高級(jí)用戶也可以將其作為 Python 的一個(gè)編程模塊進(jìn)行數(shù)據(jù)操作和組件開發(fā)。
- 從 3.0 版本開始使用 Python 代碼庫進(jìn)行科學(xué)計(jì)算,例如 numpy、scipy 以及 scikit-learn,前端的圖形用戶界面使用跨平臺(tái)的 Qt 框架。
- Orange 支持 Windows、macOS 以及 Linux 平臺(tái)。
建議使用Anaconda集成環(huán)境,通過Anaconda Navigator 安裝Orange軟件。
Iris 數(shù)據(jù)集
本教程使用標(biāo)準(zhǔn)的Iris數(shù)據(jù)集,Iris 數(shù)據(jù)集是常用的分類實(shí)驗(yàn)數(shù)據(jù)集,由 Fisher, 1936 收集整理。Iris 也稱鳶尾花卉數(shù)據(jù)集,是一類多重變量分析的數(shù)據(jù)集。Iris 數(shù)據(jù)集包含三個(gè)花的品種,每個(gè)品種各 50 個(gè)樣本,共計(jì)150個(gè)樣本,每個(gè)樣本四個(gè)特征參數(shù):萼片長(zhǎng)度和寬度、花瓣長(zhǎng)度和寬度
- Iris setosa(山鳶尾)
- Iris virginica(維吉尼亞鳶尾花)
- Iris versicolor(變色鳶尾)
實(shí)驗(yàn)設(shè)計(jì)
實(shí)驗(yàn)?zāi)P蛨D

添加文件組件
添加 File 組件,并設(shè)置數(shù)據(jù)源為 Orange 內(nèi)置的測(cè)試數(shù)據(jù)集 Iris (英文)或者我們提供的 Iris.csv (中文)文件。
- 在 Orange 面板上找到 File 組件,并拖放到操作面板上
- 雙擊 File 圖標(biāo),選擇數(shù)據(jù)文件
- 將類別這一列的 Role(角色)設(shè)置為 target(目標(biāo))
通過給文件(File)組件連接一個(gè)數(shù)據(jù)表( Data Table) 組件可以觀察數(shù)據(jù),通過給文件組件連接一個(gè)散點(diǎn)圖(Scatter Plot),可以觀察數(shù)據(jù)的分布情況。
雙擊File組件,設(shè)置文件的地址為我們提供的iris.csv文件,如圖所示,鳶尾花數(shù)據(jù)集(Iris)包含四個(gè)特征(feature)列和一個(gè)目標(biāo)列(target)。
這里需要手動(dòng)雙擊“類別”的角色(Role)更改為 target,告訴系統(tǒng)類別是我們識(shí)別的目標(biāo)分類屬性,它是目錄化(categorical)的特征,一共有3種取值(數(shù)據(jù)只有3類),分別是變色鳶尾花、山鳶尾花、維吉尼亞鳶尾花。

算法評(píng)估
從評(píng)估(Evaluate)面板組中拖動(dòng)測(cè)試與評(píng)分(Test and Score)組件到工作臺(tái),并從模型(Model)面板組中拖動(dòng)k近鄰分類器(kNN)組件到工作臺(tái),并參考實(shí)驗(yàn)?zāi)P蛨D建立組件之間的關(guān)聯(lián),雙擊測(cè)試與評(píng)分(Test and Score)組件,可以看到kNN算法的執(zhí)行結(jié)果,精確度(Precision)為0.953,即95.3%的樣本能夠被正確的識(shí)別,這個(gè)模型也算是不錯(cuò)了,這個(gè)過程我們沒有寫任何代碼。

最后我們從評(píng)估(Evaluate)面板組中拖動(dòng)混淆矩陣(Confusion Matrix)組件到工作臺(tái),并建立連接,雙擊混淆矩陣組件,我們發(fā)現(xiàn)一共有7個(gè)樣本被識(shí)別錯(cuò)誤。其中有3個(gè)實(shí)際上是維吉利亞鳶尾花被識(shí)別為變色鳶尾花,有4朵實(shí)際上是變色鳶尾花被識(shí)別為維吉利亞鳶尾花,而所有的山鳶尾花都被正確的識(shí)別。

選擇誤分類(Select Misclassified)的按鈕,打開數(shù)據(jù)表(Data Table)組件,可以查看那些樣本被錯(cuò)誤分類,并分析其原因。

至此,一個(gè)完整的機(jī)器學(xué)習(xí)任務(wù)的就完成了,下一篇,我們將介紹應(yīng)用決策樹幫助老師對(duì)學(xué)生分組,實(shí)施差異化教學(xué)。