gmm的java实现_混合高斯模型(GMM)Spark MLlib调用实例(Scala/Java/Python)

高斯混合模型

算法原理:

混合高斯模型描述数据点以一定的概率服从k种高斯子分布的一种混合分布。Spark.ml使用EM算法给出一组样本的极大似然模型。

参数:

featuresCol:

类型:字符串型。

含义:特征列名。

k:

类型:整数型。

含义:混合模型中独立的高斯数目。

maxIter:

类型:整数型。

含义:迭代次数(>=0)。

predictionCol:

类型:字符串型。

含义:预测结果列名。

probabilityCol:

类型:字符串型。

含义:用以预测类别条件概率的列名。

seed:

类型:长整型。

含义:随机种子。

tol:

类型:双精度型。

含义:迭代算法的收敛性。

调用示例:

import org.apache.spark.ml.clustering.GaussianMixture

// Loads data

val dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")

// Trains Gaussian Mixture Model

val gmm = new GaussianMixture()

.setK(2)

val model = gmm.fit(dataset)

// output parameters of mixture model model

for (i 

println("weight=%f\nmu=%s\nsigma=\n%s\n" format

(model.weights(i), model.gaussians(i).mean, model.gaussians(i).cov))

}Java:

import org.apache.spark.ml.clustering.GaussianMixture;

import org.apache.spark.ml.clustering.GaussianMixtureModel;

import org.apache.spark.sql.Dataset;

import org.apache.spark.sql.Row;

// Loads data

Dataset dataset = spark.read().format("libsvm").load("data/mllib/sample_kmeans_data.txt");

// Trains a GaussianMixture model

GaussianMixture gmm = new GaussianMixture()

.setK(2);

GaussianMixtureModel model = gmm.fit(dataset);

// Output the parameters of the mixture model

for (int i = 0; i 

System.out.printf("weight=%f\nmu=%s\nsigma=\n%s\n",

model.weights()[i], model.gaussians()[i].mean(), model.gaussians()[i].cov());

}Python:

from pyspark.ml.clustering import GaussianMixture

# loads data

dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")

gmm = GaussianMixture().setK(2)

model = gmm.fit(dataset)

print("Gaussians: ")

model.gaussiansDF.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值