#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. ДА. Поэтому, когда он запускается, он использует только один столбец для прогнозирования результата, второй раз два, и так далее и тому подобное.