Лучший способ использовать .sample() в цикле for?

#python #pandas #for-loop #sample

#python #панды #for-цикл #пример

Вопрос:

У меня есть фрейм данных из 217 столбцов. До сих пор я выбирал его, указывая определенное число. Затем выбранный фрейм данных использовался для применения модели линейной регрессии для прогнозирования оценки. Код, который я использовал для достижения этой цели, следующий:

 sample_lr = sample_lr.sample(5,axis=1)
 

sample_lr выглядит следующим образом:

     SHOCKS_1    SELFCONTROL_3   SOCSEC3     EMPLOY1_3   EMPLOY1_9   FWBscore
0      0             3            -2          0           0           55
1      0             3            66          0           0           51
2      0             3            68          0           0           49
3      0            -1            -1          0           1           49
4      0             3            65          0           0           49
 
 if "FWBscore" in sample_lr:
    pass
else:
    sample_lr["FWBscore"] = df["FWBscore"]

sample_lr_2 = sample_lr.drop("FWBscore", axis=1)

X = sample_lr.drop('FWBscore', axis= 1)
y = sample_lr.FWBscore
linear_model = LinearRegression().fit(X, y)
sample_lr_2 = sample_lr.drop("FWBscore", axis=1)
sample_lr_2['FWBscore_PREDICT'] = linear_model.predict(sample_lr_2)
score = linear_model.score(X, y)
 

Что мне нужно сделать сейчас, так это показать, используя график, как при увеличении числа выборок, которое пользователь может изменить, увеличивается оценка. Итак, моя идея заключалась в использовании цикла for.

 sample_lr = df.iloc[:500,:]

for i in range(1,5):
    sample_lr = sample_lr.sample(i, axis = 1)
    print(sample_lr)
 

что вызывает у меня проблему с replace=False . Мне нужно сохранить значение false, потому что в примере все столбцы должны быть уникальными, и если я установлю значение True, он просто скопирует один и тот же столбец 5 раз. Что я хотел бы использовать при печати, так это то, что в первый раз у меня есть только один столбец, во второй — два столбца и так далее.
Есть способ добиться того, чего я хочу? Что я не рассматриваю?

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

1. вы можете пробовать столько, сколько хотите replace=False , пока у вас есть полная длина ваших данных

2. Если я выполняю выборку без указания количества строк, у меня появляется следующая ошибка «Невозможно взять выборку большего размера, чем население, когда ‘replace=False»

3. разве вы не говорили, что хотите увеличивать количество выборок после каждой итерации?

4. ДА. Поэтому, когда он запускается, он использует только один столбец для прогнозирования результата, второй раз два, и так далее и тому подобное.