Files
FYSSTK-Project2/notebooks/logisitic-regression.ipynb
T

167 lines
48 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "122c67bd",
"metadata": {},
"outputs": [],
"source": [
"from easynn.feedforward import FFNN, Layer, Regularization, LeakyReLU, Softmax, CrossEntropyLoss\n",
"from easynn.schedulers import AdamScheduler\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.preprocessing import OneHotEncoder\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b9c5b725",
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"breast_cancer_regression_results.csv\")\n",
"X = df.iloc[:, :-1].to_numpy()\n",
"y = df.iloc[:, -1].to_numpy().reshape(-1, 1)\n",
"encoder = OneHotEncoder(sparse_output=False)\n",
"y_encoded = encoder.fit_transform(y)\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "35e06abf",
"metadata": {},
"outputs": [],
"source": [
"logistic_model = FFNN([\n",
" Layer(30, 2, activation_function=Softmax()),\n",
"], loss_fn=CrossEntropyLoss(), scheduler=AdamScheduler(learning_rate=1e-3, epochs=10000)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8a55a0c3",
"metadata": {},
"outputs": [],
"source": [
"logistic_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "cd5a03ac",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3e7e0bec10>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 1350x900 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import plotting\n",
"\n",
"\n",
"plt.plot(logistic_model.scheduler.loss_history)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "08c0b434",
"metadata": {},
"outputs": [],
"source": [
"y_pred = logistic_model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3492bd31",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import accuracy_score, roc_auc_score\n",
"\n",
"acc = accuracy_score(y_test.argmax(axis=1), y_pred.argmax(axis=1))\n",
"auc = roc_auc_score(y_test, y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "298b055a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.9824561403508771, 0.9957010582010581)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"acc, auc"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "35cc8cc0",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "project2",
"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.13.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}