文档介绍:攀枝花学院
标题:聚类算法
班级:计算机科学与技术2班
姓名:鲁何强
时间:2me<maxIteration); // 如果收敛过慢,可以适当调整迭代条件SMALLNUMBER
for (int i = 0; i < numVec; i++) // 比较第i个向量属于各个类的概率,把第i个向量划入概率最大的那一类
{
int temp = 0;// 第i个向量最大可能属于某类的类标
for (int j = 1; j < numClusters; j++) {
if (probabilities[i][j] > probabilities[i][temp]) {
temp = j;
}
}
result[i] = temp+;
}
("Basic em end. Iteration:"+time);
return result; // 返回类标数组
}
/**
* 求矩阵行列式
*
* ***@param param
* fconvMatrix 矩阵
* ***@return 返回矩阵的行列式
*/
private double determinant(double[][] fconvMatrix) {
5
double det = ;
for (int i = 0; i < numDim; i++)// 由于协方差矩阵是对角矩阵,所以直接对角线相乘
{
det = det * fconvMatrix[i][i];
}
return det; // 返回协方差矩阵的行列式
}
/**
* 求矩阵的逆矩阵
*
* ***@param fconvMatrix
* 矩阵
* ***@return fconvMatrix的逆矩阵
*/
private double[][] inverse(double[][] fconvMatrix) {
// 复制原矩阵
double[][] a = new double[numDim][numDim];
for (int i = 0; i < numDim; i++)
for (int j = 0; j < numDim; j++)
a[i][j] = fconvMatrix[i][j];
for (int i = 0; i < numDim; i++) // 由于协方差矩阵是对角矩阵,所以直接将对角线的元素翻转
{
a[i][i] = 1 / a[i][i];
}
return a; // 返回协方差矩阵的逆矩阵
}
/**
* 求多维高斯分布概率密度
*
* ***@param f