即使设置了种子,LogisticRegressionCV也会给出不同的答案

问题描述 投票:1回答:1

我有一个在Logistic RegressionCV中实现KFold的程序。我已经设置了一个种子并在KFOLD和LogisticRegressionCV中使用它。即使设置了种子,每次重新运行内核时,我都会对所有指标进行不同的测量。这是代码:

    rs = random.seed(42)
    X_train, X_test, y_train, y_test = train_test_split(X_smt, y_smt, test_size=0.1, 
                                                    random_state=42)
    kf = KFold(n_splits=15, shuffle=flase, random_state=42)
    logistic = LogisticRegressionCV(Cs=2, fit_intercept=True, cv=kf, verbose =1, random_state=42)
    logistic.fit(X_train, y_train)
    print("Train Coefficient:" , logistic.coef_) #weights of each feature
    print("Train Intercept:" , logistic.intercept_) #value of intercept
    print("\n \n \n ")


    logistic.predict(X_test)
    test_precision = metrics.precision_score(y_test, logistic.predict(X_test))
    test_avg_precision = metrics.average_precision_score(y_test, logistic.predict(X_test))

可能是什么原因,如果有一个简单的解决方案。

python logistic-regression cross-validation seed
1个回答
0
投票

根据SKlearn文件hereRandomized CV splitters may return different results for each call of split. You can make the results identical by setting random_state to an integer

但是,它可能只设置折叠随机状态而不是改组。尝试设置shuffle=False,看看你是否仍然得到不同的结果。

© www.soinside.com 2019 - 2024. All rights reserved.