顶尖数据挖掘开发平台
(TipDM-D2)
产 品 白 皮 书
广州泰迪智能科技有限公司 版权所有
地址: 广州市经济技术开发区科学城232号
网址: http://www.tipdm.com
热线: 40068-40020
邮编: 510663
电话: (020)82039399
目 录
第1章 引言..................................................................................................................... 3
1.1. 产品简介........................................................................................................... 3
1.2. 产品功能........................................................................................................... 3
1.2.1. 产品构成.................................................................................................. 3
1.2.2. TipDM数据挖掘建模平台......................................................................... 4
1.2.3. Model-Int模型调用模块............................................................................ 5
第2章 快速开发示例....................................................................................................... 5
2.1. 建设目标........................................................................................................... 6
2.2. 模型构建........................................................................................................... 6
2.3. 模型发布........................................................................................................... 8
2.4. 模型调用........................................................................................................... 9
2.5. 模型更新.......................................................................................................... 10
第3章 接口开发示例..................................................................................................... 10
3.1. 创建方案.......................................................................................................... 11
3.2. 加载数据.......................................................................................................... 12
3.3. 模型训练.......................................................................................................... 12
3.4. 模型评价.......................................................................................................... 14
3.5. 模型应用.......................................................................................................... 15
第4章 联系我们............................................................................................................ 16
随着企业信息化的推进和应用水平的不断提高,企业中积累的数据规模越来越庞大。如何有效地利用历史数据,挖掘出价值的分析信息,从而帮助企业能够对未来变化作出及时正确的决策,最终在激烈的市场竞争中占据主动,已经成为当前企业越来越迫切想要解决的问题。顶尖数据挖掘开发平台(TipDM-D2,称简D2)数据挖掘开发平台就是这样一套用于从大量的企业数据中创建出智能知识技术,快速进行应用定制的二次开发平台。
D2以智能预测算法为核心,并提供标准的应用接口,以满足企业复杂的应用需求。基于该平台提供的接口,能方便在DEPHI、PB、VC、VB、NET、JAVA等环境进行二次开发调用。产品可广泛运用在金融业,保险业,电信业,证券业,制造业,零售业,生物制药等各行业。
基于TipDM的数据挖掘二次开发主要包括创建方案、加载数据、构建模型、评价模型和应用模型等步骤,如图16-1所示。
图 1‑1基于TipDM的数据挖掘二次开发流程
构建模型是数据挖掘应用开发的重要环节,常用的数据挖掘模型包括分类与预测、聚类分析、关联规则挖掘、时序模式和智能推荐等模型。
以分类与预测模型为例,接口方案如下图所示。
由上图可知,分类与预测模型接口方案主要包括两大部分:
1) TipDM数据挖掘建模平台:主要提供方案管理、数据管理、分类与预测建模和模型发布等功能
2) Model-Int模型调用模块:完成对TipDM生成Model的调用实现。Model调用支持VB、VC、PB、Dephi、C#、.NET、JAVA等开发环境。
顶尖数据挖掘平台(TipDM)是广州泰迪智能科技有限公司花费数年时间自主研发的一个数据挖掘平台,基于云计算和SOA架构,使用JAVA语言开发,能从各种数据源获取数据,建立各种不同的数据挖掘模型。系统支持数据挖掘流程所需的主要过程,并提供开放的应用接口和常用算法,能够满足各种复杂的应用需求。
模型构建流程如下:
模型构建的目的是基于专家样本数据,形成一个稳定的可用的预测模型(可理解为一个公式)。
平台主界面如下:
Model-Int为模型调用模块,完成对TipDM生成Model的调用实现。Model调用支持VB、VC、PB、Dephi、C#、.NET、JAVA等开发环境。
本例要求实现基于数据挖掘技术的变电设备预警及故障诊断,为实现设备运行状态及发展趋势全面掌控,提升设备状态检修水平,保障电网的安全稳定运行提供必要的技术支撑。具体包括:
² 设备潜在风险分析
² 在线监测装置的运行评价方法
² GIS设备局部放电内部放电源类型的辨识方法以及综合定位方法
² 变压器设备状态的油色谱差异化预警方法
² 设备故障案例库的建设以及智能诊断方法
1、 创建模型方案
根据建设目标,本例需要构建如下预测模型:
² 设备潜在风险评价模型(Model1)
² 在线监测装置的运行评价模型(Model2)
² GIS设备局部放电内部放电源类型辨识模型(Model3)
² GIS设备局部放电综合定位模型(Model4)
² 变压器设备状态油色谱差异化预警模型(Model5)
登录TipDM平台,分别创建以上方案,如下图示:
2、 专家样本管理
以设备潜在风险评价模型为例,在方案管理界面中,双击激活该方案,在数据管理界面中导入进行设备潜在风险评价的专家样本数据(专家样本数据需要在充分理解业务的基础上,由有经验的专家和数据挖掘建模人员共同整理得到)。
3、 数据探索和预处理
模型预测的质量不会超过抽取样本的质量。数据探索和预处理的目的是为了保证样本数据的质量,从而为保证预测质量打下基础。
数据探索是对导入系统中的数据进行初步研究,以便更好地理解它的特殊性质,有助于选择合适的数据预处理和数据分析技术。数据探索包括:相关性分析、主成分分析、周期性分析、脏数据分析等。
数据预处理主要包括缺失值处理、坏数据处理、属性选择、数据规约、离散处理、特征提取等。下图为对导入的样本数据进行属性选择。
4、 模型训练
模型训练是针对导入的专家样本数据,在设置好建模参数后,进行模型构建,下图为采用LM神经网络算法进行建模界面。
5、 模型验证
模型训练完成后,需采用一些新的样本来对模型进行验证,以确保模型稳定和有效。
模型经训练并验证后,即可点击“发布模型”按钮发布该模型。如设备潜在风险评价模型方案采用LM神经网络建模,发布的模型文件Model1.tdm包含如下信息:
模型发布后,根据集成环境需要,可通过VB、VC、PB、Dephi、C#、.NET、JAVA等不同开发语言来调用。
模型调用非常简单,以下为JAVA语言调用示例:
y=myFunction(String p,String modelTdm)
式中:
myFunction—调用接口函数名
p—模型输入
modelTdm—模型文件
y—模型预测输出
当模型需要更新时,可重新训练并发布模型,并将新的模型文件覆盖掉原有的模型文件即可。
下面以下表所示防窃漏电建模样本数据为例,实现分类与预测模型的构建及接口调用。样本数据中前80%为模型训练数据,后20%为模型检验样本。模型输入项为电量趋势增长指标、线损指标和告警类指标;输出项为是否窃漏电。
防窃漏电样本数据
时间 |
用户编号 |
电量趋势 增长指标 |
线损指标 |
告警类 指标 |
是否窃漏电 |
2014年9月6日 |
9900667154 |
4 |
1 |
1 |
1 |
2014年9月20日 |
9900639431 |
4 |
0 |
4 |
1 |
2014年9月17日 |
9900585516 |
2 |
1 |
1 |
1 |
2014年9月14日 |
9900531154 |
9 |
0 |
0 |
0 |
2014年9月17日 |
9900491050 |
3 |
1 |
0 |
0 |
2014年9月13日 |
9900461501 |
2 |
0 |
0 |
0 |
2014年9月22日 |
9900412593 |
5 |
0 |
2 |
1 |
2014年9月20日 |
9900366180 |
3 |
1 |
3 |
1 |
2014年9月19日 |
9900322960 |
3 |
0 |
0 |
0 |
2014年9月9日 |
9900254673 |
4 |
1 |
0 |
0 |
2014年9月18日 |
9900196505 |
10 |
1 |
2 |
1 |
2014年9月16日 |
9900145248 |
10 |
1 |
3 |
1 |
2014年9月6日 |
9900137535 |
2 |
0 |
3 |
0 |
2014年9月7日 |
9900064537 |
4 |
0 |
2 |
0 |
2014年9月9日 |
9110103867 |
3 |
0 |
0 |
0 |
2014年9月23日 |
9010100689 |
0 |
0 |
3 |
0 |
2014年9月21日 |
8910101840 |
9 |
0 |
3 |
1 |
2014年9月11日 |
8910101209 |
0 |
0 |
2 |
0 |
2014年9月19日 |
8910101132 |
8 |
1 |
4 |
1 |
2014年9月19日 |
8910100309 |
2 |
0 |
4 |
0 |
2014年9月9日 |
8810101463 |
3 |
0 |
1 |
0 |
2014年9月9日 |
8710100857 |
7 |
0 |
0 |
0 |
分类与预测模型构建及接口调用具体包括如下几个步骤:
创建数据挖掘方案,接口调用请求说明:
http请求方式:POST
请求链接:http://www.tipdm.cn/api/scheme/create/appcode/userId
POST数据格式:json
POST数据例子:{
"scheme":{
"schemeName":"分类与预测模型示例",
"appType":"100",
"schemeDesc":"构建分类与预测模型"
}
}
参数说明:
参数名称 |
属性类型 |
最大长度 |
必须 |
详细说明 |
appcode |
String |
32 |
是 |
接入系统在TipDM平台下注册所得的注册码 |
userId |
String |
32 |
是 |
在TipDM平台的注册Id |
schemeName |
String |
50 |
是 |
方案名称 |
appType |
String |
5 |
是 |
方案应用类别,当前支持的应用类别有以下几种 100:数据分类; 101:数值预测; 102:聚类分析; 103:关联规则; 104:时序模式; 105:偏差检测 |
schemeDesc |
String |
100 |
否 |
针对方案的描述信息 |
返回值:json数据,成功创新方案
{
"status":"success",
"schemeId":"40285e814bdd60d9014bdd62bda70001",
"msg":"远程创建方案成功!"
}
示列代码:
HttpPost post = new HttpPost("http://www.tipdm.cn/api/scheme/create/appcode/userId");
String json = "{
"'scheme':{"+
"'schemeName':'分类与预测模型示例',"+
"'appType':'100',"+
"'schemeDesc':'使用webservice进行数据分类'"+
"}"+
"}";
StringEntity entity = new StringEntity(json,
ContentType.APPLICATION_JSON);//请求体数据,json类型
post.setEntity(entity);
CloseableHttpClient client = HttpClients.createDefault();
client.execute(post);
接口调用请求说明:
http请求方式:POST
请求链接:http://www.tipdm.cn/api/data/uploadData/appcode
POST数据格式:multipart/form-data
参数说明:
参数名称 |
属性类型 |
最大长度 |
必须 |
详细说明 |
appcode |
String |
32 |
是 |
接入系统在TipDM平台下注册所得的注册码 |
schemeId |
String |
32 |
是 |
在TipDM平台新建的方案ID |
dataFile |
File |
|
是 |
样本数据文件 |
返回值:json
示列代码:
MultipartEntity entity = new MultipartEntity();
entity.addPart("schemeId",new StringBody("xxxxxx",Charset.forName("UTF-8")));
entity.addPart("dataFile",new FileBody(new File("D:\\classify_sample.xls")));
HttpPost request = new HttpPost("http://www.tipdm.cn/api/data/uploadData/appcode");
request.setEntity(entity);
HttpClient client=new DefaultHttpClient();
client.execute(request);
以BP神经网络为例,接口调用请求说明:
http请求方式:POST
请求链接:http://www.tipdm.cn/api/algorithm/classify/train/appcode
POST数据格式:json
POST数据例子:
{'algorithm':
{
'schemeId':'40285e814bf87a6f014bf8811d3c0002',
'params':[
{'key':'clusterNum','value':8},
{'key':'afg','value':'weka.core.ManhattanDistance'},
{'key':'iterationNum','value':4},
{'key':'seedNum','value':10}
]
}
}
参数说明:
参数名称 |
属性类型 |
最大长度 |
必须 |
详细说明 |
appcode |
String |
32 |
是 |
接入系统在TipDM平台下注册所得的注册码 |
schemeId |
String |
32 |
是 |
在TipDM平台新建的方案ID |
L |
Double |
|
是 |
学习速率 |
M |
Double |
|
是 |
学习动量 |
S |
Integer |
|
是 |
随机数种子 |
N |
Integer |
|
是 |
训练次数 |
返回值:json,训练结果及模型存放路径,其中模型存放路径在调用模型评价接口时当作输入参数传入。
示列代码:
HttpPost post = new HttpPost("http://www.tipdm.cn/api/algorithm/classify/train/appcode");
String json = "{'algorithm':{" +
"'schemeId':'40285e814bf87a6f014bf8811d3c0002',"+
"'params':["+
"{'key':'N','value':500},"+
"{'key':'L','value':0.3},"+
"{'key':'M','value':0.2},"+
"{'key':'S','value':10}"+
"]"+
"}}";
StringEntity entity = new StringEntity(json,
ContentType.APPLICATION_JSON);//请求体数据,json类型
post.setEntity(entity);
CloseableHttpClient client = HttpClients.createDefault();
client.execute(post);
接口调用请求说明:
http请求方式:POST
请求链接:http://www.tipdm.cn/api/algorithm/classify/evaluate/appcode
POST数据说明:
{'algorithm':
{
'schemeId':'40285e814bf87a6f014bf8811d3c0002',
'modelPath':'/dmfile/37AAE2ED-B240-C5EF-3B66-07CB4F315727.model',
'testData':[
'1,0,1,1,0,0,0,1,0,0',
'0,1,0,0,1,0,0,1,0,0'
]
}
}
参数说明:
参数名称 |
属性类型 |
最大长度 |
必须 |
详细说明 |
appcode |
String |
32 |
是 |
接入系统在TipDM平台下注册所得的注册码 |
schemeId |
String |
32 |
是 |
在TipDM平台新建的方案ID |
testData |
String |
|
是 |
以英文逗号进行分隔,字段个数(不包含分类结果)、顺序与专家样本保持一致 |
返回值:json,评价结果
示例代码:
HttpPost post = new HttpPost("http://www.tipdm.cn/api/algorithm/classify/evaluate/appcode");
String json = "{'algorithm':{" +
"'schemeId':'40285e814bf87a6f014bf8811d3c0002',"+ "'modelPath':'/dmfile/37AAE2ED-B240-C5EF-3B66-07CB4F315727.model',"+
"'testData':[" +
"'1,0,1,1,0,0,0,1,0,0'," +
"'0,1,0,0,1,0,0,1,0,0'" +
"]"+
"}}";
StringEntity entity = new StringEntity(json,
ContentType.APPLICATION_JSON);
post.setEntity(entity);
HttpClient client = HttpClients.createDefault();
HttpResponse response = client.execute(post);
接口调用请求说明:
http请求方式:POST
请求链接:http://www.tipdm.cn/api/algorithm/classify/appcode
POST数据格式:multipart/form-data
参数说明:
参数名称 |
属性类型 |
最大长度 |
必须 |
详细说明 |
appcode |
String |
32 |
是 |
接入系统在TipDM平台下注册所得的注册码 |
schemeId |
String |
32 |
是 |
在TipDM平台新建的方案ID |
dataFile |
File |
|
是 |
分类文件的数据格式需与专家样本数据一致 |
表 3‑1防窃漏电分类数据
时间 |
用户编号 |
电量趋势 增长指标 |
线损指标 |
告警类 指标 |
2014年9月9日 |
9110103867 |
3 |
0 |
0 |
2014年9月23日 |
9010100689 |
0 |
0 |
3 |
2014年9月21日 |
8910101840 |
9 |
0 |
3 |
2014年9月11日 |
8910101209 |
0 |
0 |
2 |
2014年9月19日 |
8910101132 |
8 |
1 |
4 |
2014年9月19日 |
8910100309 |
2 |
0 |
4 |
2014年9月17日 |
9900491050 |
3 |
1 |
0 |
2014年9月13日 |
9900461501 |
2 |
0 |
0 |
2014年9月22日 |
9900412593 |
5 |
0 |
2 |
2014年9月20日 |
9900366180 |
3 |
1 |
3 |
返回值:在原分类数据文件的每行追加分类结果
示例代码:
MultipartEntity entity = new MultipartEntity();
entity.addPart("schemeId",new StringBody("xxxxxx",Charset.forName("UTF-8")));
entity.addPart("dataFile",new FileBody(new File("D:\\classify_data.xls")));
HttpPost request = new HttpPost("http://www.tipdm.cn/api/classify/appcode");
request.setEntity(entity);
HttpClient client=new DefaultHttpClient();
client.execute(request);
感谢您选择广州泰迪科技公司的数据挖掘产品,在系统的使用过程中如果遇到问题,请通过如下的方式与我们联系,我们将为用户提供周到满意的服务。
电话:020-82039399
传真:020-28871586
热线:40068-40020
地址:广州经济技术开发区科学城科珠路232号
邮编:510663