分析项目介绍
通过决策树算法来对旅游酒店的档次分类进行识别,并可视化决策树运行流程图以及展示各个各个变量对分类的重要性。
一、数据集介绍
样本数据共25个特征,第一个变量是样本名,最后一个字段是特征分类,共三个分类:高、中、低,全字段名如下表所示:
序号 | 变量名 |
---|---|
1 | 民宿 |
2 | 距离居民点(公里) |
3 | 距离中心城市(50公里/h) |
4 | 距离火车站(50公里/h) |
… | … |
… | … |
23 | 有无村卫生室 |
24 | 垃圾处理率(%) |
25 | 污水处理率(%) |
26 | 民宿档次 |
二、代码实现
1.导包并加载数据
注意:graphviz包是一个可视化决策树的包,通过anaconda下载后还需要在官网上下载msi文件进行安装,并将该软件加入系统的环境变量中。下载路径如下,不懂环境变量配置须另寻相关资料
https://www2.graphviz.org/Packages/stable/windows/10/msbuild/Release/Win32/
并注意该代码最后三行是为了解决matolitlib中文乱码的所添加的代码.
import sklearn
from sklearn.model_selection import train_test_split
from sklearn import tree
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import export_graphviz
import graphviz
import pydotplus
data=pd.read_csv('D:/民宿分析.csv')
#解决matplotlib中文乱码问题
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
2.数据预处理
data变量数据如下,在建模前,我们需要对数据进行预处理将数据的训练特征与分类特征提取出来,对于二分类变量进行0-1编码,由于是三分类问题,我们分类特征也进行0-1编码两两配对进行三次建模.
该思路代码如下所示:
在数据预处理中将[‘民宿档次’]==‘高‘ 改为低,或者中,则将整个分析改为该类别的识别。
#1数据预处理
for i in range(data.shape[0]):
if(data[<