Python 产量百分比预测模型';可能性';?

Python 产量百分比预测模型';可能性';?,python,machine-learning,scikit-learn,data-science,sklearn-pandas,Python,Machine Learning,Scikit Learn,Data Science,Sklearn Pandas,假设我想预测三年级学生大学毕业的概率(1-100%)。 我有一个包含100个观察结果的培训数据集,所有这些数据都包含被归类为“极有可能毕业”的学生的例子。 我有另一个数据集,由500个观察值组成(我们不知道是否有任何观察值) 我的问题是:我将如何获得所有500名学生的概率值,该值描述了他们在第一个数据集训练的模型上基于多个特征(1-5个特征之间的任何地方,如分数、校园内或校园外生活等)毕业的可能性?您建议采用什么方法?我建议您使用无监督的异常值检测方法。由于您的培训数据仅包含一门课程的样本,即“

假设我想预测三年级学生大学毕业的概率(1-100%)。 我有一个包含100个观察结果的培训数据集,所有这些数据都包含被归类为“极有可能毕业”的学生的例子。 我有另一个数据集,由500个观察值组成(我们不知道是否有任何观察值)


我的问题是:我将如何获得所有500名学生的概率值,该值描述了他们在第一个数据集训练的模型上基于多个特征(1-5个特征之间的任何地方,如分数、校园内或校园外生活等)毕业的可能性?您建议采用什么方法?

我建议您使用无监督的异常值检测方法。由于您的培训数据仅包含一门课程的样本,即“很可能毕业”培训,因此逻辑回归或神经网络可能无法在这里工作。最好考虑一下你所拥有的数据不是异常值,而另一个不太可能成为异常值的类别。拟合OneClassSVM模型后,可以使用获得到分离超平面的有符号距离,对于内点为正,对于离群点为负。然后,你可以用一个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])

希望这有帮助

对你有用吗?