Ошибка значения: при n_samples=0, test_size=0.3 и train_size=None результирующий набор поездов будет пустым. Отрегулируйте любой из вышеупомянутых параметров

#python #encoding #linear-regression #valueerror

#python #кодирование #линейная регрессия #ошибка значения

Вопрос:

Я работаю с линейной регрессией в файле CSV, и я кодировал все категориальные значения. Существуют некоторые числовые значения (например, годы), которые будут соотноситься с целевыми переменными только в том случае, если они также будут изменены. Мой код работает гладко, но как только я закодирую одну из числовых функций следующим образом:

     subset_2=[1088, 1096, 1174, 1185, 1237, 1304, 1362, 1414, 1479]
    subset_1=[568, 571, 573, 574, 590 ,626 ,631, 636, 644, 651, 700, 725, 743, 762, 797, 167, 192, 332, 370, 403 ,438, 445]
    
def encode_2ndFlrSF(x):
    if x==[i for i in subset_2]:
        return 30
    elif x==[i for i in subset_1]:
        return 20
    else:
        return 10
df['2ndFlrSF'] = df['2ndFlrSF'].apply(encode_2ndFlrSF)
df['2ndFlrSF'] =df['2ndFlrSF'].apply(encode_2ndFlrSF)
 

Я получаю следующую ошибку:

 ```

    ValueError: With n_samples=0, test_size=0.3 and train_size=None
    
    the resulting train set will be empty

. Adjust any of the aforementioned parameters.
 

Я не могу понять, почему моя кодировка вызывает эту проблему и как ее исправить.

Ответ №1:

в новой версии scikit возникли некоторые проблемы, попробуйте установить старую версию (версия 0.19.1):

Windows:

 pip install scikit-learn==0.19.1
 

Linux:

 sudo python36 -m pip install scikit-learn==0.19.1
 

Комментарии:

1. больше похоже на комментарий. и я не думаю, что это проблема с scikit-learn