Проблем с ЛАБ-а: резултатите, които се получават са зависими от средата
Здравейте,
Имам следния проблем с лаба към Linear and Logistic Regression. Лаба е лесен, но следния assert не минаваше:
assert_almost_equal(accuracy_score_quad, 0.8986949789869498, delta = 0.001)
Работя в Linux среда без Anaconda, като си инсталирам всичко, което ми трябва точно когато ми трябва. Реших, че това може да е проблем и затова пробвах под Windows с инсталация на Anaconda. Като резултат всички assert-и от лаба си минаваха както се очаква. Върнах се Linux средата (Ubuntu) премахнах всички инсталирани покрай курса пакети и си сложих Anaconda и си настроих всичко по най-стандартния начин. Въпреки това assert-a пак не минаваше. Пробвах още няколко неща, даже си вдигнах една виртуална Ubuntu машина и инсталирах всичко отначало и отново нямаше резултат. Пробвах и онлайн инструменти, т.е. трета (даже четвърта ако броим виртуалката) среда и там имаше различен резултат, но пак е около ~0.904. Само под Windows среда се получава ~0.899. По-долу съм извадил есенцията на проблема, като в коментарите съм написал резултатите в съответните среди:
import numpy as np
import pandas as pd
from nose.tools import *
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import PolynomialFeatures
bank_data = pd.read_csv('./data/bank.csv', sep=";")
bank_features = bank_data.drop('y', axis=1)
bank_features = pd.get_dummies(bank_features)
bank_output = bank_data.loc[:,'y']
quad_feature_transformer = PolynomialFeatures(degree=2, interaction_only=True)
bank_features_quad = quad_feature_transformer.fit_transform(bank_features)
bank_model_quad = LogisticRegression(C=1e6)
bank_model_quad.fit(bank_features_quad, bank_output)
accuracy_score_quad = bank_model_quad.score(bank_features_quad, bank_output)
print("Accuracy: {}".format(accuracy_score_quad))
# Ubuntu output: 0.9028975890289759
# Ubuntu VM output: 0.90400353904
# http://jupyter.org/try: 0.9037823490378235
# Windows output: 0.89869497895
assert_almost_equal(accuracy_score_quad, 0.8986949789869498, delta = 0.001)
Ще съм благодарен ако някой ми даде идея защо се получават тези разминавания или работи под Linux или пробва ЛАБ-а на Ubuntu виртуалка да сподели резултатите.
Интересува ме кои резултати са по-обективни и защо се получава разминаването.
Да, това също не влиза в делтата и assert-а гърми. Благодаря за споделения резултат. До тук като гледам няма 2 среди да дават еднакъв резултат, което дори да е нормално все пак не е ок. Тази делта може би трябва да се увеличи.
Проблемът тук е, че по този начин не се демонстрира това, че при овърфит score може да падне.
Можеш да пробваш да сетнеш MKL_CBWR=AUTO и да провериш дали резлутатът е консистентен с този от лектора.
Сетнах тази променлива при променливите в Windows, но резултатът пак не съвпада.