• 大小: 24.4MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-22
  • 语言: C/C++
  • 标签: 数据挖掘  聚类  

资源简介

数据挖掘的代码是用C++写的,包含了三个算法 k-means ,CURE,DBSCAN,分别对三个数据集做处理,分别为小麦种子,股票数据,糖尿病患者。另外还有其他两个算法,代码在cplusplus文件里面,但是没有用于数据分析,有需要可以自己加。资料里面还包含了我的实验报告,结合了weka进行预处理。另外还有可执行文件,该目录下的其他文件是预处理后的数据,删除后就不能执行。 仅供参考。

资源截图

代码片段和文件信息

/***************************************************************************
Module Name:
Continuous Observation Hidden Markov Model with Gaussian Mixture

History:
2003/12/13 Fei Wang
2013 luxiaoxun
***************************************************************************/
#include 
#include 
#include 
#include 
#include 
#include “CHMM.h“
using namespace std;


CHMM::CHMM(int stateNum int dimNum int mixNum)
{
m_stateNum = stateNum;
m_maxIterNum = 100;
m_endError = 0.001;

Allocate(stateNum dimNum mixNum);

for (int i = 0; i < m_stateNum; i++)
{
// The initial probabilities
m_stateInit[i] = 1.0 / m_stateNum;

// The transition probabilities
for (int j = 0; j <= m_stateNum; j++)
{
m_stateTran[i][j] = 1.0 / (m_stateNum + 1);
}
}
}

CHMM::~CHMM()
{
Dispose();
}

void CHMM::Allocate(int state int dim int mix)
{
m_stateModel = new GMM*[state];
m_stateInit = new double[state];
m_stateTran = new double*[state];

for (int i = 0; i < state; i++)
{
m_stateModel[i] = new GMM(dim mix);
m_stateTran[i] = new double[state + 1]; // Add a final state
}
}

void CHMM::Dispose()
{
for (int i = 0; i < m_stateNum; i++)
{
delete m_stateModel[i];
delete[] m_stateTran[i];
}
delete[] m_stateModel;
delete[] m_stateTran;
delete[] m_stateInit;
}

void CHMM::Zero()
{
for (int i = 0; i < m_stateNum; i++)
{
// The initial probabilities
m_stateInit[i] = 0;

// The transition probabilities
for (int j = 0; j < m_stateNum + 1; j++)
{
m_stateTran[i][j] = 0;
}
}
}

void CHMM::Norm()
{
double count = 0;
int ij;
for ( j = 0; j < m_stateNum; j++)
{
count += m_stateInit[j];
}
for ( j = 0; j < m_stateNum; j++)
{
m_stateInit[j] /= count;
}

for (i = 0; i < m_stateNum; i++)
{
count = 0;
for ( j = 0; j < m_stateNum; j++)
{
count += m_stateTran[i][j];
}
if (count > 0)
{
for ( j = 0; j < m_stateNum + 1; j++)
{
m_stateTran[i][j] /= count;
}
}
}
}

double CHMM::GetStateInit(int i)
{
assert(i >= 0 && i < m_stateNum);
return m_stateInit[i];
}

double CHMM::GetStateFinal(int i)
{
assert(i >= 0 && i < m_stateNum);
return m_stateTran[i][m_stateNum];
}

double CHMM::GetStateTrans(int i int j)
{
assert(i >= 0 && i < m_stateNum && j >= 0 && j < m_stateNum);
return m_stateTran[i][j];
}

GMM* CHMM::GetStateModel(int i)
{
assert(i >= 0 && i < m_stateNum);
return m_stateModel[i];
}

double CHMM::GetProbability(std::vector& seq)
{
vector state;
return Decode(seq state);
}

//Viterbi Decode
//vector state: save the best state seqence to generate the seq
double CHMM::Decode(vector& seq vector& state)
{
// Viterbi
int size = (int)seq.size();
double* lastLogP = new double[m_stateNum];
double* currLogP = new double[m_stateNum];
int** path = new int*[size

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-25 19:38  cplusplus\
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\
     文件          23  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\HEAD
     文件         310  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\config
     文件          73  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\description
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\
     文件         478  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\applypatch-msg.sample
     文件         896  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\commit-msg.sample
     文件         189  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\post-update.sample
     文件         424  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\pre-applypatch.sample
     文件        1642  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\pre-commit.sample
     文件        1348  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\pre-push.sample
     文件        4951  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\pre-rebase.sample
     文件        1239  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\prepare-commit-msg.sample
     文件        3610  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\hooks\update.sample
     文件         810  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\index
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\info\
     文件         240  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\info\exclude
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\
     文件         187  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\HEAD
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\heads\
     文件         187  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\heads\master
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\remotes\
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\remotes\origin\
     文件         187  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\logs\refs\remotes\origin\HEAD
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\objects\
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\objects\02\
     文件        3075  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\objects\02\b69509b4e38fcd86f6bc17f439cb15df37e737
     目录           0  2018-11-25 19:37  cplusplus\KMeans-GMM-HMM\.git\objects\07\
............此处省略198个文件信息

评论

共有 条评论