mirror of
https://github.com/fenago/data-science.git
synced 2026-05-04 00:22:32 +00:00
205 lines
4.6 KiB
Plaintext
205 lines
4.6 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"colab_type": "text",
|
|
"id": "HOAv4FLaAC3f"
|
|
},
|
|
"source": [
|
|
"# Compute Log Loss for a Classification Model"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {},
|
|
"colab_type": "code",
|
|
"id": "bN_083VRAC3h"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# import libraries\n",
|
|
"import pandas as pd\n",
|
|
"from sklearn.model_selection import train_test_split\n",
|
|
"from sklearn.linear_model import LogisticRegression\n",
|
|
"\n",
|
|
"import warnings\n",
|
|
"warnings.filterwarnings(\"ignore\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 194
|
|
},
|
|
"colab_type": "code",
|
|
"id": "eMkdycnKAC3k",
|
|
"outputId": "c07b22f7-66ad-4a55-de1e-20fd07f28ee4"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# data doesn't have headers, so let's create headers\n",
|
|
"_headers = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'car']\n",
|
|
"# read in cars dataset\n",
|
|
"df = pd.read_csv('../Dataset/car.data', names=_headers, index_col=None)\n",
|
|
"df.head()\n",
|
|
"\n",
|
|
"# target column is 'car'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 214
|
|
},
|
|
"colab_type": "code",
|
|
"id": "EQvotJcIAC3o",
|
|
"outputId": "2898f590-7861-429f-d991-892609f9757a"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# encode categorical variables\n",
|
|
"_df = pd.get_dummies(df, columns=['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety'])\n",
|
|
"_df.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {},
|
|
"colab_type": "code",
|
|
"id": "JcMh8CFzAC3q"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# target column is 'car'\n",
|
|
"\n",
|
|
"features = _df.drop(['car'], axis=1).values\n",
|
|
"labels = _df[['car']].values\n",
|
|
"\n",
|
|
"# split 80% for training and 20% into an evaluation set\n",
|
|
"X_train, X_eval, y_train, y_eval = train_test_split(features, labels, test_size=0.3, random_state=0)\n",
|
|
"\n",
|
|
"# further split the evaluation set into validation and test sets of 10% each\n",
|
|
"X_val, X_test, y_val, y_test = train_test_split(X_eval, y_eval, test_size=0.5, random_state=0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 161
|
|
},
|
|
"colab_type": "code",
|
|
"id": "-4nPRPmXAC3s",
|
|
"outputId": "e80cb467-4b58-43d5-a852-6ed9222efe89"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# train a Logistic Regression model\n",
|
|
"model = LogisticRegression()\n",
|
|
"model.fit(X_train, y_train)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {},
|
|
"colab_type": "code",
|
|
"id": "KziGroVtAC3u"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# make predictions for the validation dataset\n",
|
|
"y_pred = model.predict(X_val)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {},
|
|
"colab_type": "code",
|
|
"id": "YfpxsWw0AC3w"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# import libraries\n",
|
|
"from sklearn.metrics import log_loss"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 35
|
|
},
|
|
"colab_type": "code",
|
|
"id": "phVn4D7cAC3z",
|
|
"outputId": "f414cf31-77b4-46ae-e1a7-a8075b7b73b3"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"_loss = log_loss(y_val, model.predict_proba(X_val))\n",
|
|
"print(_loss)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {},
|
|
"colab_type": "code",
|
|
"id": "MTlthhG0AC31"
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"name": "Exercise6_11.ipynb",
|
|
"provenance": []
|
|
},
|
|
"file_extension": ".py",
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"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.8.6"
|
|
},
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"npconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": 3
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 1
|
|
}
|