各位大佬好,本人目前在用sklearn中LogisticRegression针对同一批样本数据(包括训练样本和测试样本,sklearn默认两个样本的比例为4:1)来训练一个回归模型,模型训练完后,应用于一批预测数据,计算各个预测数据的概率,最终进行分类,为什么针对同一批样本数据和同一批预测数据,没运行一次程序计算的概率和前几次计算的概率有很大出入?(例如,样本数据集A,利用sklearn从A训练一个模型M,预测数据集为C,第一次运行程序训练出模型M1,应用M1于C得到C中各个纪录的预测概率,但第二次再运行程序训练模型M2,因为样本数据没变,那么M2应该和M1的一样,应用M2于C来预测C中各个纪录的预测概率,但第二次预测的概率和第一次预测的概率有很大不同)因为是同一批样本数据,不是应该每次训练的模型的参数应该是相同,那么每次计算的预测数据的概率应该也是相同,为什么会出现每次计算的概率会不同的情况?求大佬解惑,万分感谢!
1个回答
sklearn.linear_model.LogisticRegression里有随机种子,每次运行前会随机打乱数据,你训练时要固定这个随机种子才能得到一样的模型,random_state自己随便用一个整数代替就好
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(penalty=’l2’, C=1.0, random_state=0)
逻辑回归本身并没有特别复杂的设定,在LogisticRegression中只有penalty和C两个超参可以调整。具体数值可以通过交叉验证进行选择确定。
SofaSofa数据科学社区DS面试题库 DS面经 相关主题
sklearn中的predict_proba方法的返回值的意义
2回答
sklearn训练classifier的时候报错Unknown label type
1回答
sklearn中除了sgd以外,还有什么可以使用partial_fit方法吗?
1回答
GradientBoostingClassifier的每次输出结果不同
1回答
sklearn.linear_model.SGDClassifier能做小批量学习(mini-batch)吗?
2回答
sklearn里learning_rate什么意思?
2回答
我们谢绝在回答前讲“生动”的故事。
我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。
我们谢绝答非所问。
我们谢绝自己不会、硬要回答。
我们感激每一个用户在编写答案时的努力与付出!