{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "WN_Wk5YLEqjH" }, "source": [ "Trenowanie i sprawdzanie modelu na podstawie danych\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "m_clYNei0tkC", "outputId": "33bac564-a242-4c57-9c97-5bd309f94f67" }, "outputs": [ { "data": { "text/html": [ "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "LinearRegression()" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.preprocessing import MinMaxScaler\n", "\n", "data = pd.read_csv('train/train.tsv', delimiter='\\t', header=None)\n", "\n", "X = data.iloc[:, [6, 8]]\n", "X = X.apply(pd.to_numeric, errors='coerce')\n", "X = X.fillna(11)\n", "\n", "y = data.iloc[:, 0]\n", "\n", "scaler = MinMaxScaler()\n", "X_normalized = scaler.fit_transform(X)\n", "\n", "model = LinearRegression()\n", "model.fit(X_normalized, y)\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "z-FrV1G3E_h-" }, "source": [ "Predykcja modelu:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "SzhNXTtkE-3X", "outputId": "9b25e639-30bd-4ff6-9e3b-8a6d67bee1ef" }, "outputs": [], "source": [ "\n", "dane = pd.read_csv('dev-0/in.tsv', delimiter='\\t', header=None)\n", "dane = dane[[5,7]]\n", "dane = dane.apply(pd.to_numeric, errors='coerce')\n", "dane = dane.fillna(11)\n", "#print(dane[[5, 7]])\n", "scaler = MinMaxScaler()\n", "scaler.fit(dane)\n", "dane_normalized = scaler.transform(dane)\n", "wynik = model.predict(dane_normalized)\n", "wynik_df = pd.DataFrame(wynik)\n", "wynik_df.to_csv('dev-0/out.tsv', sep='\\t', index=False)\n", "\n", "dane2 = pd.read_csv('Test-A/in.tsv', delimiter='\\t', header=None)\n", "dane2 = dane2[[5,7]]\n", "dane2 = dane2.apply(pd.to_numeric, errors='coerce')\n", "dane2 = dane2.fillna(11)\n", "scaler = MinMaxScaler()\n", "scaler.fit(dane2)\n", "dane2_normalized = scaler.transform(dane)\n", "wynik2 = model.predict(dane2_normalized)\n", "wynik2_df = pd.DataFrame(wynik2)\n", "wynik2_df.to_csv('Test-A/out.tsv', sep='\\t', index=False)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Średni Błąd Kwadratowy (MSE): 23708536181.88\n", "Średni Błąd Bezwzględny (MAE): 75896.46\n", "R-kwadrat (R2): 0.67\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import mean_squared_error\n", " \n", "y_pred = model.predict(X_normalized)\n", "mse = mean_squared_error(y, y_pred)\n", "print(f\"Średni Błąd Kwadratowy (MSE): {mse:.2f}\")\n", "\n", "from sklearn.metrics import mean_absolute_error\n", " \n", "mae = mean_absolute_error(y, y_pred)\n", "print(f\"Średni Błąd Bezwzględny (MAE): {mae:.2f}\")\n", "\n", "from sklearn.metrics import r2_score\n", " \n", "r2 = r2_score(y, y_pred)\n", "print(f\"R-kwadrat (R2): {r2:.2f}\")\n", "\n", "import matplotlib.pyplot as plt\n", " \n", "plt.scatter(y, y_pred, label=\"Dane\")\n", "\n", "plt.xlabel(\"Rzeczywiste wartości\")\n", "plt.ylabel(\"Przewidywane wartości\")\n", "plt.title(\"Wykres predykcji vs. rzeczywistość z linią regresji\")\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }