Я использую проверку по методу Leave-One-Out-Cross-Validation для модели линейной регрессии.Имея 8869 наблюдений, в результате следующее:
reg = LinearRegression()
list_Rs = cross_val_score(reg, X_34_const, y_34,
cv = len(y_34),
scoring = 'r2')
Я должен получить массив из 8869 значений, включенных между 0 и 1, с 8 десятичными знаками.Проблема в том, что при получении результата Python автоматически округляет все такие значения до 0.0:
array([0., 0., 0., ..., 0., 0., 0.])
, а вместо этого, например, если я использую перекрестную проверку 2 раза (что подразумевает, что list_Rsмассив Numpy с двумя значениями), он печатает правильно не округленные значения:
list_Rs = cross_val_score(reg, X_34_const, y_34,
cv = 2,
scoring = 'r2')
, что при печати равно:
array([0.16496198, 0.18115719])
Это не просто печатное представление, проблема,поскольку, например:
print(list_Rs[3] == 0)
возвращает True.Для меня это большая проблема, так как в моих вычислениях мне нужно будет поместить значения list_Rs в знаменатель дроби!
Как я могу решить проблему, чтобы также не иметь автоматически округленных значенийв моем массиве размеров 8869?
Большое спасибо, и я с нетерпением жду вашего ответа.