From c6e4cb4f21f1cfd3b75b5328f136622512e238cc Mon Sep 17 00:00:00 2001
From: reder_martin <34924612+martinreder@users.noreply.github.com>
Date: Wed, 22 Nov 2023 10:56:09 +0100
Subject: [PATCH] Erstellt mit Colaboratory
---
Classification.ipynb | 455 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 426 insertions(+), 29 deletions(-)
diff --git a/Classification.ipynb b/Classification.ipynb
index 58cac6a..9f93cf1 100644
--- a/Classification.ipynb
+++ b/Classification.ipynb
@@ -14,7 +14,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"id": "1c7efa9f-be80-4108-9387-6cd68255c89f",
"metadata": {
"id": "1c7efa9f-be80-4108-9387-6cd68255c89f"
@@ -55,12 +55,317 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"id": "e2c52bfe-0d55-4e4b-b745-6805cdbe46a2",
"metadata": {
- "id": "e2c52bfe-0d55-4e4b-b745-6805cdbe46a2"
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 242
+ },
+ "id": "e2c52bfe-0d55-4e4b-b745-6805cdbe46a2",
+ "outputId": "923e877a-f1eb-4dc5-905e-475fb5ecabf2"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "(65, 3)\n",
+ "(35, 3)\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Label Title \\\n",
+ "92280 4 Curtain rises on Solaris 10 \n",
+ "59460 1 Nigerian Strike Set to Drag Into Fourth Day (R... \n",
+ "32048 2 Tejada Rips Up Twins \n",
+ "77859 2 Novak topples Henman \n",
+ "1518 2 Hall-of-Fame credentials \n",
+ "\n",
+ " Article \n",
+ "92280 Calling it quot;the biggest thing we #39;ve d... \n",
+ "59460 Reuters - A general strike in Nigeria which ha... \n",
+ "32048 Miguel Tejada homers twice and drives in five ... \n",
+ "77859 JIRI Novak made Tim Henman #39;s life as miser... \n",
+ "1518 HAVEN, Wis. -- An official from the World Golf... "
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Label | \n",
+ " Title | \n",
+ " Article | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 92280 | \n",
+ " 4 | \n",
+ " Curtain rises on Solaris 10 | \n",
+ " Calling it quot;the biggest thing we #39;ve d... | \n",
+ "
\n",
+ " \n",
+ " 59460 | \n",
+ " 1 | \n",
+ " Nigerian Strike Set to Drag Into Fourth Day (R... | \n",
+ " Reuters - A general strike in Nigeria which ha... | \n",
+ "
\n",
+ " \n",
+ " 32048 | \n",
+ " 2 | \n",
+ " Tejada Rips Up Twins | \n",
+ " Miguel Tejada homers twice and drives in five ... | \n",
+ "
\n",
+ " \n",
+ " 77859 | \n",
+ " 2 | \n",
+ " Novak topples Henman | \n",
+ " JIRI Novak made Tim Henman #39;s life as miser... | \n",
+ "
\n",
+ " \n",
+ " 1518 | \n",
+ " 2 | \n",
+ " Hall-of-Fame credentials | \n",
+ " HAVEN, Wis. -- An official from the World Golf... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 2
+ }
+ ],
"source": [
"train, test = train_test_split(sample, test_size = 0.35, random_state = 1337)\n",
"print(train.shape)\n",
@@ -82,12 +387,34 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"id": "e50b0510-2c09-4ec6-9e28-b2a8933197e5",
"metadata": {
- "id": "e50b0510-2c09-4ec6-9e28-b2a8933197e5"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "e50b0510-2c09-4ec6-9e28-b2a8933197e5",
+ "outputId": "68edce26-fd6e-4cf1-fa79-6cfe57656df0"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "(65, 967)\n",
+ "(35, 967)\n",
+ "(967,)\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
+ "[nltk_data] Unzipping corpora/stopwords.zip.\n"
+ ]
+ }
+ ],
"source": [
"labels_train = [classes_en[int(row[\"Label\"])] for i, row in train.iterrows()]\n",
"docs_train = [row[\"Article\"] for i, row in train.iterrows()]\n",
@@ -96,7 +423,8 @@
"\n",
"from nltk.corpus import stopwords as nltkStopwords\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
- "\n",
+ "import nltk\n",
+ "nltk.download('stopwords')\n",
"stopwords_en = list(nltkStopwords.words(\"english\"))\n",
"count_vectorizer = CountVectorizer(strip_accents = \"unicode\",\n",
" stop_words = stopwords_en)\n",
@@ -126,7 +454,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"id": "e6210175-dbea-4ea8-aacb-b539473c7149",
"metadata": {
"id": "e6210175-dbea-4ea8-aacb-b539473c7149"
@@ -195,7 +523,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 12,
"id": "7a629cd5-7444-4b3e-b52a-afcc51657e4c",
"metadata": {
"id": "7a629cd5-7444-4b3e-b52a-afcc51657e4c"
@@ -221,7 +549,10 @@
" # nr. of rows with C / nr. of rows\n",
" # Hint: to get the number of rows of a pandas dataframe use df.shape[0]\n",
" def P(C):\n",
- " # your code here\n",
+ " # Calculate and return P(C)\n",
+ " class_count = data[target].value_counts()[C]\n",
+ " total_count = data.shape[0]\n",
+ " return class_count / total_count\n",
"\n",
"\n",
" # Implement a function P_conditional(f, F, C) that returns\n",
@@ -230,7 +561,9 @@
" # (optionally + delta: (nr. of rows that have both F and C + delta)/(nr. of rows that have C + nr. of unique feature values in f * delta)\n",
" # ^ this is called Lidstone's Law Succession and adresses the problem of the probability going to 0 as soon as feature does not occur (very frequently)\n",
" def P_conditional(f, F, C):\n",
- " # your code here\n",
+ " nr_of_rows_with_C_and_F = data[(data[target] == C) & (data[F] == f)].shape[0]\n",
+ " nr_of_rows_with_c = data[data[target]==C].shape[0]\n",
+ " return nr_of_rows_with_C_and_F / nr_of_rows_with_c\n",
"\n",
"\n",
" # we can retrieve our features like this\n",
@@ -250,11 +583,11 @@
" # for class in classes\n",
" for C_i in data[target].unique().tolist():\n",
" # calculate the probability of class C\n",
- " r = # your code here\n",
+ " r = P(C_i)\n",
"\n",
" # multiply the above probability of class C with the Conditional Probability of Feature f having the value F, given class C for every feature\n",
" for f in features:\n",
- " r = # your code here\n",
+ " r *= P_conditional(f, x[f], C_i)\n",
"\n",
" res.append((r, C_i))\n",
"\n",
@@ -267,7 +600,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"id": "2df90bb9-24d7-4590-a843-a286b6da0b2c",
"metadata": {
"id": "2df90bb9-24d7-4590-a843-a286b6da0b2c"
@@ -292,9 +625,21 @@
"execution_count": null,
"id": "876ef0d7-7837-4ba8-94ea-9bc890762e62",
"metadata": {
- "id": "876ef0d7-7837-4ba8-94ea-9bc890762e62"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "876ef0d7-7837-4ba8-94ea-9bc890762e62",
+ "outputId": "8a447741-c3f7-4c9c-da02-7a24ed039aba"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "progress bar: 43%|████▎ | 28/65 [02:54<04:56, 8.00s/it]"
+ ]
+ }
+ ],
"source": [
"tqdm.pandas(desc = \"progress bar\")\n",
"predictions_train = counts_train.progress_apply(lambda row: NB.predict(row, has_target = True), axis = 1)"
@@ -318,12 +663,24 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 16,
"id": "5d1357cd-54ed-4b0b-a514-6d783a286a1b",
"metadata": {
- "id": "5d1357cd-54ed-4b0b-a514-6d783a286a1b"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "5d1357cd-54ed-4b0b-a514-6d783a286a1b",
+ "outputId": "4ace6283-3163-4db8-d4aa-63c39e821a5a"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Train Accuracy: 0.8615384615384616\n"
+ ]
+ }
+ ],
"source": [
"print(\"Train Accuracy: \", accuracy_score(counts_train[\"Label\"], predictions_train))"
]
@@ -340,12 +697,24 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 17,
"id": "0410697d-2f38-484c-a908-395d86eed230",
"metadata": {
- "id": "0410697d-2f38-484c-a908-395d86eed230"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "0410697d-2f38-484c-a908-395d86eed230",
+ "outputId": "e39da8a7-deb3-4d34-eb5d-3acc2b91c9b0"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "progress bar: 100%|██████████| 35/35 [02:48<00:00, 4.81s/it]\n"
+ ]
+ }
+ ],
"source": [
"tqdm.pandas(desc = \"progress bar\")\n",
"predictions_test = counts_test.progress_apply(lambda row: NB.predict(row, has_target = True), axis = 1)"
@@ -353,12 +722,28 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 18,
"id": "4cd0ed61-856f-461d-abb0-6c8f1d9c9f9c",
"metadata": {
- "id": "4cd0ed61-856f-461d-abb0-6c8f1d9c9f9c"
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 506
+ },
+ "id": "4cd0ed61-856f-461d-abb0-6c8f1d9c9f9c",
+ "outputId": "966e4ead-7d8f-4901-c1bf-a2b2a6567e44"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {}
+ }
+ ],
"source": [
"conf = confusion_matrix(counts_test[\"Label\"], predictions_test)\n",
"\n",
@@ -369,12 +754,24 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 19,
"id": "3baadbb0-469b-4be2-88d8-559f17ae2b84",
"metadata": {
- "id": "3baadbb0-469b-4be2-88d8-559f17ae2b84"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3baadbb0-469b-4be2-88d8-559f17ae2b84",
+ "outputId": "3cfe920e-84b7-4b7c-d97e-a9d83f5bed8d"
},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Test Accuracy: 0.2\n"
+ ]
+ }
+ ],
"source": [
"print(\"Test Accuracy: \", accuracy_score(counts_test[\"Label\"], predictions_test))"
]