public abstract class HiddenMarkovModel extends Object
| Modifier and Type | Field and Description |
|---|---|
float[][] |
emission_probability
观测概率矩阵
|
float[] |
start_probability
初始状态概率向量
|
float[][] |
transition_probability
状态转移概率矩阵
|
| Constructor and Description |
|---|
HiddenMarkovModel(float[] start_probability,
float[][] transition_probability,
float[][] emission_probability)
构造隐马模型
|
| Modifier and Type | Method and Description |
|---|---|
protected static Object |
deepCopy(Object object) |
protected static int |
drawFrom(double[] cdf)
采样
|
protected void |
estimateEmissionProbability(Collection<int[][]> samples,
int max_state,
int max_obser)
估计状态发射概率
|
protected void |
estimateStartProbability(Collection<int[][]> samples,
int max_state)
估计初始状态概率向量
|
protected void |
estimateTransitionProbability(Collection<int[][]> samples,
int max_state)
利用极大似然估计转移概率
|
abstract int[][] |
generate(int length)
生成样本序列
|
List<int[][]> |
generate(int minLength,
int maxLength,
int size)
生成样本序列
|
protected static double[] |
logToCdf(float[] log)
对数概率转为累积分布函数
|
protected static double[][] |
logToCdf(float[][] log)
对数概率转化为累积分布函数
|
protected void |
normalize(float[] freq)
频次向量归一化为概率分布
|
abstract float |
predict(int[] o,
int[] s)
预测(维特比算法)
|
float |
predict(int[] o,
Integer[] s)
预测(维特比算法)
|
protected static boolean |
similar(float[] A,
float[] B) |
boolean |
similar(HiddenMarkovModel model) |
protected void |
toLog() |
void |
train(Collection<int[][]> samples)
训练
|
void |
unLog() |
public float[] start_probability
public float[][] emission_probability
public float[][] transition_probability
public HiddenMarkovModel(float[] start_probability,
float[][] transition_probability,
float[][] emission_probability)
start_probability - 初始状态概率向量transition_probability - 状态转移概率矩阵emission_probability - 观测概率矩阵protected static double[] logToCdf(float[] log)
log - protected static double[][] logToCdf(float[][] log)
log - protected static int drawFrom(double[] cdf)
cdf - 累积分布函数protected void normalize(float[] freq)
freq - public void unLog()
protected void toLog()
public void train(Collection<int[][]> samples)
samples - 数据集 int[i][j] i=0为观测,i=1为状态,j为时序轴protected void estimateEmissionProbability(Collection<int[][]> samples, int max_state, int max_obser)
samples - 训练样本集max_state - 状态的最大下标max_obser - 观测的最大下标protected void estimateTransitionProbability(Collection<int[][]> samples, int max_state)
samples - 训练样本集max_state - 状态的最大下标,等于N-1protected void estimateStartProbability(Collection<int[][]> samples, int max_state)
samples - 训练样本集max_state - 状态的最大下标public abstract int[][] generate(int length)
length - 序列长度public List<int[][]> generate(int minLength, int maxLength, int size)
minLength - 序列最低长度maxLength - 序列最高长度size - 需要生成多少个public abstract float predict(int[] o,
int[] s)
o - 观测序列s - 预测状态序列(需预先分配内存)public float predict(int[] o,
Integer[] s)
o - 观测序列s - 预测状态序列(需预先分配内存)public boolean similar(HiddenMarkovModel model)
protected static boolean similar(float[] A,
float[] B)
Copyright © 2014–2021 码农场. All rights reserved.