python - 机器学习:计算训练和验证错误、不同数量的特征和应用交叉验证
问题描述
我试图通过改变数据点的特征数量(最多 10 个)并同时应用 5 倍交叉验证来计算训练和验证错误。我的想法是计算每次特征迭代的折叠之间的平均误差。
我找不到计算这些平均误差值的正确方法
n=10 # Number of features
err_train = np.zeros(n) # Array for storing training errors
err_val = np.zeros(n) # Array for storing validation errors
for i in range(n):
train_errors_per_cv_iteration =[]
test_errors_per_cv_iteration =[]
K=5 # Specify the number of folds of split data into
kf = KFold(n_splits=K, shuffle=False) # Create a KFold object with 'K' splits
iteration = 0
for train_indices, test_indices in kf.split(X):
iteration += 1
X_train = X[train_indices,:] # Get the training set
X_val = X[test_indices,:] # Get the validation set
reg = LinearRegression(fit_intercept=True) # create an object for linear predictors
reg = reg.fit(X_train[:,:(i+1)], y_train) # find best linear predictor (minimize training error)
pred = reg.predict(X_train[:,:(i+1)]) # compute predictions of best predictors
err_train[i] = mean_squared_error(y_train, pred)
pred = reg.predict(X_val[:,:(i+1)]) # compute predictions of best predictors
err_val[i] = mean_squared_error(y_val, pred)
解决方案
推荐阅读
- angular - Angular 2更改路由(URL)并从数据库加载数据
- python - 遍历 pandas 数据框中的 datetime64 列
- powershell - Powershell:不正确的返回为最高值
- sonarqube - 在向 ActiveMQ 发送消息的情况下删除 Thread.sleep()
- android - Android 下载文件到内部应用空间
- c# - 你如何获得远程计算机的主机名?
- r - 使用系统和回声未提供正确的文本
- java - 在 NestedScrollView 中隐藏滚动视图并取而代之
- php - 更新今天 created_at 的记录 - Laravel
- mysql - 带有 MySql 提供程序的实体框架核心上的许多“包含”