最大熵模型与分类器

先推荐两个链接,都是讲最大熵的,强的一批。

http://blog.csdn.net/erli11/article/details/24718655

http://blog.csdn.net/v_july_v/article/details/40508465

一.思路

最大熵其实也是个用来做分类器的思想,用的是条件熵最大的意义(这一点可以看到跟极大似然估计很像),最大熵模型在做分类的时候其实也是判断

P(y|x)概率的大小的,从而决定归类。但是这里的p(y|x)不是跟朴素贝叶斯一样从样本数据中获得先验概率然后计算,而是通过条件熵最大而求得


每个讲解最大熵模型的都会用这么个例子,一个色子,6面,问人掷每面的概率是多少,每个人一定会说每面都是1/6,为什么每个人会说1/6,而不是说什么1是1/3,2是1/2这样子的组合呢,因为每个人潜意识里面觉得这样子最“保险”,那么“最保险”到底代表着什么意思呢?因为均匀分布刚好是熵最大的模型,而最大熵模型认为,对于那些不知道的事件,认为他们是等可能的是最好的,也满足最大熵的情况。

二.特征函数和限制条件

看过最大熵模型的人都知道会有这么一个限制条件,


那么这个特征函数到底代表什么

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 最大熵模型是一种常用的机器学习算法,它可以用于分类问题。在Python中,可以使用第三方库如scikit-learn来进行最大熵模型的分类。 具体步骤是: 1. 准备训练数据集,将样本数据和其对应的标签存储在数据结构中。 2. 对数据集进行特征提取,将样本转化为特征向量。 3. 训练最大熵模型,并得到训练好的模型。 4. 对待分类样本进行特征提取,将其转化为特征向量。 5. 利用训练好的模型进行分类预测。 使用scikit-learn库中的最大熵模型可以通过以下代码实现: ``` from sklearn.linear_model import LogisticRegression from sklearn.feature_extraction.text import CountVectorizer # 准备训练数据集 X_train = ['this is a pen', 'this is a book', 'that is a desk', 'that is a chair'] y_train = [0, 0, 1, 1] # 创建特征提取器 vectorizer = CountVectorizer() # 将文本转化为特征向量 X_train_vector = vectorizer.fit_transform(X_train) # 创建最大熵分类器 classifier = LogisticRegression() # 训练最大熵分类器 classifier.fit(X_train_vector, y_train) # 待分类文本 new_texts = ['this is a laptop', 'that is a table'] # 将待分类文本转化为特征向量 new_texts_vector = vectorizer.transform(new_texts) # 进行分类预测 predictions = classifier.predict(new_texts_vector) print(predictions) ``` 输出结果为:`[0 1]`,表示第一条待分类文本属于第0类,第二条待分类文本属于第1类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值