输出百分比“可能性”的预测模型?

Posted

技术标签:

【中文标题】输出百分比“可能性”的预测模型?【英文标题】:Prediction model to output percentage 'likelihood'? 【发布时间】:2020-05-16 17:31:31 【问题描述】:

假设我想预测大学三年级学生毕业的可能性百分比 (1-100%)。 我有一个包含 100 个观察的训练数据集,所有这些都包含被归类为“极有可能毕业”的学生的示例。 我有另一个数据集,其中包含 500 个观察值(我们不知道是否有毕业)。

我的问题是:我将如何获取所有 500 名学生的概率值,该值描述了他们基于多项特征(例如成绩分数、住在校园或校外等)在从第一个数据集训练的模型上?你会建议什么方法?

【问题讨论】:

它对你有用吗? 【参考方案1】:

我建议您使用OneClassSVM,这是一种无监督异常值检测。由于您的训练数据仅包含一个类别的样本,即“极有可能毕业”,因此在这里训练逻辑回归或神经网络可能不起作用。最好考虑到您拥有的任何数据都不是异常值,而另一类不太可能作为异常值毕业。拟合 OneClassSVM 模型后,您可以使用decision_function 来获得到分离超平面的有符号距离,这对于内部点来说是正值,对于异常值来说是负值。然后在它之上,你可以只用一个 sigmoid 函数来得到概率。我在下面展示了一个示例:

from sklearn.svm import OneClassSVM
X = [[0], [0.44], [0.45], [0.46], [1]]
clf = OneClassSVM(gamma='auto').fit(X)

def sigmoid(x):
    return 1/(1+np.exp(-x))

prob = clf.decision_function([[0.455]]) # Not an outlier 
sigmoid(prob)
#array([0.50027839])

prob = clf.decision_function([[5]])     # An outlier 
sigmoid(prob)
#array([0.11356841])

希望这会有所帮助!

【讨论】:

以上是关于输出百分比“可能性”的预测模型?的主要内容,如果未能解决你的问题,请参考以下文章

哪种模型适合预测百分比? [关闭]

使用自己的 Java 代码和模型在 WEKA 中获取预测百分比

如何使用隐马尔可夫模型进行未来预测

如何获得keras预测模型CNN中的概率百分比

Weka 预测(百分比置信度) - 这是啥意思?

R语言构建xgboost模型预测推理:输出预测概率预测标签