- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
运行Python 3.7.3
我制作了一个简单的 GMM 并将其拟合到一些数据。使用predict_proba方法,返回的是1和0,而不是属于每个高斯的输入的概率。
我最初在更大的数据集上尝试过这个,然后尝试获取一个最小的示例。
from sklearn.mixture import GaussianMixture
import pandas as pd
feat_1 = [1,1.8,4,4.1, 2.2]
feat_2 = [1.4,.9,4,3.9, 2.3]
test_df = pd.DataFrame({'feat_1': feat_1, 'feat_2': feat_2})
gmm_test = GaussianMixture(n_components =2 ).fit(test_df)
gmm_test.predict_proba(test_df)
gmm_test.predict_proba(np.array([[8,-1]]))
我得到的数组只是 1 和 0,或者几乎是(10^-30 或其他)。
除非我错误地解释了某些内容,否则返回应该是每个的概率,例如,
gmm_test.predict_proba(np.array([[8,-1]]))
当然不应该是[1,0]或[0,1]。
最佳答案
您给出的示例给出了奇怪的结果,因为您只有 5 个数据点,但仍然使用 2 个混合组件,这基本上导致了过度拟合。
如果您检查组件的均值和协方差:
print(gmm_test.means_)
>>> [[4.05 3.95 ]
[1.66666667 1.53333333]]
print(gmm_test.covariances_)
>>> [[[ 0.002501 -0.0025 ]
[-0.0025 0.002501 ]]
[[ 0.24888989 0.13777778]
[ 0.13777778 0.33555656]]]
由此可以看出,第一个高斯基本上是用一个非常小的协方差矩阵拟合的,这意味着除非一个点非常接近它的中心(4.05,3.95),否则属于这个高斯的概率总是可以忽略不计.
为了让您相信尽管如此,您的模型仍按预期工作,请尝试以下操作:
epsilon = 0.005
print(gmm_test.predict_proba([gmm_test.means_[0]+epsilon]))
>>> array([[0.03142181, 0.96857819]])
一旦您增加epsilon
,它只会返回array([[0., 1.]])
,就像您观察到的那样。
关于python - Predict_proba 不适用于我的高斯混合模型(sklearn,python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56993070/
假设我的标记数据有两个类 1 和 0。当我在测试集上运行 Predict_proba 时,它返回一个包含两列的数组。哪一列对应哪个类? 最佳答案 第 0 列对应于类 0,第 1 列对应于类 1。 关于
只是一个简单的问题,如果我想将对象分类为 0 或 1,但我希望模型返回一个“可能性”概率,例如,如果一个对象是 0.7,这意味着它有 0.7 的机会进入第 1 类,我是做回归还是坚持使用分类器并使用
我想通过交叉验证从逻辑回归模型预测概率。我知道您可以获得交叉验证分数,但是否可以从 predict_proba 返回值而不是分数? # imports from sklearn.linear_mode
我在我的数据集上训练了一个 RandomForestClassifier,可以从文本正文中预测 8 个不同的主题。对于给定示例,数据集如下所示 X_train = [[0,0,0,0,0,1,0,0,
我正在使用 Python 的 sklearn 对文本进行分类。 我调用函数 predict_proba,它看起来像这样: [[ 6.74918834e-53 1.59981248e-51 2
我正在使用 scikit-learn 通过逻辑回归来实现分类。使用 predict() 函数预测类标签,而使用 predict_proba() 函数打印预测概率。 下面粘贴了代码片段: # Parti
我正在处理一个多类、高度不平衡的分类问题。我使用随机森林作为基础分类器。 我必须在考虑多个标准(指标:精度、召回 conf_matrix、roc_auc)的情况下给出模型性能报告。 模型火车: rf
我使用 Scikit-learn 和 XGBoost 在同一数据上训练了 2 个梯度提升模型。 Scikit-learn 模型 GradientBoostingClassifier( n_es
scikit-learn 的 DecisionTreeClassifier 支持通过 predict_proba() 函数预测每个类的概率。 DecisionTreeRegressor 中不存在这一点
所以我使用 sci-kit learns RandomForestClassifier 将天文来源的数据分为三类。为了让我的问题更简单,我在测试集中仅使用了两个来源,并获得了 predict_prob
我正在使用 sklearn 库来训练和测试我的数据。 targetDataCsv = pd.read_csv("target.csv","rt")) testNormalizedCsv = csv.
我试图通过调用 Keras 模型的 predict_proba() 生成类(class)分数,但似乎没有这个函数!它是否因为我在谷歌中看到一些例子而被弃用?我正在使用 Keras 2.2.2。 最佳答
运行Python 3.7.3 我制作了一个简单的 GMM 并将其拟合到一些数据。使用predict_proba方法,返回的是1和0,而不是属于每个高斯的输入的概率。 我最初在更大的数据集上尝试过这个,
在docs , predict_proba(self, x, batch_size=32, verbose=1) 是 Generates class probability predictions f
我正在尝试使用LinearSVC 分类器 更新:添加了导入 import nltk from nltk.tokenize import word_tokenize from nltk.classify
这是来自 How to know what classes are represented in return array from predict_proba in Scikit-learn 的后续
我有许多类和对应的特征向量,当我运行 predict_proba() 时,我会得到这个: classes = ['one','two','three','one','three'] feature =
我正在尝试了解如何 sklearn's MLP Classifier检索其 predict_proba 函数的结果。 该网站仅列出: Probability estimates 还有很多其他的,例如
predict_proba 返回神经网络中的误差 我在这个链接上看到了例子 https://machinelearningmastery.com/how-to-make-classification-
我训练了一个简单的随机森林分类器,然后当我使用相同的测试输入测试预测时: rf_clf.predict([[50,0,500,0,20,0,250000,1.5,110,0,0,2]]) rf_clf
我是一名优秀的程序员,十分优秀!