【问题标题】:Assignment for .loc() when looping through stratified indexes循环遍历分层索引时为 .loc() 赋值
【发布时间】:2021-09-15 08:27:47
【问题描述】:

我刚开始学习机器学习,一直坚持理解这段代码。我了解分层班次类方法如何生成一组训练和测试索引以进行循环。我感到困惑的是 strat_train_set 如何包含多个值。我尝试运行代码,很明显这两个变量都包含集合,但没有增量或添加函数。不会每次循环都用新记录替换当前记录,从而导致 strat_train_set 和 strat_test_set 包含日期集的单个记录而不是多个值。

for train_index, test_index in split.split(housing, housing["income_cat"]):
      strat_train_set = housing.loc[train_index]
      strat_test_set = housing.loc[test_index]

【问题讨论】:

    标签: python pandas scikit-learn data-science


    【解决方案1】:

    这个循环在每次迭代中提供一个完整的折叠。 train_index 和test_index 是索引值本身的集合,然后通过.loc() 用作外壳DF 的多值索引 - 一个矢量化操作。然后strat_train_set 和strat_test_set 也是集合。

    有意义吗?

    【讨论】:

    • 我想我理解所以循环的运行看起来像:第一个循环上的 0:1 第二个循环上的 0:2 等等。如果是这种情况,是否需要循环,是否可以直接获得开始和结束索引。
    • 并非如此。例如,使用 10 倍拆分,您在每次迭代中获得每组的 1/10。这个想法是您在每次迭代中处理每个折叠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2014-12-19
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多