Files
machine_learning_projects/3.宝可梦数据集分析/小组作业/predict.ipynb
T
less IS more 966c040379 小组作业
Signed-off-by: less IS more <13190735+wnflt@user.noreply.gitee.com>
2023-07-17 01:51:52 +00:00

1000 lines
196 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 预测是否为传说宝可梦"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"统计001 舒予 2205310954"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 整理数据,删去多余特征"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:30.928226300Z",
"start_time": "2023-07-17T01:43:30.916963300Z"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"首先导入预处理好的数据 `pokemon_cleaned.csv`。"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.042875400Z",
"start_time": "2023-07-17T01:43:30.932220400Z"
}
},
"outputs": [
{
"data": {
"text/plain": " name attack base_egg_steps base_happiness base_total \\\n0 Bulbasaur 49 5120 70 318 \n1 Ivysaur 62 5120 70 405 \n2 Venusaur 100 5120 70 625 \n3 Charmander 52 5120 70 309 \n4 Charmeleon 64 5120 70 405 \n\n capture_rate classification defense experience_growth height_m ... \\\n0 45 Seed Pokémon 49 1059860 0.7 ... \n1 45 Seed Pokémon 63 1059860 1.0 ... \n2 45 Seed Pokémon 123 1059860 2.0 ... \n3 45 Lizard Pokémon 43 1059860 0.6 ... \n4 45 Flame Pokémon 58 1059860 1.1 ... \n\n percentage_male pokedex_number sp_attack sp_defense speed type1 \\\n0 88.1 1 65 65 45 grass \n1 88.1 2 80 80 60 grass \n2 88.1 3 122 120 80 grass \n3 88.1 4 60 50 65 fire \n4 88.1 5 80 65 80 fire \n\n type2 weight_kg generation is_legendary \n0 poison 6.9 1 0 \n1 poison 13.0 1 0 \n2 poison 100.0 1 0 \n3 NaN 8.5 1 0 \n4 NaN 19.0 1 0 \n\n[5 rows x 21 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>name</th>\n <th>attack</th>\n <th>base_egg_steps</th>\n <th>base_happiness</th>\n <th>base_total</th>\n <th>capture_rate</th>\n <th>classification</th>\n <th>defense</th>\n <th>experience_growth</th>\n <th>height_m</th>\n <th>...</th>\n <th>percentage_male</th>\n <th>pokedex_number</th>\n <th>sp_attack</th>\n <th>sp_defense</th>\n <th>speed</th>\n <th>type1</th>\n <th>type2</th>\n <th>weight_kg</th>\n <th>generation</th>\n <th>is_legendary</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Bulbasaur</td>\n <td>49</td>\n <td>5120</td>\n <td>70</td>\n <td>318</td>\n <td>45</td>\n <td>Seed Pokémon</td>\n <td>49</td>\n <td>1059860</td>\n <td>0.7</td>\n <td>...</td>\n <td>88.1</td>\n <td>1</td>\n <td>65</td>\n <td>65</td>\n <td>45</td>\n <td>grass</td>\n <td>poison</td>\n <td>6.9</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Ivysaur</td>\n <td>62</td>\n <td>5120</td>\n <td>70</td>\n <td>405</td>\n <td>45</td>\n <td>Seed Pokémon</td>\n <td>63</td>\n <td>1059860</td>\n <td>1.0</td>\n <td>...</td>\n <td>88.1</td>\n <td>2</td>\n <td>80</td>\n <td>80</td>\n <td>60</td>\n <td>grass</td>\n <td>poison</td>\n <td>13.0</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Venusaur</td>\n <td>100</td>\n <td>5120</td>\n <td>70</td>\n <td>625</td>\n <td>45</td>\n <td>Seed Pokémon</td>\n <td>123</td>\n <td>1059860</td>\n <td>2.0</td>\n <td>...</td>\n <td>88.1</td>\n <td>3</td>\n <td>122</td>\n <td>120</td>\n <td>80</td>\n <td>grass</td>\n <td>poison</td>\n <td>100.0</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Charmander</td>\n <td>52</td>\n <td>5120</td>\n <td>70</td>\n <td>309</td>\n <td>45</td>\n <td>Lizard Pokémon</td>\n <td>43</td>\n <td>1059860</td>\n <td>0.6</td>\n <td>...</td>\n <td>88.1</td>\n <td>4</td>\n <td>60</td>\n <td>50</td>\n <td>65</td>\n <td>fire</td>\n <td>NaN</td>\n <td>8.5</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Charmeleon</td>\n <td>64</td>\n <td>5120</td>\n <td>70</td>\n <td>405</td>\n <td>45</td>\n <td>Flame Pokémon</td>\n <td>58</td>\n <td>1059860</td>\n <td>1.1</td>\n <td>...</td>\n <td>88.1</td>\n <td>5</td>\n <td>80</td>\n <td>65</td>\n <td>80</td>\n <td>fire</td>\n <td>NaN</td>\n <td>19.0</td>\n <td>1</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 21 columns</p>\n</div>"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('pokemon_cleaned.csv')\n",
"data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"注意到该数据共有 21 列,特征过多,且部分特征对宝可梦是否是传说级没有影响,故删除这些特征。"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.099114800Z",
"start_time": "2023-07-17T01:43:31.044937700Z"
}
},
"outputs": [],
"source": [
"data = data.drop(['name', 'base_egg_steps', 'base_happiness', 'base_total',\n",
" 'capture_rate', 'classification', 'experience_growth', 'height_m',\n",
" 'percentage_male', 'pokedex_number', 'type1', 'type2', 'weight_kg'],\n",
" axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"经过上面的过程,我们就得到了整理好的数据。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.385468200Z",
"start_time": "2023-07-17T01:43:31.069119300Z"
}
},
"outputs": [
{
"data": {
"text/plain": " attack defense hp sp_attack sp_defense speed generation is_legendary\n0 49 49 45 65 65 45 1 0\n1 62 63 60 80 80 60 1 0\n2 100 123 80 122 120 80 1 0\n3 52 43 39 60 50 65 1 0\n4 64 58 58 80 65 80 1 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>attack</th>\n <th>defense</th>\n <th>hp</th>\n <th>sp_attack</th>\n <th>sp_defense</th>\n <th>speed</th>\n <th>generation</th>\n <th>is_legendary</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>49</td>\n <td>49</td>\n <td>45</td>\n <td>65</td>\n <td>65</td>\n <td>45</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>62</td>\n <td>63</td>\n <td>60</td>\n <td>80</td>\n <td>80</td>\n <td>60</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>100</td>\n <td>123</td>\n <td>80</td>\n <td>122</td>\n <td>120</td>\n <td>80</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>52</td>\n <td>43</td>\n <td>39</td>\n <td>60</td>\n <td>50</td>\n <td>65</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>64</td>\n <td>58</td>\n <td>58</td>\n <td>80</td>\n <td>65</td>\n <td>80</td>\n <td>1</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"我们尝试用:\n",
"- 攻击 `attack`\n",
"- 防御 `defense`\n",
"- 生命值 `hp`\n",
"- 特殊攻击 `sp_attack`\n",
"- 特殊防御 `sp_defense`\n",
"- 速度 `speed`\n",
"- 世代 `generation`\n",
"\n",
"这 7 个特征来预测该宝可梦是否为传说级别。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 预测宝可梦是否是传说级"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"首先导入相关模块。"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.783113600Z",
"start_time": "2023-07-17T01:43:31.131423Z"
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.svm import SVC\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn import metrics\n",
"from sklearn.metrics import confusion_matrix"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.800399800Z",
"start_time": "2023-07-17T01:43:31.785113800Z"
}
},
"outputs": [],
"source": [
"target = 'is_legendary'\n",
"x_columns = [x for x in data.columns if x not in [target]]\n",
"X = data[x_columns]\n",
"y = data['is_legendary']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"下面划分数据集。"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.865423600Z",
"start_time": "2023-07-17T01:43:31.804379400Z"
}
},
"outputs": [
{
"data": {
"text/plain": "((637, 7), (637,), (160, 7), (160,))"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
"x_train.shape, y_train.shape, x_test.shape, y_test.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 高斯朴素贝叶斯"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"下面用高斯朴素贝叶斯进行预测。"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:31.975415800Z",
"start_time": "2023-07-17T01:43:31.867421200Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"高斯朴素贝叶斯的准确率为 0.91875\n"
]
}
],
"source": [
"model = GaussianNB()\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('高斯朴素贝叶斯的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"由于朴素贝叶斯分类器对数据有严格的假设,因此它的训练效果通常比复杂模型的差。\n",
"\n",
"朴素贝叶斯分类器的优点体现在一下几个方面:\n",
"- 训练和预测的速度非常快。\n",
"- 直接使用概率预测。\n",
"- 通常容易解释。\n",
"- 可调参数非常少。\n",
"\n",
"这些优点使得朴素贝叶斯分类器通常很适合作为分类的初始解。\n",
"\n",
"在宝可梦数据集中,由于数据维度较高,像朴素贝叶斯这样简单分类器也能得到较好的效果。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 支持向量机"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"支持向量机 (Support Vector Machine, SVM) 是一种监督学习算法,可用于分类和回归问题。\n",
"\n",
"在分类问题中,SVM 构建一个决策边界,将不同类别的样本分开。给定一组已标记的训练样本,SVM 学习一个最优的超平面,以最大化不同类别之间的间隔(也称为间隔最大化)。然后,对于新的未标记样本,可以使用学习到的模型进行预测,确定其所属的类别。\n",
"\n",
"在回归问题中,SVM 可以用于建立一个函数模型,以预测连续目标变量的值。SVM 回归的目标是找到一个超平面,使得训练样本与该超平面之间的距离最小化。然后,可以用学习到的模型对新的输入进行预测,得到对应的连续数值输出。\n",
"\n",
"预测宝可梦是否是传说级是一个分类问题。\n",
"\n",
"需要注意的是,在使用 SVM 时,还需要选择适当的核函数(如线性核函数、RBF 核函数等)和调整相关的超参数(如惩罚参数 C、核函数参数等),以获得最佳的预测性能。\n",
"\n",
"首先使用线性核函数的 SVM 模型。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.592724700Z",
"start_time": "2023-07-17T01:43:31.952498800Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"线性核函数的SVM模型的准确率为 0.95\n"
]
}
],
"source": [
"model = SVC(kernel='linear') # 线性核函数\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('线性核函数的SVM模型的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"再使用 RBF(径向基函数)核函数的 SVM 模型。"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.690676100Z",
"start_time": "2023-07-17T01:43:32.594719400Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RBF核的SVM的准确率为 0.90625\n"
]
}
],
"source": [
"model = SVC(kernel='rbf') # RBF核\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('RBF核的SVM的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"这里,线性核函数的 SVM 的准确率比 RBF 核函数的 SVM 高,这可能是由如下两个原因导致的:\n",
"- 该数据集可能在低维特征空间中是线性可分的,即存在一个超平面可以完全分开两个类别,那么使用线性核函数的 SVM 可以直接在原始特征空间中构造一个线性超平面,而不需要映射到更高维的特征空间。\n",
"- 该数据集的样本数量相对较小,在这种情况下,使用RBF核函数可能会导致过拟合,因为RBF核函数在特征空间中引入了更多的自由度。线性核函数的SVM通常具有较低的复杂性,能够更好地适应小样本数据,避免过拟合问题。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Logistic 回归"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Logistic 回归是一种广义线性模型,常用于二分类问题,但也可以扩展到多类别分类问题。\n",
"\n",
"在二分类问题中,Logistic 回归通过拟合一个逻辑函数(Logistic 函数)来估计概率,将输入特征映射到一个取值范围在 0 和 1 之间的概率值。根据预测的概率值,可以设置一个阈值来进行类别的划分。\n",
"\n",
"下面用 Logistic 回归预测宝可梦是否是传说级。"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.815498200Z",
"start_time": "2023-07-17T01:43:32.627358800Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Logistic回归的准确率为 0.95\n"
]
}
],
"source": [
"model = LogisticRegression() # Logistic回归\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('Logistic回归的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 决策树和随机森林"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"首先用决策树进行预测。"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.816495200Z",
"start_time": "2023-07-17T01:43:32.737790800Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"决策树的准确率为 0.90625\n"
]
}
],
"source": [
"model = DecisionTreeClassifier(random_state=24) # 决策树\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('决策树的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"随着决策树深度的不断加深,决策树会出现过拟合,这正是决策树准确率不高的原因。\n",
"\n",
"过拟合其实正是决策树的一般属性:决策树非常容易陷得很深,因此往往会拟合局部的数据,而没有对整个数据分布的大局观。换个角度看这种过拟合,可以认为模型训练的是数据的不同子集。如果把多棵决策树组合起来,往往能得到更好的结果。\n",
"\n",
"组合多个过拟合评估器来降低过拟合程度的想法其实是一种集成学习方法,称为**袋装算法** (bagging)。装袋算法使用并行评估器对数据进行有放回抽取集成,每个评估器都对数据过拟合,通过求均值可以获得更好的分类结果。随机决策树的集成算法就是**随机森林** (random forest)。\n",
"\n",
"下面使用随机森林进行预测。"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.946191600Z",
"start_time": "2023-07-17T01:43:32.770040500Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"随机森林的准确率为 0.93125\n"
]
}
],
"source": [
"model = RandomForestClassifier(n_estimators=7, random_state=24) # 随机森林\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('随机森林的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"可以看出,随机森林的预测准确率较决策树有显著提升。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### K-近邻"
]
},
{
"cell_type": "markdown",
"source": [
"K-近邻 (k-nearest neighbor, KNN) 是一种基本的监督学习算法,其核心思想是基于邻近样本的相似度进行预测。\n",
"\n",
"在 KNN 中,\"k\"代表了选择的最近邻居的数量,是算法的一个超参数。KNN 算法的工作过程如下:\n",
"- 训练阶段:算法将训练集中的样本和对应的标签存储起来,以便在预测阶段使用。\n",
"- 预测阶段:对于分类问题:给定一个未标记的测试样本,KNN 算法通过计算该样本与训练集中所有样本之间的距离(常用的距离度量包括欧氏距离、曼哈顿距离等),找到与该样本最近的 k 个邻居。\n",
"- 决策:对于分类问题,KNN 算法根据 k 个最近邻居中所属类别的投票结果来决定测试样本的类别。对于回归问题,KNN 算法使用 k 个最近邻居的平均值或中位数作为预测值。\n",
"\n",
"KNN 算法的特点包括:\n",
"- 非参数方法:KNN 不对数据的分布做出假设,因此可以适用于各种类型的数据。\n",
"- 懒惰学习:KNN 属于懒惰学习 (lazy learning) 方法,因为它在预测阶段才进行计算,没有显式的训练过程。\n",
"- 高度可解释性:KNN 算法的结果易于理解和解释,因为它基于实例之间的相似性。\n",
"- KNN 算法的一些考虑因素包括选择合适的距离度量、确定最佳的 k 值、处理数据不平衡问题以及处理高维数据时的维度灾难等。\n",
"\n",
"需要注意的是,KNN 算法的性能受到数据集规模的影响,因为它需要计算和存储所有训练样本之间的距离。在处理大规模数据集时,这可能会导致计算和存储的开销较大。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:32.973726300Z",
"start_time": "2023-07-17T01:43:32.892608800Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KNN的准确率为 0.925\n"
]
}
],
"source": [
"model = KNeighborsClassifier()\n",
"model.fit(x_train, y_train)\n",
"pred = model.predict(x_test)\n",
"print('KNN的准确率为', metrics.accuracy_score(pred, y_test))"
]
},
{
"cell_type": "markdown",
"source": [
"选择合适的 k 值对在过拟合与欠拟合间找到恰当的平衡至关重要,下面选取 1 到 10 共 10 个不同的 k 值,拟合模型并进行预测,比较它们的准确率。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:34.220467900Z",
"start_time": "2023-07-17T01:43:32.960369300Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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cOFCVFVV4emnn8bvf//7Vr1WS+rq6jB//nx07969yTqQiIgIbNy4sdkEJiIiAps2bcLUqVObnKXS6XRYunQpJk6cCMC6DPX000+jrq4On332GebNm4cpU6bYnr9q1SpkZmY2uEdISAg+//xzREREYPbs2RAEARqNxpbUibNWLSV53377LYYOHYrAwEAAwOTJk9GjRw888MAD0Gg0MJlMKCsrwxtvvIFly5bBZDLhX//6l+3n44UXXkBpaSnWrFmDxMRErF69GjNmzMD333+Pd999F7/61a8QExOD+fPnIzc3Fxs2bEBwcHBLf/VEsscEhkhClZWVmDlzJrp3744ePXoAsH7gabVaPPXUU/j73/+O22+/vclrAwIC0Lt371t6fbPZjBdffBE5OTnYsGEDQkJCsG/fPqSnpzcqptXpdPjNb37TqHZm9uzZtuJde5lMJqxatQpPPPEEoqOjm33e8uXLce7cOezYsaNRfQcAPProo/jXv/6F1NTUJq9/9NFH8c477+C7777Dr371q0bf12g0jR5Tq9V49913ERwcjEmTJjWKu6mxRkREYO/evfjmm2/QvXt3GAwG23JURUUFzGYzrly5ArPZDJPJhC5dutiurampQVpaGjp37oxXXnkFgDWB6du3L/z8/LBnzx5s3boVaWlpWL9+PQBrLc/19VNeXl5YtGgRjEYjPvnkEwwaNAiXLl3C3//+d0yZMgV//OMf4eXlhZdffhl+fn6NZtWIlIjbqIkkUlRUhKeffhoWiwV/+9vfbB+mGo0GK1aswLBhwzB9+nTs27ev2XtcuXIFcXFxjf4MGTLErhheeeUVnD17Fh988IGtTuTIkSMYPHhwo0Ji8YO9T58+Df7s3LmzydmNlhQWFmL79u149NFHce7cuSafU1VVZfvAPnXqVJPPmTBhAlQqVbO7uuLj4zFgwAB8+umnDsX37LPPYsWKFXjttddw4MAB2+NGo7HJRAqwLqPdfffduPPOO5GRkYEHH3wQDz74IP75z3+ioKAADzzwAB566CE89thjDa57++23UVZWhoEDB6J///7Ys2cPCgoKbhrjjTNvOTk5+OMf/4gnn3wSK1euRFZWFp555hnMmTMHDzzwAPbt24e9e/di6tSp+Pnnnx36+yCSIyYwRBI4duwYJk2aBI1Ggw8++ABBQUENvq/VarFy5UoMGjQIv/3t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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a_index = np.linspace(1, 10, 10)\n",
"a = pd.Series(dtype=np.float64) # 储存准确率\n",
"for i in list(range(1, 11)):\n",
" model = KNeighborsClassifier(n_neighbors=i)\n",
" model.fit(x_train, y_train)\n",
" pred = model.predict(x_test)\n",
" a = pd.concat([a, pd.Series(metrics.accuracy_score(pred, y_test))])\n",
"plt.plot(a_index, a)\n",
"plt.xticks(np.linspace(1, 10, 10))\n",
"plt.title('不同k值下KNN的准确率')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:34.349942300Z",
"start_time": "2023-07-17T01:43:34.235940500Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"不同k值下KNN的准确率为 [0.91875 0.90625 0.9375 0.9125 0.925 0.91875 0.925 0.925 0.925\n",
" 0.9125 ] \n",
"最大值为 0.9375\n"
]
}
],
"source": [
"print('不同k值下KNN的准确率为', a.values, '\\n最大值为', a.values.max())"
]
},
{
"cell_type": "markdown",
"source": [
"可知,当 `k=3` 时,KNN 的准确率达到最高,为 0.94375。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 交叉验证"
]
},
{
"cell_type": "markdown",
"source": [
"### K折交叉验证"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"K 折交叉验证 (K-fold cross-validation) 是一种用于评估和选择机器学习模型性能的常用技术。在 K 折交叉验证中,将原始数据集分成 K 个互不重叠的子集,称为折 (fold)。然后,模型的训练和评估会 K 次进行,每次选择其中一个折作为验证集,其余 K-1 个折作为训练集。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:42.898412200Z",
"start_time": "2023-07-17T01:43:34.272647Z"
}
},
"outputs": [
{
"data": {
"text/plain": " CV Mean Std\nNaive Bayes 0.925949 0.041148\nLinear SVM 0.940902 0.048972\nRadial SVM 0.930823 0.049198\nLogistic Regression 0.940886 0.048653\nDecision Tree 0.908244 0.041757\nRandom Forest 0.930807 0.053269\nKNN 0.938370 0.047548",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>CV Mean</th>\n <th>Std</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Naive Bayes</th>\n <td>0.925949</td>\n <td>0.041148</td>\n </tr>\n <tr>\n <th>Linear SVM</th>\n <td>0.940902</td>\n <td>0.048972</td>\n </tr>\n <tr>\n <th>Radial SVM</th>\n <td>0.930823</td>\n <td>0.049198</td>\n </tr>\n <tr>\n <th>Logistic Regression</th>\n <td>0.940886</td>\n <td>0.048653</td>\n </tr>\n <tr>\n <th>Decision Tree</th>\n <td>0.908244</td>\n <td>0.041757</td>\n </tr>\n <tr>\n <th>Random Forest</th>\n <td>0.930807</td>\n <td>0.053269</td>\n </tr>\n <tr>\n <th>KNN</th>\n <td>0.938370</td>\n <td>0.047548</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import KFold\n",
"from sklearn.model_selection import cross_val_score\n",
"\n",
"k = KFold(n_splits=10)\n",
"m = []\n",
"std = []\n",
"accuracy = [] # 存储准确率\n",
"\n",
"classifiers = ['Naive Bayes', 'Linear SVM', 'Radial SVM', 'Logistic Regression',\n",
" 'Decision Tree', 'Random Forest', 'KNN']\n",
"models = [GaussianNB(), SVC(kernel='linear'), SVC(kernel='rbf'), LogisticRegression(),\n",
" DecisionTreeClassifier(random_state=24), RandomForestClassifier(n_estimators=10, random_state=24),\n",
" KNeighborsClassifier(n_neighbors=3)]\n",
"\n",
"for model in models:\n",
" cv_result = cross_val_score(model, X, y, cv=k, scoring=\"accuracy\")\n",
" m.append(cv_result.mean())\n",
" std.append(cv_result.std())\n",
" accuracy.append(cv_result)\n",
"\n",
"result = pd.DataFrame({'CV Mean': m, 'Std': std}, index=classifiers)\n",
"result"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:43.341650900Z",
"start_time": "2023-07-17T01:43:42.906911900Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<Figure size 1500x500 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMQAAAHBCAYAAACGxWfuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABsbUlEQVR4nO3deVxUZf//8TczLC6kiJi7uOOGgmmSS6K5ZO5kpabtmuZSiuWSueSdpqllmm2WdWdpikhpZZaJyzdNrVQsV0TNBTdABZVlZn5/+OPckoCggzM4r+fjwUOZc87FZw7XnDO85zrXcbPZbDYBAAAAAAAALsLk6AIAAAAAAACA24lADAAAAAAAAC6FQAwAAAAAAAAuhUAMAAAAAAAALoVADAAAAAAAAC6FQAwAAAAAAAAuhUAMAAAAAAAALoVADAAAAAAAAC6FQAwAAOSZ1Wp1dAkAAADALSMQAwAAeTZ16lS9+OKLdm3z8OHD+uGHH/K1zZ9//qn9+/fb5eenp6fr0qVL+d5u/fr1evjhhxUbG2uXOm7Vrl27tHfv3huGljExMXb5eWvWrFFGRsYtt5OWlmb832KxaNOmTbJYLDfczmKxaNmyZTp16tR1yxISEvTLL7/oypUrt1wfAAC4MxGIAQCAPMnIyNDq1avVuHHjfG+bmJio//73v+rXr5/++eefLMu2b9+uN954I1/tTZgwQZMmTcrz+gcPHswxKFq4cKHatWuXr58vSX5+ftq9e7cWL158w3UTEhL0999/68CBA4qNjb3h16FDh7Jsf/HiRR0+fFgnT55UfHy84uPjlZiYmGWdV199VT179lRSUlKOdaxbt069e/fWr7/+KklKSUkxgrTs6ti7d6927dp1XbC0YsUKDRs2TD/99JMkKTg4WIGBgdl+vffeeznWc+nSJXXs2FErV66UJJ0+fVqDBg3KU0C6ePFijR8/XmvXrlVKSoqSk5ONffLuu+8qPDxcp0+fzrWNoUOH6qOPPsry2NatW9WxY0dt2bJFGRkZ2QZukvTAAw8oICAgX1/Tp0+/4fMCAAC3h7ujCwAAAIXD0qVLdebMGU2dOlVTp069bnmFChW0atUqFS9eXJL0999/a+HChYqNjdX+/ft19913q127djp16pQqV65sbOfu7i4PD4981TJixAgNHjxYP/30k9q3b5/rusnJyerfv7+qV6+uWbNmqVy5clmWe3p6ytPTM8ftbTabMjIyrquxfv36atOmTY61p6amysvLS9LV0WSTJk2SzWZTenq6SpQokePPO3/+vOrWrasVK1YYj/3888967bXX5OXlJTc3N125ckXdu3c3gsQ//vhDR44cUYsWLbRo0SINHz4827bbtGmjBx54QC+++KKWL1+uxMRE9e3b19gHVqtVFy5cUMmSJeXm5qa0tDSlpaVp5cqVql69uqSrAebkyZM1bNgwderUyWh74cKFatKkSZaf9+yzz8psNuf4XL/66iudOXNGQUFBkqTy5cvrscce0+zZsxUaGipvb+9st9u1a5dmzpypYsWK6fXXX9f06dNltVp11113acGCBVq2bJlMJpP69Okj6ervMDU1VZs3bzZ+17Gxsfr555/1yCOPZGn7rrvu0uHDh+Xj46NFixZp4cKFioiIUJkyZbKs5+7urrFjxxo/Q5KWLFmi4OBgBQQEXFfzgAEDcu1nAADg9iIQAwAAN5SQkKB58+YpMDBQnp6e+vjjj41lf//9t55++mlNmjTJCMMkqXr16ipfvrw6duyoRYsWqW7duho9erQk6cqVK8Zlcenp6ZKujlbKVLRoUZlMJh09elSXLl26LnTy9/fXyJEjVbVq1esuWcwcCVarVi1Jkre3txYtWqShQ4eqZ8+eioqKktlslpeXl0wmkywWi9zc3Iyfn5GRIYvFIl9fX0nS8ePH9cADD6hYsWLZhjvbt2/XsmXLsjx25coVpaena9++fZKknj17qmfPnlqxYoXGjx+v1atXq1SpUtnu5xYtWig0NDTL45nbZ3r55ZdVunRp4/s5c+aob9++6tevn3r06KEWLVronnvuua59SXrjjTc0Z84clStXTlWqVNFff/1lLNu/f7+6du2qyMhIVapU6bptN2zYoOHDh6tfv3564YUXjMdNJpNeeuml6wKfs2fPqlmzZtnWkZSUpE8//VR9+/bNEpAOHTpU33//vaZMmZLtiKrNmzfrpZdeUuPGjfXBBx+oX79+atGihV588UWdPn1ajz76qEJCQjR79mwtWrRIa9eu1YIFC5Senp6lH82fP19hYWFq3bq1kpOTjfDtrrvukiQVKVJETzzxhHbu3KlDhw5dF4iZzWa5u7sboWdsbKxmzJihp556KksglrmeyWSSycTFGQAAOAsCMQAAkCur1aoxY8YoICBAc+fOVceOHbVmzRrj8rxx48apR48eat26dZbtihQpopEjR0qSIiMjsyx7+umn9ccff2R57NpLMb///nvVqFFDb7/9tr7//vsca5s9e3a2j1epUsW4nE+SatSoocWLFys6OloeHh667777rtvm2p9frVo1rV69WpJUrlw5/fTTT0aAtnDhQgUFBSk4ONhY32az6b333lOLFi0UHBysK1eu6OLFi9f9jNatW8tms+mXX35Rx44dNXDgQPXt21ddunSRJEVHR8tqtWZ7CeeqVatUunRp3XfffUpMTFT9+vUlSd9884327dunOXPmyMfHRy+//LIGDRqkGTNmqE2bNte1c9ddd2n8+PHZ7rcbKVq0qAYPHqznn39e48ePV9GiRfXqq6/KarXqnXfeyXaEWE6Xqk6ePFlWq1VDhgzJ8nipUqX0+uuva+jQoSpfvrxeeuklY5nNZtPGjRt1//33a9KkSdqwYYNCQkKMoPLgwYOqV6+epk2bppIlS6pbt246fvy4PD09jYBTunpZ5K+//qrvvvtOx44dU9euXfXmm2+qY8eOxjqXLl3S33//rebNm+vrr79WVFSUpk2bZix3d//f22iLxaIJEyYoIyNDCxYs0IIFCyRJbm5u+uqrr4y+RSAGAIDzIBADAAC5euedd7Rjxw6tWLFC3t7eGj9+vMaNG6dKlSpp2rRpKl++vCZMmHDddomJiUpOTpaHh4dSU1OVkpKiY8eOycPDQx4eHho6dKiGDRumb775RnPmzNEvv/yi+Ph4tW7d2hhpNHXqVM2YMUPu7u5yc3PTvHnztHbt2iyXE/6bxWLJMufV+vXrFRQUJB8fH/Xo0UM2m007d+6Up6enTCaTFi1apE8//VS//PKLpKsj1q6dLN7d3V1VqlSRJH355Zf65JNP1LZtW7Vv315ubm6SpHPnzumvv/7S8uXLNWLECD3zzDPGsmv5+voqJCREP/zwgx5++GH5+flpypQpatWqlUqWLKnvvvtOderUMcKuay1fvlytWrXSfffdp6SkJPn5+WnHjh2aPHmynnnmGZ07d07nzp1TkyZN1L59ew0ePNj4t27duoqNjTUuuSxWrFiWgCivmjZtqqZNm2rfvn2KjIzUK6+8Yuyzxx9/PNttGjVqdN1jUVFR+v777zVv3jyVLFnyuuXt27fXK6+8ohkzZujYsWOaNGmSvL295ebmZvxMm82moUOH6sMPPzTC2HfffVdxcXHq0KFDlvbWrl2rJUuWqFq1aoqNjVV4eLhGjRolLy8vzZo1S5UqVZKPj48WLFignTt3SpIeffRRVatWTfXq1VPt2rVVt27dLG1e+/udOXOmtm/frm7duumtt94y9kfDhg1vas49AABQ8AjEAABArp566im1bNlSFStWlCR16tRJa9euVb9+/VSjRg0tWrQo27mRIiIiNH/+fJnNZl28eFEeHh5auXKl2rZte8ORMplhQ9GiRbM8np6enmVkTnbMZrNx6ealS5c0efJkpaWladq0aWrVqpXc3NxUpEiRHLfPDOyuZbVa9e677+r999/XY489pgkTJmQJREqXLq333ntPn332mWbMmKFff/1V06dPl5+f33Xtd+/eXaNHj9aRI0c0duxYtW/fXosWLdJDDz2k//u//9Nrr72WbV0Wi0U+Pj6SroaNmSPw2rRpo0WLFumTTz6RyWSS1WpVenq6Fi5cqFdffdW4fPPFF1+Up6enTpw4oRYtWhij63bs2KGtW7dq4MCB1/3MtLQ0Wa3WLPvLYrFo/PjxqlGjhvr16ydJ+u2333Ldn9f6v//7P40fP15dunRR7dq1deLEiWz7Q+fOnWWz2fTOO+9o27ZtmjJliu6//35juZubm9zd3bP0h9TUVI0ePVphYWHGY5kha+Z6f/zxh06fPq1x48Zp8uTJysjI0LJly7R9+3bt2LFDTZo00c8//6wPP/xQLVq0yLIvzp8/f12At337di1ZskQffvih3nzzTY0ePVqXL1+Wt7e3cYkwAABwPgRiAAAgV76+vrr33nslSUeOHNGCBQu0evVq3X///dq8ebNGjhypPn36qEWLFlnCiQEDBmjAgAGKjY3VQw89pP79+xujbp566qmbquXSpUuyWCzXzRt2rerVqxthVbFixbRixQqNGTNGAwYM0Oeff64yZcrI09PTqPXChQuyWCyKj4+XdHXkUVpamooXL24EWi+99JLWrFmjUaNGqWbNmho5cqTeffdd42emp6erT58+CgsL06xZszR37lxdvHgx20DswQcf1LRp0/T5559rwoQJ+uSTT9S4cWNNnDhRpUuXzjJX2LUsFosxX1VSUpL8/f21ZMkSlShRIseA78cffzQCqe+++06SNGbMGNlsNmOd/fv3a8mSJVkCsQceeMD4f+PGjbPcSXPGjBnatWuX3nvvPbm7u+vcuXPy8PDIdn41m82mS5cuGaHa2bNnNXz4cLVs2VI1a9a8biTXv3Xt2lVfffWVJk2apJo1a0qS3nvvPf34449yd3dXRkaGJk+eLA8PD7388svZjsrLlLmsS5cu8vf3V4MGDfTGG2/I29tb9evXV/369fXkk09Kkt5//30dPHhQly9f1r59+/Tnn39q+/bteu655zR06NAs7TZp0kRr1qxR6dKlFRcXpzfffFPu7u6aNWtWrjcUAAAAjkUgBgAAcpWYmKhffvlF3333nbZs2aI2bdooIiJCderUUVxcnD744AMNGTJEnp6eatSokQICAnTfffcZl7GtXbtW0tXg6bHHHtO4ceNuqZa//vpLDz30ULbLixQpYlzylqlkyZJ67733tGHDBjVo0EBNmzbNEohdvHhRd911lzGPl9VqVVpamvr27WvUOmnSJIWFhSk0NFRbt27Vjz/+qE2bNqlly5aSpGXLlun06dNq166d6tSpowcffDDHkWxeXl56+umnNXfuXPXv31/NmjXT3r17jQn3ixUrlu12ly9fVkpKio4fP67k5GRjxFjm5aG7du3SiRMn1KNHD8XGxur3339X165ds70L5rW1mc3m64KbZcuWqXz58kpLS8uy7JNPPtFnn30mScZotW7duiklJeW655uamiqbzSY3NzdNmDBBjzzyiPz8/LR48WL5+/vLYrGob9++io+PV7du3fTpp58ad5uUpF69eqlixYpq2LBhljnoHnjgAdWrV0/r1q3TX3/9pV69eikgIMCYyP7VV1/NdY60okWL6t5779Vvv/2mzZs3a9WqVZKuTta/cuVKxcbG6uLFi3rnnXcUEBCg2rVrq02bNho8eLDq1KlzXXvbt29XdHS01qxZI5PJpDlz5uj06dOaPHmypk+frpCQEHXv3j3HegAAgGMQiAEAgGwlJCToueee0549e1S2bFk1bdpUCxculL+/v6Srl6IVLVpUI0aM0NNPP61NmzZpz549WrFihTEpfFpampYsWaKGDRuqRIkSGjZsmCIiIuTu7q558+Zp3rx5xs+79s58OTl06JD69u2riRMnXrds7ty5WrlyZbbbmUwmhYaGGhOlZ1q/fr0GDhyo9957L8e7IUpXR8ll3vnx3nvvVcuWLfXmm28qMjJS//zzj2bNmqXhw4cbgcmN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gABHlI9/iYyMNI5LgYGBCgsL06ZNm/LdTuZx90aP3WxbN7Jz506FhYUpODhYTz31lE6dOiVJatOmjb7++mtjPZvNpmbNmumbb74xjsn79++XJM2YMUMBAQH67bff8l3znSgvx6xbabt///52bXPu3LkaM2aMXdrq37+/8bpo1qyZXnrpJSUkJNil7dvpZl+DribzOFi3bl2FhoZqxowZSktLs0vbN3teL4jXSHaufW967Rccz17n59wU9DHi2udw7devv/5aYD8TruPf71M++eQTNW/eXM8++6zatGkji8Ui6epxOLOf9+/fX717987ShrP/7VUYEYg5wOXLl7V8+fKb2vaee+7Rt99+a+eKste7d29t27ZN3333naxWq6ZPn35bfi4Kh9vZF29GTEyMZsyYodmzZ2vRokX67bfftHjxYlWuXFlVqlTRtm3bjHW3bdum6tWrq3z58pKkpKQknT17VjabTbGxsY56CshG7dq1tW3bNv30008KDQ3VsGHDlJycfMvtVqhQIUufKCiXL1/WCy+8oMcff1zff/+9ihcvrtdff12S1Lx5c23dutVYd//+/UpKSlLz5s2Nxw4ePJjlXxS8Ll266IMPPsjXNjf6w23gwIGaOHHirZZmGDlypLZu3arPPvtM8fHxevPNN+3W9u1yu16Dd4LatWtr48aNGj9+vFauXKnJkyfbpd2bPa/fzGvkZkycOFHbtm3TyJEj1bhxY23bto0+40QK6vx8O2U+h2u/7r33XofUwocEd649e/Zozpw5evPNN1WmTBmdOHFCa9euzXbdP//8U3///fdtrtC1EIg5gNls1ldffSWbzZbvbd3d3eXt7V0AVV3P09NTJUqUUPny5dW5c2ft3r37tvxcFA63sy/ejG3btql+/foKDg5WrVq1NHjwYF28eFGS1KJFi+sCsRYtWhjfm81mHThwQMeOHVNqauptrx05M5lMKlGihMqVK6dhw4YpPT09y2i/W223oMXGxur8+fN6+OGHVb58eQ0dOlRubm6SrvbL7du3G+tu375dAQEBKlOmjKT/9UvpaiBmNpsLvF5cPRcWL17crm16eXmpaNGidm2vZMmSqlu3rvr06VMo3zzfrtfgncBkMsnPz0/t2rXT1KlTFRUVpaSkpFtu92bP6wXxGslO0aJFVaJECXl5ecnd3V0lSpSgzziRgjo/306Z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ASNdHXm1fft2HTlyRJLy9YdUWlqaLly4oNjYWL377ruqUaOGfH19denSJVmtVp05c0aLFi3STz/9lKXO9u3ba+fOnVq/fn2WQKtHjx767rvvlJKSoitXrmjChAnGCLnvvvtO48aN08GDB2WxWGSz2RgW6mAZGRmKj4/P8pXfGzJcK7e+mNn3ExMTtXLlSi1evPiWP+Vv2bKlli5dqh07duiff/7RRx99lCVgaNiwoRITE5WSkmJcDnStgIAALktzcn369NHy5cuVkZFh9KGLFy/q999/17Rp04w+1KpVK8XFxWnFihU6evSo5s6dm6f2c2vzZt133336888/tWrVKp06dUpz585VmTJljEvEPT091bRpU23evDnL/GGZAgIC5OHhwSXl2cjpmNWtWzf9+eefWrp0qf755x9NnDhR7dq1k5+fn7Zv327MnRUdHa2nnnoqTz/r4MGDGjBggH7//XddvnxZbm5uWc5ZZcqUUbFixfTLL7/o+PHjeZoMOSwsTJ9//rm2b9+u2NhYffLJJ8alj3nl7++v++67T0uXLpWU+3n3k08+Uf/+/fXtt9/qxx9/vG6EWHZMJpO6deumZcuWyc3NTSdPntSTTz6pnTt3SpJmzZqlefPmGSPGMveJyWTSK6+8os8//9y4xCgvr6XQ0FClpKRo3rx5On78uN544w1VrVrV5efSsVqtOnv2rNatW6exY8fq8ccf11133aXQ0FCdOHFCu3btktls1vfff6/nnntONptNnTt31u+//67IyEidPHlS77//vkqXLp1rGCZdPS8/9dRT2rBhg5KTk2UymfL0/uyRRx7RypUr9fPPP+vQoUOaPn26Hn30UYf8Yd+jRw+tXbtWZ8+elcVi0dtvv6133nnHWJbTawQ3L6/n59zkdu6+3ceG3M4jucntvW9BnEdQOJQtW1aPPvqo5s6dm+W10LVrV911113ZbtO3b98bHq9xc9irDnbt0O4ePXqoatWqeuihh/Tee+/pscce06FDh4y78txIu3bttG7duiyXIFSuXFlvvvmm3nzzTXXp0kX79+83Pjm8kSVLlqhp06bGG5h3331XkvTCCy8oLi7OuLvUQw89lOUW7z4+PmrWrJnq16+f5UTRrVs3derUSc8//7x69+6tSpUqafjw4ZKkAQMGqHTp0urTp4969+6tBx54IEuwh9vv4MGDat26dZava3/P+ZVbX3ziiSdks9n04IMPKjIyUr169TLumHWzevfurW7dumno0KEKCwuTt7d3lomh3d3d1axZM4WEhGR7gqlTpw7zhzm5jh07ymKxKDo6Wq1atVLbtm0VFhamSZMm6dFHH9Xp06d19uxZlS1b1vhDvW/fvnmelym3Nm9WQECApk2bprlz5+rBBx/Ub7/9pvnz5xujeqWroxdLly5tXEJyrTp16qhatWpZ1sdVOR2zypUrpw8//FBffvmlevbsqWLFihnztjVs2FAJCQnq27evcaevzLt+5qZly5Z67LHH9OKLL6pjx46y2WwaNGiQsdzDw0P/+c9/NGnSJHXu3Fk///zzDdvs3LmzBgwYoPDwcD3++OO699579cwzz+R7P/Tp00crVqwwwsCczrvt27fXggUL9PDDD6thw4bq2LGjEWzlZuzYsTKZTAoLC9OIESP09NNPG5d9TJ48Wbt371bnzp01ceJEvfbaa8b7gFmzZun7779Xhw4dtHDhQk2bNu2Gb+6LFy+uTz75RJs2bVLXrl114sQJzZ8/3+X/KNi/f79atWql//znP+rdu7cx+qREiRKaP3++Fi5cqE6dOumnn37S+++/L3d3d1WqVMlY1rlzZ124cMGYGzY31atX1+jRozVp0iS1a9dOcXFxWe5snpPAwEC9+eabeuutt9SnTx/Vr19f4eHht/zcb0aTJk00bNgwvfLKK+rRo4fS09ONURi5vUZw8/J6fs5Nbufu231syO08kpvc3vsWxHkEhcfAgQN15MiRLFeDFSlSxJhH7t/Kli3L38YFxM3mapMtoEBduHBBly9f1vjx49WhQ4c8TdgKAIAjvPPOOzp16pReeukleXh46Ndff9WUKVP022+/Obq0Ate6dWtNnjxZDRs2VGpqqqZPn65y5cpdd+c0AACAOxVziMGu4uLi9Pjjj6tx48bq2rWro8sBACBH7dq10+uvv64HH3xQGRkZqlq1qiZNmuTosm6L/v376/XXX9fp06dVpEgRNWnSRE888YSjywIAALhtGCEGAAAAAAAAl+LakzAAAAAAAADA5RCIAQAAAAAAwKUQiAEAAAAAAMClEIgBAAAAAADApRCIAQAAAAAAwKUQiAEAAAAAAMClEIgBAAAAAADApRCIAQAAAAAAwKUQiAEAAAAAAMCl/D+xrFfg+3132AAAAABJRU5ErkJggg==\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box = pd.DataFrame(accuracy, index=classifiers)\n",
"box.T.boxplot(figsize=(15, 5))\n",
"plt.title('各种方法交叉验证得分箱线图')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"source": [
"值得注意的是,KNN 算法效果较好且是最稳定的(方差最小)。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:43.879564300Z",
"start_time": "2023-07-17T01:43:43.342648500Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqMAAAGxCAYAAABWab9lAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABQB0lEQVR4nO3deVgVdf//8RccwF3LfcE1k1wwUZQETUFzN3fEhbTuNDW11DK31NJyKTXT3MJs08wFt7TM1EpvE6XU6MY0yQ1D1MQNkAOH+f7hz/OTBEQDRjnPx3Vx3Z0zM595v88w3i9mOeNkGIYhAAAAwATOZhcAAAAAx0UYBQAAgGkIowAAADANYRQAAACmIYwCAADANIRRAAAAmIYwCgAAANMQRgEAAGAawigAAABMQxgFgGxis9k0evRoTZo0yexSlJSUpB9++EGXLl3KdL6TJ0/qypUruVPUPThz5kyW571+/bp27tyZLeu1Wq32/7527ZrCwsKyZVwAt3PicaAAkH0GDRqk3bt36/vvv1fJkiUznO/333+XJLm4uMjJyemO4xYvXlwPP/yw/fWpU6fk5OQkV1dX+3slSpSwv966dauGDx+u4OBgTZgwIcNxu3btqmLFiunDDz+Ui4uLoqKidP36dbm5ucnZOe3xCsMwlJSUpEKFCqlKlSqSpPj4eB0/flz58+e/Yx/JycnKly+fqlatetu04cOH69q1a/roo4/s76WkpKhRo0Z67rnnNHTo0EzHlqSxY8fqm2++0aZNm3T+/Hk988wzGc67dOlSNWrUKN1pBw8e1PDhw7V06VI9+uij2rx5s1577TV9++23Kl++/B3rAHB3XMwuAAAeRFarVW5ubre937t3b127dk0xMTG3hdHU1FSlpKTIzc1Nw4YN08WLF3Xt2jUVLFgw3bFurichIUELFixQixYt7O8/99xzOn/+vFxdXWUYhq5du6YffvhBZcuWlSStXLlS/v7++vrrrzVkyBAVL1483fHffPNN9erVS9OnT9eECRM0ffp07d27V25ubnJxcVF8fLycnJxUsGBBGYah69ev66mnntKsWbMkSceOHVPfvn2VP3/+NOH16tWrcnV1Vf78+e3vJScny8/PT/Pmzbutjnz58iklJSXNexEREUpKSlLPnj3Trf1Wy5Yt06ZNm7Ro0SK5u7vr0qVLstlsioyMvG1eT09Pubhk/H9/CxYsUKFChVStWjVJUtu2bbV48WJNmzYt3doB/DuEUQC4BxMnTtSmTZtUoECBdKc/++yzaV6npqYqISFBL774ooYNG6Zt27ZJkgICAtSyZUuNGzcu3XGmTp2qVatWydfXN8373333nf2/T506paeeesoeOMPDw3XgwAFt27ZNCxYs0Lhx47RgwYLbjnRKUp06dTR+/Hj70coPP/wwzfThw4erYMGCmj59err1Pf7444qIiND169fTBM9OnTrJ19dXr732mv29qKgoPfLII+mOY7FYbguIW7duVcmSJbVu3brb5m/YsKG8vLwkSfPnz9eiRYv03nvv2T8nZ2dn2Ww2BQQE3Las1WpN97OQbnx2P/zwgz744ANZLBb7WBMmTNAzzzyjtWvXqlu3bukuC+DeEEYB4B688sorGjZsmNzc3HT27FmtWLFCL774ovLly2ef59ixY1q/fr2GDx8uFxcXXbt2TYULF04zTosWLfTdd99p3LhxWrdunb788kt9+umn9iOlO3bskK+v722hNzY2VmvXrtWAAQMUFxenIkWKyM3NTVarVZMmTdLzzz+vUqVKadSoUerevbtefvllTZ06VUWLFr2tl6CgoH/1WYSEhGjz5s1avny5ChYsmO48YWFh6tevnz744IM0R3iPHDkiZ2dnXb16VdevX9fRo0eVL18+VahQQVu2bFHVqlV19OjRNGNt27ZNL730kj2MFilSRAsWLJCfn5+6d++uZ599VlWrVpXFYtGOHTtuq8XT01Opqam3vZ+QkKCxY8eqcePGatmyZZppjRo1UnBwsCZNmqSSJUuqWbNmd/05AUgfYRQA7sHNU/AXL17UmDFjdObMGXXr1k3e3t72ebZv367Nmzfrjz/+0Jw5c9I9Kti2bVt9+umnOnTokGrWrKmIiAh9+OGHevHFF3Xw4EGdOXMm3aOm0dHR+vDDDzVkyBBdunRJJUqUUEpKisaOHaurV6+qZcuWioqKkiRNmDBBo0ePVvv27fXss8+qb9++unz5sq5du2a/xrRMmTJprj+9G23btlVISIjGjBmj999//7bpVqtVU6dO1eOPP67mzZunmfbSSy/p+PHj9te7d+9W8+bN1b59e/vlCYUKFUqzjK+vb5rQ369fP0nSihUrdPjwYVWtWlVWq1U2m00eHh7p1nzrDUo3TZ06VXFxcVq2bFm6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gIB7qik4ODhbasjMmDFj5OHhcdsPAADA/SrPhVFJqlGjhnbt2qUJEyZo06ZNeuONN7Jl3AYNGmjjxo13vVyHDh20aNGibKkhM5MmTdL+/fs1cuRI1a9fX/v379f+/ftzfL0AAAD3Kk+GUWdnZ5UsWVItW7bU22+/rfXr1+vSpUv/elwXFxcVLlz4rpdzc3NToUKF/vX676RAgQIqWrSo8uXLJxcXFxUtWlRFixbN8fUCAADcqzwZRm/VuHFjOTk56fDhw5KkX3/9VT169FCDBg00dOhQXb161T7vTz/9pI4dO8rLy0vPP/+8zp49m2asjE7Tb9iwQQEBAapXr56ef/55xcXFpZme0Wn6b775Rq1bt5aPj4/efPNNJSUlSZLmzZunMWPGaP78+fL29pa/v7/Cw8P/9WcREBCgPXv2aPbs2fLz89Pvv/9un7Z+/Xq1atVKPj4+mj17tgzjxhOTDMNQSEiI/P391aRJE33yySf/ug4AAICb8nwYdXFx0UMPPaSLFy/qypUrGjBggJo1a6ZNmzYpMTFR06dPlyRFR0dr8ODBevbZZ/X111+raNGievPNN+84fnx8vMaNG6dRo0Zp8+bNcnFx0UcffXTH5SIiIjRmzBi9+uqrWrFihX777Te9++679uk//PCDTp06pXXr1ql+/fqaM2fOvX8It5g7d67OnTunWbNmqWLFipKk8PBwTZgwQePGjdNnn32mDRs22C9H2LBhg5YsWaLZs2dr3rx5eu+997IlGANAemw2233/86DUSd/0/W/7zi0O8Wx6JycnGYahnTt3ytXVVS+++KKcnJzUv39/jR49WpL01VdfydvbW127dpUkjR492n40NTMWi0UuLi6yWq0qUaKEFi5caD+qmJnVq1erY8eOatmypaQbNx89++yzGjdunH3cKVOmKF++fOrSpYsmTpx4r+2nUbhwYXsAv2ndunV66qmn1Lx5c0nS008/rR07dqhTp05av369AgMD5eXlJUny9/fXjh075O3tnS31AMCtjhw5osTERLPLuKOIiAizSzAFfSMn5PkwarPZFBcXpxIlSigiIkIXL15Uw4YNJUmpqamKj49XUlKSzp49qwoVKtiXK1u2rMqWLXvH8fPnz6+5c+dq0aJFevPNN1W/fn1NnDhRlStXznS5mJgYex2SVLFiRV2/ft1+ir9evXrKly+fJMnV1fWu+85IepcLxMbGKiwszB4wk5OT7Xfhx8bG6sCBA1q5cqUkKSkpyR6gASC73e/fAGKz2RQRESFPT09ZLBazy8k19O1YfVutVkVGRuba+vJ8GN23b5+cnJxUp04dnT9/XnXq1NHs2bMl3bge8tq1a3JxcVG5cuW0b98++3LHjx/XiBEjFBoaKmfnjK9miIuLU9GiRbVy5UolJCRo0qRJmjZt2h3vni9XrpxOnz5tf33q1CkVKFBADz/8sCTd041SWVGgQIHb3itbtqyCgoLUr18/SVJKSopSU1Pt07p3767WrVtLuvELmp3hGABu9aD8H77FYnlgas1O9O0YcrvXPHnNaGpqqi5cuKCdO3dq7Nix6tOnj4oUKaLmzZvrr7/+0q+//iqLxaItW7bo+eefl2EYat++vX7++WeFhoYqJiZGCxcuVIkSJTINotKNMNq/f3/9+OOPunbtmpydne1BLjM9evTQpk2b9N133+nPP//UjBkzFBgYKCcnp+z6GLKsc+fO2r59uy5cuCCbzaY5c+bovffes0/bvHmz4uPjdf36dU2cOFErVqzI9RoBAEDelCePjB49elRNmzZV+fLlFRQUpIEDB0qSihYtqgULFmjKlCkaN26cqlevroULF8rFxUXu7u5asGCBpk2bpqlTp6pRo0Z6++2377iuatWq6bXXXtPkyZN14cIFPfbYY3rrrbfuuJynp6emT5+ud955R5cuXVK7du00atSof937vfD29tawYcM0evRonT9/Xo0bN9aUKVMk3bh+9Ny5c3rhhRd07do1tWzZUsOHDzelTgAAkPc4GVm52wa4BzabTQcPHlTfdbFKTOHXDEDGapcvqs3Dm5pdxh3d/HetXr16DnXalr4dq2+r1aqIiIhc6ztPnqYHAADAg4EwCgAAANMQRgEAAGAawigAAABMQxgFAACAaQijAAAAME2e/J5R3F9qliuiJJvZVQC4n1UvnTNPnQNw/yOMIsetHuTrUN/PBuDe2FINWZxz/yl0AMzFaXrkOJvNsQ6L2mw2RUZG0reDoO/s65sgCjgmwiiQAxITE80uwRT07VgctW8A2YswCgAAANMQRgEAAGAawigAAABMQxgFAACAaQijAAAAMA1hFAAAAKYhjAIAAMA0hFEAAACYhjAKAAAA0xBGAQAAYBrCKAAAAExDGAUAAIBpCKMAAAAwDWEU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oqKMrl27Gq+88ophGHl7/86s77y8f2fWt2Hk3f07s74flP3777//NgIDA40aNWoYp0+fztL897L/Zte2JowiQ9u2bTMaNmxoJCQkGIZhGIcPHzaCgoIyXSYkJMSYMWOG/fX69euNnj17GoZhGMuWLTNat25tpKam2scfNWrUHafltuzue9WqVcbWrVvt09asWWO0atXKMAzDiImJMfz8/LK7hXuS3X1n1lte3t7/NGHCBGPRokWGYTz427t3797Gxx9/bH/9/fffG15eXoZh5O39O7O+8/L+nVnfeXn/zqzvf7pf9+9+/foZH3/8cZbD6L3uv9m1rTlNjwz9/vvvevzxx1WgQAFJkoeHh6KiojJd5tFHH9W2bdt06tQp/f3331qzZo18fX0lSUeOHNETTzwhJycnSVLdunUVGRl5x2m5Lbv77tGjh1q1amWf9/jx46pcubIk6ddff5XNZtOTTz6pevXqacSIEbp8+XIOdZa57O47s97y8va+VWxsrLZt26a+fftKevC3d1xcnMqXL29/7ezsLIvFIilv79+Z9Z2X9+/M+s7L+3dmfd/qft6/p0yZon79+mV5/nvdf7NrWxNGkaFr167J3d3d/trJyUnOzs6Z7lxPPvmkKleurKeeekq+vr5KTEzUwIED0x2vcOHCio2NveO03Jbdfd8qLi5OX375pXr37i1JOnHihGrXrq2lS5dq7dq1OnPmjGbPnp39TWVBdvedWW+Osr1XrlypDh06qFChQpIe/O1ds2ZNfffdd/bXoaGh8vPzS3e8vLR/Z9b3rfLa/p1Z33l5/87q9r6f9++KFSve1fz3uv9m17YmjCJDFotFbm5uad7Lly+frl+/nuEyW7Zs0V9//aWvv/5aYWFhevTRR/Xqq6+mO96tY2U2Lbdld9+3euONN+Tl5aXmzZtLkgYOHKiQkBA9+uijeuSRR/TKK69o69at2dpPVmV335n15gjb22azafXq1erVq5f9vQd9e48YMUK//vqrevfuraefflpbtmyxHxXKy/t3Zn3fKq/t35n1nZf376xs7/t9/75b97r/Zte2drnXwpH3FStWTH/88Uea9+Lj4+Xq6prhMps3b1avXr1UrVo1SdL48ePVoEEDXblyRcWKFdPFixfTHSuzabktu/suWrSoJGnNmjUKDw/X+vXrMxynaNGiiouLk9Vqve0f0JyWU33fdGtvjrC9w8LC9PDDD+uRRx7JcJwHbXu7u7try5Yt+vPPP/XOO++oZMmS8vb2to+XV/fvzPq+KS/u31np+6a8tH9npe/7ff++W/e6/2bXtubIKDLk6empQ4cO2V9HR0fb/6HJiM1m04ULF+yvb37Fic1mu228w4cPq0yZMumu69ZpuS27+5ZuXEv09ttva/bs2SpZsqR9vuHDh+vgwYP21xERESpVqpQp/3Bld9+Z9ZbXt7ckff3112rZsmWa5R707S3dOM1ZuHBh7dmzR6NGjcpwvLy0f0sZ9y3l3f1byrjvvLx/S5lvb+n+37/v1r3uv9m1rQmjyFDDhg119epV+1/6S5Yska+vrywWi65du6bk5OTblqlfv75WrVqlL774QuvWrdPIkSPl5eWlhx9+WAEBAfr555+1d+9epaSk6KOPPlKTJk0kKdNpuS27+75w4YIGDRqkAQMGqHbt2oqPj1d8fLwkqUaNGpo2bZoOHTqknTt3au7cuWlO++Sm7O47s97y8va+adeuXfLx8Umz3IO+vW9asGCB2rRpo9q1a9vfy8v7903p9Z2X9++b0us7L+/fN6XX9033+/6dkYx6vtf9N9u29V3ffw+Hsm3bNqNu3bpG48aNjUaNGhlHjx41DMMw/P39jW3btt02//Xr140pU6YYTZo0MWrXrm307dvXOHnypH36559/btSuXdvw8fEx/P39jfPnz2dpWm7Lzr6XLVtm1KhR47YfwzAMq9VqjB071vDy8jJatmxpzJs3z0hOTs69Rv8hO/u+U295dXsbhmGcPHnSqFmzpnHt2rU0yz3o29swDOPEiRNG/fr1jb/++uu2aXl1/zaMjPvOy/u3YWTcd17evw0j89/zB2X/Ngzjtq92yqzne91/s2NbOxlGFh41AocWGxuriIgI1a9fX8WLF//X4508eVJRUVFq1KiRChcunOVpuS27+35Q5GbfbG/zsX+zvXMK2/vBc6/777/d1oRRAAAAmIZrRgEAAGAawigAAABMQxgFAACAaQijAAAAMA1hFAAAAKYhjAIAAMA0hFEAAACYhjAKAAAA0xBGAQAAYJr/AxIwv0CuwQYXAAAAAElFTkSuQmCC\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"result['CV Mean'].plot.barh()\n",
"plt.title('交叉验证平均得分')\n",
"plt.xlim(0.8, 1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"source": [
"综上,认为对于该任务,线性 SVM 和 Logistic 回归的准确率最高,但除了决策树,其他几种算法的准确率都差别不大。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### 混淆矩阵"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"混淆矩阵 (confusion matrix)是用于衡量分类模型性能的一种常见工具。它以表格形式展示了模型在预测过程中真实类别和预测类别之间的各种组合。\n",
"\n",
"混淆矩阵的结构是一个 $2\\times 2$ 的矩阵(对于二分类问题),包含以下四个条目:\n",
"\n",
"真正例(True Positives,TP):模型正确地将正例预测为正例的数量,位于左上角。\n",
"假正例(False Positives,FP):模型错误地将负例预测为正例的数量,位于右上角。\n",
"假反例(False Negatives,FN):模型错误地将正例预测为负例的数量,位于左下角。\n",
"真反例(True Negatives,TN):模型正确地将负例预测为负例的数量,位于右下角。\n",
"\n",
"下面作出各种方法的混淆矩阵。"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:57.747681500Z",
"start_time": "2023-07-17T01:43:43.898242800Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<Figure size 1000x1000 with 9 Axes>",
"image/png": "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WeuRNWtWPfPMM1q7dq0kad26dSpZsqTjV9V+/fVXWZalnj17Ours3r27JDnqbNy4sZydndW4cWO9++67WrdunSpVqqTs2bOnaD0A3Fn58uUT3AuSO3duxyViJ06cUGxsrKpVq+b4nH766ac6f/684zLWevXq6dy5c+rbt68CAwM1duxYRUVFJVrOc88995/Cy+28vb01Z84cvfvuu9q/f7+++OILx7gaNWooODhYly5d0sGDBxNd4iH98y0pBxnAvY0bN04rVqzQk08+qerVq6t+/fqOcWXLllXx4sU1btw4tWrVSrVq1VJcXJzjs3/mzBk9+eSTypcvn2OeSpUqpWj5qXG8lFz58+fXkCFDtGDBAkVGRjq+bJVu9hbLsrR3717t3btX1atXl5OTU4L5PT09denSJW3fvp3ech8IMA+B0qVLq0KFCgn+JowkTZgwQX369JGrq6u6deumzZs3p/i1AwICdOnSJZ08eVLbtm1TsWLFEtybIklvvPGGVq5cmeDRoUOH/7w+hQsXliSFhIQkez2aN2+uffv26eLFi1q/fr2effbZRNN8/PHHieq8dZBTrFgxbdy4UW+88YYyZ86sadOmqXHjxgmuzwdwfzw8PO46Pn/+/Ik+oytXrlTGjBkVHx+vF154QTNnzlSxYsU0ZMgQzZw5M8nX+a83tf7yyy9q3rx5gr9B0bFjR5UsWVJHjx51DLsVWObOnavr168nusRDunmQcfr0aZ05c4aDDOAeihQpojJlyqhr165av359gi9Bv/jiC3Xu3FlRUVHq1KmT1q9frwIFCjjG37hxI9EZ0JRePZEax0v30rJlS61cudLxvHz58mrRokWCM0V58+aVl5eXduzYoQMHDiT55UjOnDmVL18+bd68md5yHwgwD4n27dvrr7/+SjBs8eLFevHFFzVo0CA1atToP13L6erqqoCAAG3ZskXff/+94+yLdPMSswIFCig8PFylS5d2PJYsWaKffvrpP6/Lb7/9Jkl6/PHHk70e1apVU968eTV58mSdOXMmwR96KlmypKSb19jfqjFPnjz65JNPHCFpyZIl2rt3rxo3bqzBgwdryZIlunjx4gP5GUcgvbrbQUXJkiV16dIlPfHEE47PaXh4uD799FPFxcXp119/1YEDBzRq1Cj17NlTtWvX1sWLF1O1vjx58ig4ODjBT9PHx8fr6tWr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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.model_selection import cross_val_predict\n",
"\n",
"fig, ax = plt.subplots(3, 3, figsize=(10, 10))\n",
"\n",
"y_pred = cross_val_predict(GaussianNB(), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[0, 0], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[0, 0].set_title('Naive Bayes')\n",
"\n",
"y_pred = cross_val_predict(SVC(kernel='linear'), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[0, 1], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[0, 1].set_title('Linear SVM')\n",
"\n",
"y_pred = cross_val_predict(SVC(kernel='rbf'), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[0, 2], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[0, 2].set_title('Radial SVM')\n",
"\n",
"y_pred = cross_val_predict(LogisticRegression(), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[1, 0], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[1, 0].set_title('Logistic Regression')\n",
"\n",
"y_pred = cross_val_predict(DecisionTreeClassifier(random_state=24), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[1, 1], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[1, 1].set_title('Decision Tree')\n",
"\n",
"y_pred = cross_val_predict(RandomForestClassifier(n_estimators=10, random_state=24), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[1, 2], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[1, 2].set_title('Random Forest')\n",
"\n",
"y_pred = cross_val_predict(KNeighborsClassifier(n_neighbors=3), X, y, cv=10)\n",
"sns.heatmap(confusion_matrix(y, y_pred), ax=ax[2, 0], annot=True, fmt='2.0f', cmap='Blues', cbar=False)\n",
"ax[2, 0].set_title('KNN')\n",
"\n",
"ax[2, 1].axis('off')\n",
"ax[2, 2].axis('off')\n",
"\n",
"plt.subplots_adjust(hspace=0.3, wspace=0.3)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"source": [
"根据混淆矩阵中的这些值,可以计算出多个性能评估指标:\n",
"- 准确率 (accuracy)$\\frac{\\text{TP}+\\text{TN}}{\\text{TP}+\\text{TN}+\\text{FP}+\\text{FN}}$。直观的解释是,混淆矩阵的迹越大,该模型的预测准确率越高。\n",
"- 召回率 (recall):表示实际为正例的样本中,模型预测为正例的比例,计算公式为$\\frac{\\text{TP}}{\\text{TP}+\\text{FN}}$。召回率衡量了模型对正例的识别能力。\n",
"- 精确率 (precision):表示模型预测为正例的样本中,实际为正例的比例,计算公式为$\\frac{\\text{TP}}{\\text{TP}+\\text{FP}}$。精确率衡量了模型预测为正例的准确性。\n",
"\n",
"结合上面的结果综合评价,认为对于该任务,线性 SVM 和 Logistic 回归的准确率最高,但除了决策树,其他几种算法差别不大。"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 特征重要性"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"下面将各特征按重要性从大到小排列。"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-17T01:43:58.156675100Z",
"start_time": "2023-07-17T01:43:57.755786700Z"
}
},
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAGxCAYAAABGJTP8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+80lEQVR4nO3de1iUdf7/8RcMB1HUzSMqZqaJ6WJoHjIPKZ7NFE2TVjusibb6Uy87kJgp5Vk30zDyQFnZWTe1bNdy1Uy3tGzTWDFsyzOKmmdAZpi5f3/4ZVYEAb2HGRiej+viirkPn3m/Z+aWV/d9z337GIZhCAAAADfF19MFAAAAlGWEKQAAABMIUwAAACYQpgAAAEwgTAEAAJhAmAIAADCBMAUAAGACYQoAAMAEwhQAt3I4HJ4uAQBcijAFwK1mzZqlCRMm3PB6y5cv16BBgwqc98ADD2jVqlVFjrF06VKlp6ff8HPnys7O1qVLl/JNNwxDaWlpNz3u1axWq86dO5dv+vnz53Xp0iVlZ2cX6+fy5cu6ePFivnodDocyMjIItYAL+Xm6AADlR05OjjZs2KCYmJgbXtfHx0f+/v7Ox1arVX5+fvL19XX+SJLNZpPdbleFChXyrP/3v/9dCxYskCQ98sgjyszMlL+/v3x8fPI9l91ul8PhUPXq1fNM3717t0aOHKlVq1apadOmzumHDx9W7969tWDBAvXp06fA+rOzs/Xf//5XWVlZys7OVkZGhs6dO6dz587p999/1/Hjx3XgwAEdOHBAzZs318qVKxUQEOBcPzo6WocPH85Tc2ZmpgIDA2WxWJSTk6OcnBxn34ZhyGq1auDAgZo5c6ZznAMHDqhv37767LPP1KRJk3x1TpgwQaGhoXr22WcL7ANAfoQpAG7z8ccf69SpU5o1a5ZmzZqVb37dunW1fv16VapUyTntqaeeUrdu3eTn56egoCDn9KlTp2rNmjXOx5MnT9bkyZMlSa1atdIHH3zgnHfixAm99NJL6tWrl0aPHq1Vq1ZpypQphdbasGFDbdiwIc+0X375RdWqVVNYWFie6f/6179UqVIlde7c+brj+fr66oUXXpDNZlPVqlVVpUoVValSRV988YXatm2rjh07qk+fPqpRo0a+ECddCYPXBr/w8HAtWbJE9957r1atWqVVq1bp448/zrPMtbdfzQ2kVwfT6dOnq2bNmnryySeVnZ0tm81WyCsD4FqEKQBucebMGS1evFjh4eEKCAjQ8uXLnfNSUlL05z//WfHx8XmClCRt375dPXv2zDdebniyWCwaPny4hg4dqgceeEAOh0M5OTl5njcmJka1atXS7NmzJUn9+/dX7969nXu2EhMT9emnnzrDk91uzzPGxYsXlZGRof/85z9q06aN81BhlSpVVLFiRX366adq1KiR/vnPf+apsWfPngoKCtKZM2d0/vx5vfrqq/n62L59uyIiItS1a9c809PT02W1WlW/fn0FBATIx8dHVqs1X9DJ3ctltVqdh/ByBQQE5AlNWVlZzsf/+c9/9Pvvv6t169basWOHHn30UUlXQp/FYpF05ZCg1WrNt5cPQF4+xrX/2wIALuZwOPTkk0/KZrMpISFBvXr10jPPPKOBAwfq3LlzGjJkiNq1a6cZM2bkWe/UqVPq2LGjoqOjdfToUR08eFB9+vRR586d1bZtW+dygwYN0vDhw/OdU+VwODRo0CCdPHlSq1ev1v79+1WpUiW1adMmz3IJCQlas2aNNm/eXGD9CxYs0NKlS/NNnz59utq0aaPevXuradOmzhBis9m0f/9+bdu2TbVq1dKbb76pJUuWyM/PL9/epTNnzqhixYr5AovD4VB2drbWrVun+vXrS5L++te/5gmhRZk6daqGDRvmfNyyZUvNnj1bEyZM0IgRI/Tjjz9qxYoVuvvuu2W32wsco169etd9XQBcwZ4pACVu4cKF2r17t9asWaPg4GBNmTJFkydPVmhoqGbPnq06depo6tSp+dZLSUlRQECAkpOTdebMGV24cEFff/21GjRooNtuu01BQUHy9fV1nh+Uu1fGZrPJx8dHVatW1ZQpU2SxWFSjRg09+uijqlChgtasWZNnj01RAgIC1LZtW61cudI5LTIyUgEBAVqxYoVatGiR5wT4w4cPq0ePHgoMDJQkjRgxQiNGjChw7M6dO+svf/mLHn744SLrCAwMzFNHeHi4li5dWuBhvtz6cv3+++/KzMxUaGioJKlv375auXKlPvzwQ1WtWlWffvqpJCkuLk6hoaEaO3Zsvr18AApGmAJQ4h5//HF17NhR9erVkyT16dNHmzZt0vDhw9WoUSO9++67ef7w5/rxxx91zz33aPny5Xrrrbf01Vdf6a233tKJEyfUqVOnPMtOmzZN06ZNcz5+4IEH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U3Z2ts6dO6eaNWsqMjJSy5YtU4sWLSRJDz/8sC5duqSNGzfqo48+0qpVq5SQkKDu3bs7x82tOffyDd26dZOvr2++vYa532y02WyKjY3VE088UeDrCoAwBcCNNmzYoOrVq9/Uvd6sVmue8HK106dPKykpSffdd5+6dOlS4DI5OTmy2Wxat27dDT937h6eqy1atChP+AsLC1NaWpruuOMOjR49Os/tbnr16qWUlJQbft6rDRkyRBUrVtStt96q22+/3Xm9rGsFBwdr4MCBGjhwoNLT0/MF1NxAmhum9u7dW+jhV8MwTF0sFCgPuDcfgDLPbrfL19c3333vAMAdCFMAAAAmFHzDKQAAABQLYQoAAMAEwhQAAIAJfJuvhDkcDuXk5HByLAAAZYhhGHI4HPLz88t3rbdrEaZKWE5OTrEvKggAAEqX8PBwBQQEFLoMYaqE5abZZs2aFflmlHV2u13JyckKDw/Pd5Vnb1Se+qVX70Sv3oleXTt2UXulJMJUics9tGexWLz+Q52rPPUqla9+6dU70at3olfXKM4pOpyADgAAYAJhCgAAwATCFAAAgAmEKQAAABMIUwAAACYQpgAAAEwgTAEAAJhAmAIAADCBMAUAAGACYQouFRQU5OkS3Ko89Uuv3olevVN56tXf39/TJcjHMAzD00V4M7vdrt27dysiIqLcXNYfAAB3seXY5eujErk3X3H/fnNvPjd57m97tO9EhqfLAADAazSuFaxF0S1lt9s9Wgdhyk1+O5WhvWkXPF0GAABwMc6ZAgAAMIEwBQAAYAJhCgAAwATCFAAAgAmEKQAAABMIUwAAACYQpoph586dioyM9HQZAACgFCrTYSoyMlI7d+684XkAAACuUqbDFAAAgKe5NExt375dffr00V133aXo6GgdPnxYCQkJGjlypIYPH667775bEydO1KVLl4o13pdffqlevXopIiJCjzzyiNLT0yVJTzzxhMLCwnTs2DE9+uijCgsL07Jly4qcV9iYkvTtt9/qgQceUMuWLTVy5EidOHEiX02ZmZkaNGiQEhISzLxUAADARRwOh+x2u8t/isulNzru0KGDRowYofvvv1+JiYm6dOmSGjZsqMWLF2vu3LmKiIhQbGysWrRooSlTphQ61rlz59SxY0fNmDFD9957r6ZPn65q1arpxRdfVGZmpnJyctS/f39NmzZNd999typUqKCAgIBC5xU25tGjR9WvXz9NnTpV9957r+bNm6fLly8rMTFRO3fuVFxcnDZu3KixY8eqRo0amjFjRrFek9wbJc7ckal/H+F2MgAAuErzulX0+fhOSklJUVZWVok8h9tvdBwYGCir1arg4GC9+OKLcjgcSkxMVKtWrRQVFSVJiomJ0ezZs4sMU5UqVdJXX32lSpUq6T//+Y9sNpsOHjwoSapYsaIkydfXVxUrVlSVKlWc6xU2r7Ax169fr9atW2vQoEGSpNjYWO3bty9PTTNnztTOnTv1zTff3PRrBAAAXOuOO+6Qr69rz1yy2+1KTk4u1rIuDVMLFizQokWLtGzZMoWFhWny5MmSpDp16jiXqV27tk6fPl3kWIZh6OWXX9bGjRvVuHFjBQcHy+FwmKqvsDFPnDihevXqOZcNCQlRSEiI83FaWpp++ukntWjRQh9//LEee+wxU7UAAADX8PX1LXLvUYk+v6sGyszMVFZWllasWKGdO3eqdevWev755yVJx44dcy6XlpammjVrFjne+vXr9d1332nr1q368MMP1bVr13zL+Pj46HpHKQuaV9iYderU0dGjR52PDxw4oKioKGfYqly5spYtW6ann35aS5YsKfZ5XwAAwLu5LEw5HA6NGjVK69at09mzZ+Xr6+sMIrt379aaNWt08OBBJSUlqWfPnkWOl5mZKUk6f/68tm7dqtdffz1fOGrQoIG2bdumkydP6ttvvy1yXmFj3n///frhhx/0ySef6Pjx43r99ddVvXp1527DypUrq1q1amrRooUiIiK0fPlyE68WAADwFi4LU8HBwZo/f76WLFmiHj16aMuWLYqPj5ckde3aVWvXrtWDDz6oW2+9VWPHji1yvKioKN12223q27evXnvtNQ0dOlS//fabsrOzncvExsZq27Zt6tatmxYvXpxn/YLmFTZmaGioEhMTtWLFCt1///26cOGCZs2aVWBtEyZM0DvvvKOTJ0/e5KsFAAC8hUu/zVeQhIQEHTt2THPmzCnJpym1+DYfAAAlI/fbfHa73eXnTOX+/Xb7t/luRFpamvr371/gvHvvvVevvvqqmysCAAC4cSUepsaNG1fg9Fq1amnt2rUFzqtQoUIJVgQAAOA6Htsz5efnp9DQUE89PQAAgEtwbz4AAAATCFMAAAAmeOwwX3lze81Kyi7+PRMBAEARGtcK9nQJkghTbjP3wbs8eql7AAC8kS3HLl8fz9bAYT43sdu9f7eU3W5XSkpKuehVKl/90qt3olfvVN563Zey19NlEKbgWllZWZ4uwa3KU7/06p3o1TuVp15tNpunSyBMAQAAmEGYAgAAMIEwBQAAYAJhCgAAwATCFAAAgAmEKQAAABMIUwAAACYQpgAAAEwgTAEAAJhAmAIAADCBMAUAAGACYQoAAMAEwhQAAIAJhCkAAAATCFMAAAAmEKYAAABMIEwBAACYQJgCAAAwgTAFAABgAmEKAADABMIUAACACYQpAAAAEwhTAAAAJhCm4FJBQUGeLsGtylO/9Oqd6BUwz8/TBZQXFovF0yWUOIvFombNmnm6DLcpT/3Sq3eiV9exOwxZfH1KbHyUboQpN3nub3u070SGp8sAALhY41rBWhTd0tNlwIMIU27y26kM7U274OkyAACAi3HOFAAAgAmEKQAAABMIUwAAACYQpgAAAEwgTAEAAJhAmAIAADChVIWpnTt3KjIystjL//zzz4qKilJ4eLh69uwpm81WgtUBAADkV6avM/Xaa68pIiJCSUlJOnbsWLm4yjgAAChdynSYOnfunLp27aoaNWqoRo0ani4HAACUQzccprZv366ZM2cqLS1Nd955p+bNm6d169Zpz549unz5svbt26fOnTtr+vTpCg4OLnK8VatWKSEhQQ6HQ1FRUXnmff3115o/f76OHz+uXr16adq0aQoICNDUqVP10UcfSZK+++47xcXFaejQoXrppZckSWvXrlViYqLOnz+voUOHauLEifLx8dGkSZMUEhKi8+fPa+3atapTp44SEhLUqFEjGYahuXPnas2aNXI4HBowYICef/55+fj4yGaz6ZVXXtGnn36qgIAAPfPMM+rbt++NvnQAAC9mt9s9XYKk/9VRWuopSSXZ642MecNh6rnnntOIESN0//33KzExUQsXLlTDhg21bds2zZ07VxEREYqNjdXChQs1ZcqUQsf6+eef9dJLL+mVV15R/fr1NWbMGOe8w4cPa8yYMYqPj1fbtm01fvx4JSUlacyYMZo8ebKeeeYZjR49Wv369dMDDzyggIAASdKuXbs0ZcoULV68WHXr1lVMTIwaNWqkAQMGSJI++ugjDRo0SJ999pni4uK0dOlSzZs3T9u2bdMnn3yid955RxaLRTExMbrvvvvUqVMnLVu2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KleurM2bN+v06dOqXLmyp0sCAADlTJkOU+fOnVPz5s1Vo0YN1ahRw9PlAACAcqhUhKktW7Zo1qxZunDhgoYPH+6c/tNPP2n69On67bff1L59e82ePVuVK1fWsmXL9PLLLzuXW7x4sTp27Kg33nhDkvT1119r/vz5On78uHr16qVp06YpICBACQkJOnbsmEJDQ517tebPn6/WrVtLkt544w2tWLFCmZmZ6tKli+bMmaOAgAAZhqE33nhD7733nmw2m2JiYvTYY4+590UCABSb3W4v8PG1070Rvbp27OLwMQzDcHkFN+D06dPq3r27Jk+erHbt2unpp59WcnKyvv/+e/Xo0UOPPPKIBg0apBdeeEEhISGaOXOmrFarLl++rBdffFF16tTRqFGj5Ofnp4oVK+rw4cPq27ev4uPj1bZtW40fP149e/bUmDFjlJCQoPfff1+dOnXSuHHjtHDhQp04cULvvfeefv31Vz3wwAN6++23VatWLT311FMaMmSIoqOjtXbtWs2aNUtLly6VJI0YMULLly93hrDC2O127d69WzN3ZOrfR7idDACUpOZ1q+jz8Z2UkpKirKwsT5cDLxARESGLxVLoMh7fM7Vt2zbVr19fDz30kCRp3LhxGjVqlLZs2SJ/f3+NHTtWPj4+evzxxxUbGytJCggIUEBAgPz9/RUYGKgqVao4x1u/fr2aNWumwYMHS5Kio6O1evVqjRkzRtKVu6RPnz5dgYGBGjhwoKZOnSpJCgwMlCRZrVbVqVNHq1atco65du1aPfTQQ2rZ8srNM7t27arNmzcXK0wBANzv2i8y2e12JScnKzw8vMg/jGUdvbp27OLweJg6deqUQkJCnI/r168vSUpPT9eZM2fUpk0bSZLD4VBGRoays7Odwacg6enpSklJcQYdu92uihUrOudHREQ41/f393dODw0N1YwZM/Tyyy/rwIED6tSpk6ZNm6bq1asrPT1dP/74oz788ENJUnZ2trp37+6iVwAA4GrX+8NqsVi8PmDkolf38XiYqlatmk6ePOl8nHt5g5CQEP3xj3/UggULJEmGYejSpUvy8yu85JCQEEVGRjr3Yjkcjjy7eoODgwtc78SJEwoLC9Mnn3yi8+fPa8KECUpMTHQeXhw8eLB69eol6creq6uDGAAAKL88fp2pTp066cCBA1qzZo0OHz6shIQESVKXLl2U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rMcee0zt2rWTJI0bN06vvfaaM0yFhITo2WeflST169dP69evv5GXDSgRuXtf3cFutys5OVnh4eGyWCxue15PoFfvRK/eqSR7zR27OG4oTN16663avXu3brnlFh08eFCNGzfW999/r5SUFOehO7vdrooVKzrXiYiIcJ6n5O/v75yenp6unTt3Otez2Wz5/jg88sgj+Wo4e/asJk2apP3796tFixaqUKGC6RPKjx8/rvr16zsf169fXydOnHA+btu2rfP3q3sAPMkT/0haLBav/8c5F716J3r1Tp7u9YbC1B133KEZM2bohRde0LBhw9S0aVOFhIQoMjJSsbGxkiSHw5Hn0EPunqJrhYSEKDo6Wo899pgkKScnJ18oyj20d7WEhARVr15dO3bskI+PjyZMmJBnvq/vlas9GIbhPP+qKHXq1NGRI0ecjw8fPqw6deoU2QMAAECxrzN15MgRff/99/rggw+0ceNGxcXFSbpy2GvXrl06dOiQJOmdd95xzitMVFSUNm3apNOnT8tut+uVV17RwoULi1wvMzNTDodDp06d0rvvvquNGzfKMAzn/Jo1a6pixYravHmzjh07pt27dxc55tChQ/X222/ru+++U0pKihYvXqzo6Ogi1wMAACj2nql69eqpRo0aeuSRR3Tx4kX5+fkpKipKL730kubMmaM5c+boyJEjatGihRYsWFDkeK1bt9a4ceMUGxurU6dOqX379po+fXqR640ZM0bPPvus+vTpow4dOqhv375KSUlxzvf399eMGTMUHx+vixcvavjw4Xm+zVeQnj176uTJk3ruuedks9k0dOjQAg8xAgAAXMvHuHq3TiFWrVqlDRs2aMaMGapQoYJ+/vlnjRo1St9++y2HwQqRe6L8zB2Z+veRC54uB16ged0q+nx8J7c+Z+7nOCIiwuvPwaBX70Sv3qkke72RsYu9Z+qee+7R+vXr1a9fP2VnZ6tevXqaNGkSQQoAAJRrxQ5T9evX19tvv12StQAAAJQ55e5GxwAAAK5EmAIAADCBMAUAAGDCDV20Ezfv9pqVlO3995yEGzSuxZc+AKA0IUy5ydwH7/L6r6jCfewOQxbf4l3hHwBQsjjM5yZ2u/fvlrLb7UpJSSkXvUqe7ZcgBQClB2EKLnX1fRnLg/LWLwAgP8IUAACACYQpAAAAEwhTAAAAJhCmAAAATCBMAQAAmECYAgAAMIEwBQAAYAJhCgAAwATCFAAAgAncm6+EGYYh6cqtR7z9Niu5/Xl7n7nKU7/06p3o1TvRq2vHzv07XhgfozhL4aZZrVYlJyd7ugwAAHATwsPDFRAQUOgyhKkS5nA4lJOTI19fX/n4cHNaAADKAsMw5HA45OfnJ1/fws+KIkwBAACYwAnoAAAAJhCmAAAATCBMAQAAmECYAgAAMIEwBQAAYAJhCgAAwATCFAAAgAmEKQAAABMIU8Wwf/9+Pfjgg2rTpo3mzp1brPv0fPfdd+rTp4/atWunFStWuGSeO7i6148++kgdO3ZU8+bNNWLECJ08edI578knn1RYWJjz5/HHH3d1O0Vydb+F9eRN721CQkKePnN/du7cKcnz7+3N9CpJhw4dUtu2bfNN97ZtVrp+r6V5m3V1r962vUoF9+qN22thn1OPbK8GCpWdnW107drVeOGFF4xDhw4ZMTExxurVqwtd5/fffzdatWplJCQkGAcOHDAGDhxofPvtt6bmuYOre/3++++N9u3bG//617+M48ePG3/605+Mp556yrluhw4djNTUVOP8+fPG+fPnjYyMjBLt71qu7tcwrt+Tt723ly9fdvZ4/vx5Y9++fcY999xjXLhwwTAMz763N9OrYRjG4cOHjZ49expNmjTJM93btlnDuH6vpXmbdXWvhuFd26thXL9Xb9teC/ucemp7JUwVYePGjUabNm2MzMxMwzAMY9++fUZ0dHSh66xYscLo1auX4XA4nGM8/fTTpua5g6t7/fjjj40vvvjCuezq1auNnj17GoZhGMePHzc6dOhQEm0Um6v7Lawnb3tvrzVlyhRjyZIlhmF4/r29mV4NwzD69OljLF++PN8fIm/bZg3j+r2W5m3W1b162/ZqGNfv9VplfXst7HPqqe2Vw3xF+Pnnn3XXXXcpKChIkhQWFqZff/210HVSU1N1zz33OG9s3KJFC6WkpJia5w6u7nXIkCHq2bOnc9kDBw6oQYMGkqSffvpJdrtdnTt3VkREhCZOnKjz58+XRFvX5ep+C+vJ297bq6Wnp2vjxo0aPny4JM+/tzfTqyQtXbpUvXv3zjfd27ZZ6fq9luZt1tW9etv2Kl2/16t5w/Za2OfUU9srYaoIly5dUmhoqPOxj4+PfH19C/2wXbtOcHCw0tPTTc1zB1f3erWzZ8/qo48+0p/+9CdJ0sGDB9W8eXO98cYb+tvf/qZjx45pwYIFLuymaK7ut7CevPm9/fDDD9WvXz9VqlRJkuff25vpVZLq169frPHK+jYrXb/Xq5W2bdbVvXrb9ioV7331lu0117WfU09tr4SpIlgsFgUEBOSZFhgYqMuXLxd7nauXv9l57uDqXq/24osvqmXLlurSpYskadSoUUpKStIdd9yhRo0a6ZlnntEXX3zhmkaKydX9FtaTt763drtdq1at0sMPP+yc5un39mZ6vZHxyvo2W1ylbZt1da/etr0Whzdur9d+Tj21vRKmilC1alWdOXMmz7SMjAz5+/sXe52rl7/Zee7g6l5zrV69Wrt27dKsWbOuO06VKlV09uxZWa3Wm6z+xpVUv7mu7slb39udO3fqlltuUaNGja47jrvf25vp9UbGK+vbbHGUxm22pHrNVda31+Lwtu21oM+pp7ZXwlQRwsPDtWfPHufjo0ePOje24q6zb98+1a5d29Q8d3B1r9KV4/GzZs3SggULVKNGDef08ePHa/fu3c7HycnJqlmzZr7/QylJru63sJ688b2VpH/84x/q3r17nmmefm9vptcbGa+sb7NFKa3brKt79bbttTi8aXu93ufUU9srYaoIbdq00cWLF7V27VpJ0rJly3TvvffKYrHo0qVLstls+daJjIzUDz/8oB07dignJ0dvvvmmOnbsaGpeWez19OnTevLJJxUTE6PmzZsrIyNDGRkZkqQmTZpo9uzZ2rNnj7Zs2aJFixbl2fXsDq7ut7CevO29zbVt2za1a9cuzzRPv7c302thvG2bLUxp3mZd3au3ba/F4S3ba2GfU49try75TqCX27hxo9GiRQujffv2Rtu2bY39+/cbhmEYXbt2NTZu3FjgOu+++67RvHlzo127dkbXrl2NU6dOmZ7nDq7sdcWKFUaTJk3y/RiGYVitViMuLs5o2bKl0b17dyMhIcGw2WzuafIqruy3qJ686b01DMM4dOiQceeddxqXLl3Ks05peG9vplfDMIwjR44U+LVyb9tmDaPgXkv7NuvKXr1xezWM63+GvWl7Lexzahie2V59DKOYl1Ut59LT05WcnKxWrVqpWrVqxVrn0KFD+vXXX9W2bVsFBwe7ZJ47uLrX0s6d/Xr6dSpP7+3N9FoYb9tmyyp39sr76j5lfXslTAEAAJjAOVMAAAAmEKYAAABMIEwBAACYQJgCAAAwgTAFAABgAmEKAADABMIUAACACYQpAAAAEwhTAAAAJvx/n/wgs0IghcIAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model = RandomForestClassifier(n_estimators=10, random_state=80) # 随机森林\n",
"model.fit(x_train, y_train)\n",
"pd.Series(model.feature_importances_, x_train.columns).sort_values(ascending=True).plot.barh()\n",
"plt.title('各特征的重要性')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"可见,特殊攻击 `sp_attack` 和特殊防御 `sp_defense` 是决定宝可梦是否是传说级别的最重要的特征。\n",
"\n",
"而世代 `generation` 则是最不重要的特征。"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.9"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "319.977px"
},
"toc_section_display": true,
"toc_window_display": true
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"oldHeight": 122.81251800000001,
"position": {
"height": "39.9884px",
"left": "1330.02px",
"right": "20px",
"top": "120px",
"width": "249.988px"
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"varInspector_section_display": "none",
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}