This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cuiyiming-gradproj/Experiment/MarkovModel/.ipynb_checkpoints/statistic-checkpoint.ipynb
2019-12-23 01:20:51 +08:00

575 lines
69 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"zhihu 6403\n",
"weibo 5487\n",
"douyin 3964\n",
"hupu 2304\n",
"toutiao 520\n",
"Name: label, dtype: int64"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"exmaples_file = '../datasets/2019-12-21/examples.csv'\n",
"examples_df = pd.read_csv(exmaples_file)\n",
"class_counts = examples_df['label'].value_counts()\n",
"class_counts.plot.bar()\n",
"class_counts"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\python38\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:430: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
" warnings.warn(\"Default solver will be changed to 'lbfgs' in 0.22. \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:467: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n",
" warnings.warn(\"Default multi_class will be changed to 'auto' in\"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\svm\\base.py:928: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
" warnings.warn(\"Liblinear failed to converge, increase \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\svm\\base.py:189: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
" warnings.warn(\"The default value of gamma will change \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.9925053533190579, 0.9925053533190579, 0.9925053533190579]\n"
]
},
{
"data": {
"image/png": "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QESMBMaRDFmcQzJs8etbqliz5jRr1ixGjx7NoYceytlnn811110HJMMCn3nmGQCGDBnCyJEj6datGy+88ALDhw/niSee4JJLLuHwww/n3nvvZc2aNXzwwQfrvfYdd9zBUUcdxfe//33WrFnDihUr1js+efJkxowZwwsvvEBE0L9/fw4//HB23XVXXn31VcaOHcsNN9zAqaeeyj333MMZZ5zRMm+KbdWaDPSIGNbE8QAuaraKzFrI3nvvzaGHHgrAGWecwdVXXw3A0KFDAfjggw947rnn+PKX1y1L+vHHHwPwxBNPcMstyUjeqqoqdt555/Veu1+/fpx99tmsWrWKE088kd69e693/JlnnuGkk05i++23B+Dkk0/m6aef5vjjj6dLly5rz+/bty/z5s1r5p/c8sp3ilph1R0tUrtdG7KffPIJu+yyC1OnTl37mDlzZlmvPXjwYCZMmED79u356le/ujb8azW2DsG2265bQ7qqqorVq1eX9T3NHOhWWG+88QZ/+ctfABg7diyHHXbYesd32mknunTpwt133w0kITxt2jQg6Yq5/vrrgeTi6dKlS9f72vnz57PHHntw3nnncc455zBlyvo3Tw8ePJj77ruPFStWsHz5cu69914GDRq0RX5OKw4HuhVW9+7dufnmm+nZsyfvvvsuF1544Qbn3H777YwePZpevXpxwAEH8Mc//hGAESNGMH78eA488ED69u3L9OnT1/u6J598kt69e3PQQQdxzz33cOmll653vE+fPpx11lkcfPDB9O/fn3PPPZeDDjpoy/2wVgiZLUFXXV0dng+9mGbOnEn37t0zrWHevHkcd9xxvPzyy5nWsanKfQ+LMFSvXHl5LyRNjojq+o65hW5mlhMOdCukzp07b7Wtc7OGONDNzHLCgW5mlhMOdDOznHCgm5nlhAPdrJnMmzePHj2SVRqffPJJjjvuuIwrsqJpjulzzTbPj3Zu+pyNer33N+r0iCAiaNXK7RvbuvlfsBVS7TS1w4cPp0+fPtx6660MHDiQPn368OUvf3nt7IkTJ07kkEMOoVevXhx88MEsW7aMefPmMWjQIPr06UOfPn2anAPdrKU40K2wZs2axZlnnsljjz3G6NGjefzxx5kyZQrV1dVceeWVrFy5kqFDhzJixAimTZvG448/znbbbccee+zBY489xpQpU7jrrru45JJL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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.svm import SVC\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn import tree\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import f1_score,recall_score,precision_score\n",
"import random\n",
"examples = examples_df.values.copy()\n",
"#print(examples)\n",
"score_df = pd.DataFrame(np.zeros((5,3)),index = ['LogisticRegression', 'SVM', 'GaussianNB', 'tree', 'RandomForest'], \\\n",
" columns = ['precision', 'recall', 'f1'])\n",
"#def a():\n",
"\n",
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"for i in range(1):\n",
" np.random.shuffle(examples)\n",
" examples_train = examples[:int(len(examples)*0.75)]\n",
" examples_test = examples[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = LogisticRegression()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"score_df.loc['LogisticRegression'] = scores\n",
"\n",
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"for i in range(1):\n",
" #np.random.shuffle(examples)\n",
" examples_train = examples[:int(len(examples)*0.75)]\n",
" examples_test = examples[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = SVC()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"score_df.loc['SVM'] = scores\n",
"\n",
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"for i in range(1):\n",
" #np.random.shuffle(examples)\n",
" examples_train = examples[:int(len(examples)*0.75)]\n",
" examples_test = examples[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = GaussianNB()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"score_df.loc['GaussianNB'] = scores\n",
"\n",
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"for i in range(1):\n",
" #np.random.shuffle(examples)\n",
" examples_train = examples[:int(len(examples)*0.75)]\n",
" examples_test = examples[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = tree.DecisionTreeClassifier()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"score_df.loc['tree'] = scores\n",
"\n",
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"for i in range(1):\n",
" #np.random.shuffle(examples)\n",
" examples_train = examples[:int(len(examples)*0.75)]\n",
" examples_test = examples[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = RandomForestClassifier()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"score_df.loc['RandomForest'] = scores\n",
"ax = score_df.plot.bar(title='base_feature')\n",
"fig = ax.get_figure()\n",
"fig.savefig('../figure/base_feature.svg')\n",
"print(scores)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.7254089935760172, 0.7254089935760172, 0.7254089935760171]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"examples_tls = examples[:,25:].copy()\n",
"#print(examples_tls[0])\n",
"for i in range(50):\n",
" np.random.shuffle(examples_tls)\n",
" examples_train = examples_tls[:int(len(examples)*0.75)]\n",
" examples_test = examples_tls[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = RandomForestClassifier()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"plt.bar(['precision', 'recall', 'f1'], scores)\n",
"print(scores)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n",
"c:\\python38\\lib\\site-packages\\sklearn\\ensemble\\forest.py:244: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n",
" warn(\"The default value of n_estimators will change from \"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.98986295503212, 0.98986295503212, 0.98986295503212]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f1_score_list = list()\n",
"recall_score_list = list()\n",
"precision_score_list = list()\n",
"examples_base = np.c_[examples[:,:25].copy(),examples[:,-1].copy()]\n",
"#print(examples_base[0])\n",
"for i in range(50):\n",
" np.random.shuffle(examples_base)\n",
" examples_train = examples_base[:int(len(examples)*0.75)]\n",
" examples_test = examples_base[int(len(examples)*0.75):]\n",
" x_train = examples_train[:,0:-1]\n",
" y_train = examples_train[:,-1]\n",
" x_test = examples_test[:,0:-1]\n",
" y_test = examples_test[:,-1]\n",
" classifer = RandomForestClassifier()\n",
" classifer.fit(x_train, y_train)\n",
" y_pred = classifer.predict(x_test)\n",
" f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n",
" recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n",
" precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n",
"scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n",
"plt.bar(['precision', 'recall', 'f1'], scores)\n",
"print(scores)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"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.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}