{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#### General guidance\n", "\n", "This serves as a template which will guide you through the implementation of this task. It is advised\n", "to first read the whole template and get a sense of the overall structure of the code before trying to fill in any of the TODO gaps.\n", "This is the jupyter notebook version of the template. For the python file version, please refer to the file `template_solution.py`.\n", "\n", "First, we import necessary libraries:" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.118936Z", "start_time": "2026-03-11T20:25:46.115270Z" } }, "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import KFold\n", "\n", "# Add any additional imports here (however, the task is solvable without using \n", "# any additional imports)\n", "# import ..." ], "outputs": [], "execution_count": 55 }, { "cell_type": "markdown", "metadata": {}, "source": [ " #### Loading data" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.151114Z", "start_time": "2026-03-11T20:25:46.143378Z" } }, "source": [ "data = pd.read_csv(\"train.csv\")\n", "y = data[\"y\"].to_numpy()\n", "data = data.drop(columns=\"y\")\n", "# print a few data samples\n", "print(data.head())" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 \\\n", "0 0.06724 0.0 3.24 0.0 0.460 6.333 17.2 5.2146 4.0 430.0 16.9 \n", "1 9.23230 0.0 18.10 0.0 0.631 6.216 100.0 1.1691 24.0 666.0 20.2 \n", "2 0.11425 0.0 13.89 1.0 0.550 6.373 92.4 3.3633 5.0 276.0 16.4 \n", "3 24.80170 0.0 18.10 0.0 0.693 5.349 96.0 1.7028 24.0 666.0 20.2 \n", "4 0.05646 0.0 12.83 0.0 0.437 6.232 53.7 5.0141 5.0 398.0 18.7 \n", "\n", " x12 x13 \n", "0 375.21 7.34 \n", "1 366.15 9.53 \n", "2 393.74 10.50 \n", "3 396.90 19.77 \n", "4 386.40 12.34 \n" ] } ], "execution_count": 56 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Calculating the average RMSE" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.175778Z", "start_time": "2026-03-11T20:25:46.173181Z" } }, "source": [ "def calculate_RMSE(w, X, y):\n", " \"\"\"This function takes test data points (X and y), and computes the empirical RMSE of \n", " predicting y from X using a linear model with weights w. \n", "\n", " Parameters\n", " ----------\n", " w: array of floats: dim = (13,), optimal parameters of ridge regression \n", " X: matrix of floats, dim = (15,13), inputs with 13 features\n", " y: array of floats, dim = (15,), input labels\n", "\n", " Returns\n", " ----------\n", " rmse: float: dim = 1, RMSE value\n", " \"\"\"\n", " rmse = 0\n", " n = X.shape[0]\n", " rmse = np.sqrt(1/n * np.sum( (y - X @ w)**2 ))\n", " assert np.isscalar(rmse)\n", " return rmse" ], "outputs": [], "execution_count": 57 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fitting the regressor" ] }, { "metadata": {}, "cell_type": "markdown", "source": [ "The fitting can be carried out by solving the normal equations:\n", "$$\n", "(\\lambda \\cdot \\mathbf{I} + \\mathbf{X}) \\mathbf{w} = \\mathbf{X}^{T}\\cdot \\mathbf{y}\n", "$$\n" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.200893Z", "start_time": "2026-03-11T20:25:46.197877Z" } }, "source": [ "def fit(X, y, lam):\n", " \"\"\"\n", " This function receives training data points, then fits the ridge regression on this data\n", " with regularization hyperparameter lambda. The weights w of the fitted ridge regression\n", " are returned. \n", "\n", " Parameters\n", " ----------\n", " X: matrix of floats, dim = (135,13), inputs with 13 features\n", " y: array of floats, dim = (135,), input labels\n", " lam: float. lambda parameter, used in regularization term\n", "\n", " Returns\n", " ----------\n", " w: array of floats: dim = (13,), optimal parameters of ridge regression\n", " \"\"\"\n", " weights = np.zeros((13,))\n", " A = lam * np.identity(13) + np.transpose(X) @ X\n", " b = X.T @ y\n", " weights = np.linalg.solve(A, b)\n", "\n", " assert weights.shape == (13,)\n", " return weights" ], "outputs": [], "execution_count": 58 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Performing computation" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:27:41.325447Z", "start_time": "2026-03-11T20:27:41.305479Z" } }, "source": [ "\"\"\"\n", "Main cross-validation loop, implementing 10-fold CV. In every iteration \n", "(for every train-test split), the RMSE for every lambda is calculated, \n", "and then averaged over iterations.\n", "\n", "Parameters\n", "---------- \n", "X: matrix of floats, dim = (150, 13), inputs with 13 features\n", "y: array of floats, dim = (150, ), input labels\n", "lambdas: list of floats, len = 5, values of lambda for which ridge regression is fitted and RMSE estimated\n", "n_folds: int, number of folds (pieces in which we split the dataset), parameter K in KFold CV\n", "\n", "Compute\n", "----------\n", "avg_RMSE: array of floats: dim = (5,), average RMSE value for every lambda\n", "\"\"\"\n", "X = data.to_numpy()\n", "# The function calculating the average RMSE\n", "lambdas = [0.1, 1, 10, 100, 200]\n", "n_folds = 10\n", "\n", "RMSE_mat = np.zeros((n_folds, len(lambdas)))\n", "\n", "\n", "# and fill all entries in the matrix 'RMSE_mat'\n", "for k in range(n_folds):\n", " fold = 150 // n_folds\n", " X_train = np.concatenate((X[:k*fold,:], X[(k+1)*fold:,:]),axis=0) # leave out the validation set\n", " X_validation = X[k*fold:(k+1)*fold,:]\n", " y_train = np.concatenate((y[:k*fold], y[(k+1)*fold:]))\n", " y_validation = y[k*fold:(k+1)*fold]\n", " for i in range(len(lambdas)):\n", " w = fit(X_train, y_train, lambdas[i])\n", " RMSE_mat[k,i] = calculate_RMSE(w, X_validation, y_validation)\n", "avg_RMSE = np.mean(RMSE_mat, axis=0) # avg_RMSE: array of floats: dim = (5,), average RMSE value for every lambda\n", "assert avg_RMSE.shape == (5,)" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[7.4412339 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 0. 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 0. ]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [0. 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 0. 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 0. 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 0. 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 0. ]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [0. 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [3.5549224 0. 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [3.5549224 3.47254925 0. 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [3.5549224 3.47254925 3.38243796 0. 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [3.5549224 3.47254925 3.38243796 3.79878164 0. ]]\n", "[[7.4412339 7.47793331 7.58146902 8.19645872 8.50748161]\n", " [5.12826602 4.88393133 4.45282503 3.55256057 3.60399295]\n", " [7.70764701 7.70279186 7.72774439 7.77994411 7.88968326]\n", " [4.54006065 4.50059526 4.33989198 4.94678494 5.24054741]\n", " [4.07531646 4.0726219 4.19425423 4.89426434 5.24272243]\n", " [5.10975443 5.15192098 5.39446252 7.11982551 7.87880031]\n", " [6.55136404 6.56151161 6.55275056 7.13545034 7.47865912]\n", " [6.04021985 6.09837022 6.36717035 7.59224397 7.99355906]\n", " [4.88759828 4.88177704 4.70584949 4.30299719 4.45025962]\n", " [3.5549224 3.47254925 3.38243796 3.79878164 4.14775924]]\n" ] } ], "execution_count": 64 }, { "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.251095Z", "start_time": "2026-03-11T20:25:46.248154Z" } }, "cell_type": "code", "source": [ "A = np.array([[1,2],[3,4]])\n", "#print(A[:,:1])\n", "#print(np.transpose(A), A, np.transpose(A) @ A)\n", "print(np.concatenate((A,A),axis=1))" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2 1 2]\n", " [3 4 3 4]]\n" ] } ], "execution_count": 60 }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.295067Z", "start_time": "2026-03-11T20:25:46.292066Z" } }, "source": [ "# Save results in the required format\n", "np.savetxt(\"./results.csv\", avg_RMSE, fmt=\"%.12f\")" ], "outputs": [], "execution_count": 61 }, { "metadata": { "ExecuteTime": { "end_time": "2026-03-11T20:25:46.321558Z", "start_time": "2026-03-11T20:25:46.319798Z" } }, "cell_type": "code", "source": "# Validate", "outputs": [], "execution_count": 62 } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 2 }