文章
Jingwei Wang · 五月 4 阅读大约需 5 分钟

IntegratedML 演练

InterSystems IRIS IntegratedML功能用于使用AutoML技术获得机器学习的预测结果和概率。AutoML是一种机器学习技术,用于选择更好的机器学习算法/模型基于已有数据(用于训练AutoML模型的数据)来预测状态、数字和结果。你不需要一个数据科学家,因为AutoML会测试最常见的机器学习算法,并根据分析的数据特征选择更好的算法给你。在这篇文章中可以看到更多管乐IntegratedML的信息。

InterSystems IRIS有一个内置的AutoML引擎,但也允许你使用H2O和DataRobot。在这篇文章中,我将向你展示使用InterSystems AutoML引擎的每个步骤。

第1步 - 下载样例应用程序做练习

1. 转到 https://openexchange.intersystems.com/package/Health-Dataset

2. Clone/git 将 Repo拉到任何本地目录中

$ git clone https://github.com/yurimarx/automl-heart.git

3. 在同一个目录中打开一个Docker终端并运行

$ docker-compose build

4. 运行IRIS容器

$ docker-compose up -d

第2步--了解业务场景和可用数据

业务场景是利用过去的数据预测心脏疾病,数据如下:

SELECT age, bp, chestPainType, cholesterol, ekgResults, 
       exerciseAngina, fbsOver120, heartDisease, maxHr, 
       numberOfVesselsFluro, sex, slopeOfSt, stDepression, thallium
  FROM dc_data_health.HeartDisease

心脏病表(heartDisease)的数据字典来源(https://data.world/informatics-edu/heart-disease-prediction/workspace/data-dictionary):

Column name Type Description
age Integer In years
sex Integer (1 = male; 0 = female)
chestPainType Integer Value 1: typical angina -- Value 2: atypical angina -- Value 3: non-anginal pain -- Value 4: asymptomatic
bp Integer Resting blood pressure (in mm Hg on admission to the hospital)
cholesterol Integer Serum cholestoral in mg/dl
fbsOver120 Integer (fasting blood sugar > 120 mg/dl) (1 = true; 0 = false)
ekgResults Integer Resting electrocardiographic results -- Value 0: normal -- Value 1: having ST-T wave abnormality (T wave inversions and/or ST elevation or depression of > 0.05 mV) -- Value 2: showing probable or definite left ventricular hypertrophy
maxHr Integer Maximum heart rate achieved
exerciseAngina Integer Exercise induced angina (1 = yes; 0 = no)
stDepression Double ST depression induced by exercise relative to rest
slopeOfSt Integer The slope of the peak exercise ST segment -- Value 1: upsloping -- Value 2: flat -- Value 3: downsloping
numberOfVesselsFluro Integer Number of major vessels (0-3) colored by flourosopy
thallium Integer 3 = normal; 6 = fixed defect; 7 = reversable defect
heartDisease String
Value 0: < 50% diameter narrowing -- Value 1: > 50% diameter narrowing

心脏病(heartDisease)是我们需要预测的属性

第3步--准备好训练数据

HeartDisease表有270行。我们将得到250行来训练我们的预测模型。为了做到这一点,我们需要创建VIEW ,通过 管理门户>系统资源管理器>SQL。

CREATE VIEW automl.HeartDiseaseTrainData AS
SELECT * FROM dc_data_health.HeartDisease WHERE ID < 251

第4步 - 准备验证数据

我们将得到20行来验证预测的结果。 为了做到这一点,我们需要创建VIEW ,通过 管理门户>系统资源管理器>SQL。

CREATE VIEW automl.HeartDiseaseTestData AS
SELECT * FROM dc_data_health.HeartDisease WHERE ID > 250

第5步--创建AutoML模型来预测心脏疾病

IntegratedML允许创建一个AutoML模型来做预测和概率(详见https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...)。要做到这一点,需要创建以下模型,通过 管理门户>系统资源管理器>SQL。

CREATE MODEL HeartDiseaseModel PREDICTING (heartDisease) FROM automl.HeartDiseaseTrainData

这个模型将从automl.HeartDiseaseTrainData view中获得训练数据(学习)。

第6步 - 执行训练

执行训练,了做到这一点,执行下面训练SQL语句,通过 管理门户>系统资源管理器>SQL。

TRAIN MODEL HeartDiseaseModel

第7步 - 验证训练后的模型

为了验证训练结果,在 管理门户>系统资源管理器>SQL 中执行以下SQL指令。

VALIDATE MODEL HeartDiseaseModel FROM automl.HeartDiseaseTestData

使用automl.HeartDiseaseTestData view 中的测试数据验证了HeartDiseaseModel。

第8步 - 获取验证指标

为了查看验证过程中的验证指标,在 管理门户>系统资源管理器>SQL 中执行以下SQL 指令。

SELECT * FROM INFORMATION_SCHEMA_ML_VALIDATION_METRICS

要了解返回的结果,请见 https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GIML_VALIDATEMODEL.

InterSystems IRIS 文件从验证结果中详细说明了以下内容。:

验证指标,可以在INFORMATION_SCHEMA_ML_VALIDATION_METRICS表中查看

对于回归模型,以下指标会被保存:

  • 方差
  • R-squared
  • 平均平方误差
  • 均方根误差

对于分类模型,以下指标会被保存:

  • Precision — 这是用真阳性数除以预测阳性数(真阳性与假阳性之和)计算出来的。
  • Recall — 这是用真阳性数除以实际阳性数(真阳性与假阴性之和)来计算的。
  • F-Measure — 这是由以下表达式计算的:F = 2 * (精度*召回率) / (精度+召回率)
  • Accuracy — 这是用真阳性和真阴性的数量除以整个测试集的总行数(真阳性、假阳性、真阴性和假阴性之和)来计算的。

第9步 - 使用你的新AutoML模型执行预测 - 最后一步!


为了查看验证过程中的验证指标,在 管理门户>系统资源管理器>SQL 中执行以下SQL指令。  

SELECT *, PREDICT(HeartDiseaseModel ) AS heartDiseasePrediction FROM automl.HeartDiseaseTestData

比较列 heartDisease(真实值)和 heartDiseasePrediction(预测值)。

0
0 17
讨论 (0)1
登录或注册以继续