简体   繁体   English

如何在 function 中的 for 循环中获取计数器?

[英]How to get a counter in a for loop that is in a function?

import numpy as np

    m = 100
    X = 6 * np.random.rand(m, 1) - 3
    y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)

from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

    def plot_learning_curves(model, X, y):
    X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=10)
    train_errors, val_errors = [], []
    for m in range(1, len(X_train)):
        model.fit(X_train[:m], y_train[:m])
        y_train_predict = model.predict(X_train[:m])
        y_val_predict = model.predict(X_val)
        train_errors.append(mean_squared_error(y_train[:m], y_train_predict))
        val_errors.append(mean_squared_error(y_val, y_val_predict))

    plt.plot(np.sqrt(train_errors), "r-+", linewidth=2, label="train")
    plt.plot(np.sqrt(val_errors), "b-", linewidth=3, label="val")
    plt.legend(loc="upper right", fontsize=14)   
    plt.xlabel("Training set size", fontsize=14) 
    plt.ylabel("RMSE", fontsize=14)

    lin_reg = LinearRegression()
    plot_learning_curves(lin_reg, X, y)
    plt.show() 

How to add a loop counter in here?如何在这里添加循环计数器?

You can use enumerate for your loop.您可以将enumerate用于您的循环。 Example:例子:

for idx, num in enumerate(range(5)):
  print(idx, num)

yields产量

0 0
1 1
2 2
3 3
4 4

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM