python - 在 for 循环中使用 .sample() 的最佳方法是什么?
问题描述
我有一个 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)
这给了我替换=假的问题。我需要保持它为假,因为样本应该具有唯一的所有列,如果我设置为 True,它只会复制同一列 5 次。我想通过打印使用的是第一次我只有一列,第二个两列等等。
有没有办法实现我想要的?我没有考虑什么?
解决方案
推荐阅读
- python - 处理需要服务器调用的类字段的最佳实践
- multithreading - 如果我在已经使用 100% CPU 的系统上实现多线程会发生什么
- flutter - 如何在颤动中显示随机数
- node.js - mongoose-unique-validator ReferenceError:未定义用户
- sql - ORA-01850: 小时必须在 0 到 23 之间
- python - 将边缘检测转换为遮罩
- javascript - mac safari 显示完整的 console.log 输出
- c# - 用于检查表中一列数据的 C# 代码是否存在于其他表中
- reactjs - React js 通用布局与 React Router
- php - 使用 phpmyadmin XAMPP 时访问被拒绝