2016-02-1-kmeans


layout: post
title: 数据挖掘经典算法之k-means
date: 2016-2-1
categories: blog
tags: [数据分析算法]
description: 数据挖掘经典算法之k-means。


数据掘经典算法 k-means

常见定义

聚类:

按照事物间的相似性进行区分和分类的过程,是无监督的分类(没有预定义的类编号)。
数据挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等。
k-means属于聚类算法中经典的一种。
聚类的典型应用就是,在顾客群中寻找有共同个性的顾客。类似购买相机后会立刻购买同品牌的胶卷。
功能:

  • 做为一个独立的工具来获得数据的分布情况
  • 作为其他算法(如特征和分类)的预处理步骤

k-means:

K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数.

过程分析

基于划分的聚类算法:

  • 基本思想,为N个数据创建k个分割,每个分割代表一个聚类。
  • 每个组必须包含一个对象,每一个对象必须属于一个组。
  • 采用分割法进行聚类,首先要给定分割的数目并创建一个初始分割。然后通过一个优化函数,应用迭代的重定位技术,尝试通过对象在分割间的移动改进分割。

简单k-means算法

  1. 任意选择k个数据对象作为初始的聚类中心;
  2. 对以下过程进行迭代:
    (a)计算数据集中其余各数据对象到这些聚类中心的距离,然后按照距离最近的原则,把各数据对象分到相应的类中;
    (b)计算各个聚类新的重心,即求新形成的类中所有数据对象的平均值
  3. 重复过程(a)、(b),直到目标函数(标准方差的和)不再发生变化。

k-means聚类过程:

2016-02-1-kmeans_第1张图片

选取作为初始聚类中心的对象不用时,会对聚类结果产生很大的影响。

2016-02-1-kmeans_第2张图片

不同初始中心的结果

2016-02-1-kmeans_第3张图片

初始点的选取

因为初始点的选取会对结果产生极大影响,所以通常在k-means使用以前会有一个初始点选取的算法作为预处理。这里暂且不展开讨论。

对随机数据进行模拟聚类

  1. 随机生成一组数据存入表中作为待处理数据
  2. 去出待处理数据进行聚类
  3. 算法运行完成后将结果存入结果表中

Oracle中数据分析预处理常用脚本

!暂时未进行编辑

源程序

Github-k-means-Oracle-sqlplus

流程图

2016-02-1-kmeans_第4张图片

表结构

2016-02-1-kmeans_第5张图片

2016-02-1-kmeans_第6张图片

2016-02-1-kmeans_第7张图片

运行结果

2016-02-1-kmeans_第8张图片

你可能感兴趣的:(2016-02-1-kmeans)