首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构建隐马尔可夫模型

如何构建隐马尔可夫模型
EN

Stack Overflow用户
提问于 2020-06-20 02:50:30
回答 1查看 34关注 0票数 1

我正在尝试建立一个隐马尔可夫模型,用于根据操作码(基本上只是告诉恶意软件做什么的单词)对恶意软件进行分类。我的数据由10种类型的恶意软件组成,每种类型大约有1000个操作码文件。在每个文件中,我有一个具有27个唯一值的随机数量的操作码,因此我将设置M= 27。我想知道是否有人有我可以参考或查看的代码

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-07 11:31:27

代码语言:javascript
复制
def train_hmm_random_restarts(obs_seq):
    len_o = len(obs_seq[0])
    if len_o>30000:
        random_restarts = 10
    elif len_o>10000:
        random_restarts = 30
    elif len_o>=5000:
        random_restarts = 50
    else:
        random_restarts = 100
    model= hmm.MultinomialHMM(n_components=2, n_iter=500, tol=0.5)
    # model.verbose=True
    model.fit(X=obs_seq)
    prev_model = model
    prev_log_prob = model.monitor_.history.pop()
    #random_restarts = 0
    while(random_restarts!=0):
        model= hmm.MultinomialHMM(n_components=2, n_iter=500, tol=0.5)
        #   model.verbose=True
        model.fit(X=obs_seq)
        log_prob = model.monitor_.history.pop()
        if (prev_log_prob < log_prob):
            prev_model = model
            prev_log_prob = log_prob
        random_restarts -= 1
    return prev_model

mymodel = train_hmm_random_restarts(np.array([[0,1,3,0,0,0,1,2,2,2,2]]))
#mymodel = train_hmm_random_restarts(X_train)
print(mymodel.emissionprob_)
print(mymodel.transmat_)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62476795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档