hadoop之二维数据之kmeans深入
2017-03-14 19:58
120 查看
O、一维数据的kmeans,很简单
但二维数据+分区并行呢?
1、怎么初始化中心点?
2、怎么计算中心距离,跟一位一样吗?毕竟只是部分数据在计算。
一、先讲讲一维数据的kmeans吧:
txt string[]
初始化中心点,随机选取下标,
string0[] txt0
第k次迭代中,计算样本到c个中心的距离,将样本归到其所应在的类
txt txt0
在分区里:
每个数据分成x,y,选取一个中心点0作为x0,y0,作为min参照值
for(int i=0;i<list.length;i++)
min += (float) Math.pow((Float.parseFloat(list[i]) - Float.parseFloat(c[i])),2);
求得距离d0……2的值
if(min>distance)
{
min=distance;
pos=i;
}
再 for(int i=0;i<center.length;i++),即可判断距离最小的中心点
context.write(new Text(center[pos]), new Text(outValue));即可给样本归类
再reduce分区,即可获得整体数据的kmeans一次分类。
reduce后,可以进行相同key值得总xy平均得新的中心点,以进行下一次的迭代。
二、二维
二维的思路就是转一维
。
但二维数据+分区并行呢?
1、怎么初始化中心点?
2、怎么计算中心距离,跟一位一样吗?毕竟只是部分数据在计算。
一、先讲讲一维数据的kmeans吧:
txt string[]
初始化中心点,随机选取下标,
string0[] txt0
第k次迭代中,计算样本到c个中心的距离,将样本归到其所应在的类
txt txt0
在分区里:
每个数据分成x,y,选取一个中心点0作为x0,y0,作为min参照值
for(int i=0;i<list.length;i++)
min += (float) Math.pow((Float.parseFloat(list[i]) - Float.parseFloat(c[i])),2);
求得距离d0……2的值
if(min>distance)
{
min=distance;
pos=i;
}
再 for(int i=0;i<center.length;i++),即可判断距离最小的中心点
context.write(new Text(center[pos]), new Text(outValue));即可给样本归类
再reduce分区,即可获得整体数据的kmeans一次分类。
reduce后,可以进行相同key值得总xy平均得新的中心点,以进行下一次的迭代。
二、二维
二维的思路就是转一维
。
相关文章推荐
- 大数据企业学习篇02_2------hadoop深入
- 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有
- 《深入理解大数据-大数据处理与编辑实践》hadoop1.2.1安装
- hadoop之Kmeans数据挖掘算法实现
- 深入Atlas系列:Web Sevices Access in Atlas(4) - 对于复杂数据类型的支持(上)
- SQL数据恢复问题深入剖析
- 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现(全部源码)
- 真正类似于 Excel 的网格控件(深入研究数据访问)(转贴)
- SQL数据恢复问题深入剖析
- 真正类似于 Excel 的网格控件(深入研究数据访问)
- 深入Atlas系列:Web Sevices Access in Atlas(5) - 对于复杂数据类型的支持(中)
- 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现
- JAXB技术的魔力 —— 二维CAD图象数据的存储
- 深入Atlas系列:Web Sevices Access in Atlas(6) - 对于复杂数据类型的支持(下)
- VS2005数据存取层深入剖析之基础篇
- 深入Atlas系列:Web Sevices Access in Atlas(5) - 对于复杂数据类型的支持(中)
- 深入了解 SQL Server 2000 与 ADO.NET 中的事务隔离及数据锁定
- 二维数据表的显示
- 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现
- JAXB技术的魔力 --二维CAD图象数据的存储