import numpy as np def kmeans(X, k, maxIt): numPoints, numDim = X.shape dataSet = np.zeros((numPoints, numDim + 1)) dataSet[:, :-1] = X centroids = dataSet[np.random.randint(numPoints, size = k), :] centroids[:, -1] = range(1, k +1) iterations = 0 ol…
准确的客户分类的结果是企业优化营销资源的重要依据,本文利用了航空公司的部分数据,利用Kmeans聚类方法,对航空公司的客户进行了分类,来识别出不同的客户群体,从来发现有用的客户,从而对不同价值的客户类别提供个性化服务,指定相应的营销策略. 一.分析方法和过程 1.数据抽取——>2.数据探索与预处理——>3.建模与应用 传统的识别客户价值应用最广泛的模型主要通过3个指标(最近消费时间间隔(Recency).消费频率(Frequency)和消费金额(Monetary))来进行客户细分,识别出价值高…
Kmeans算法的缺陷 聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果.(可以使用Kmeans++算法来解决)针对上述第2个缺陷,可以使用Kmeans++算法来解决K-Means ++ 算法 k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远.从输入的数据点集合中随机选择一个点…
1. K-Means原理解析 2. K-Means的优化 3. sklearn的K-Means的使用 4. K-Means和K-Means++实现 1. 前言 前面3篇K-Means的博文从原理.优化.使用几个方面详细的介绍了K-Means算法,本文用python语言,详细的为读者实现一下K-Means.代码是本人修改完成,效率虽远不及sklearn,但是它的作用是在帮助同学们能从代码中去理解K-Means算法.后面我会慢慢的把所有的机器学习方面的算法,尽我所能的去实现一遍. 2. KMeans…
在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法:      (1)K-means      (2)Latent Dirichlet allocation (LDA)      (3)Bisecting k-means(二分k均值算法)      (4)Gaussian Mixture Model (GMM).        基于RDD API的MLLib中,共有六种聚类方法:      (1)K-means      (2)Gaussian mixture  …
一.kmeans聚类: 基本方法流程 1.首先随机初始化k个中心点 2.将每个实例分配到与其最近的中心点,开成k个类 3.更新中心点,计算每个类的平均中心点 4.直到中心点不再变化或变化不大或达到迭代次数 优缺点:该方法简单,执行速度较快.但其对于离群点处理不是很好,这是可以去除离群点.kmeans聚类的主要缺点是随机的k个初始中心点的选择不够严谨,因为是随机,所以会导致聚类结果准确度不稳定. 二.kmeans++聚类: kmeans++方法是针对kmeans的主要缺点进行改进,通过在初始中心点…
load spectra; temp = randperm(size(NIR, 1)); P_train = NIR(temp(1:50),:); T_train = octane(temp(1:50),:); P_test = NIR(temp(51:end),:); T_test = octane(temp(51:end),:); k = 2; [Xloadings,Yloadings,Xscores,Yscores,betaPLS,PLSPctVar,MSE,stats] = plsreg…
load spectra; temp = randperm(size(NIR, 1)); P_train = NIR(temp(1:50),:); T_train = octane(temp(1:50),:); P_test = NIR(temp(51:end),:); T_test = octane(temp(51:end),:); [PCALoadings,PCAScores,PCAVar] = princomp(NIR); figure percent_explained = 100 *…
%SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu X = [16.4700 96.1000 16.4700 94.4400 20.0900 92.5400 22.3900 93.3700 25.2300 97.2400 22.0000 96.0500 20.4700 97.0200 17.2000 96.2900 16.3000 97.3800 14.0500 98.1200 16.5300 97.3800 21.5200 95.5900 19.4100…
load citys_data.mat n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n if i ~= j D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2)); else D(i,j) = 1e-4; end end end m = 50; alpha = 1; beta = 5; rho = 0.1; Q = 1; Eta = 1./D; Tau = ones(n,n); Tab…