288 lines
46 KiB
Plaintext
288 lines
46 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 机器学习100天——第25天:决策树(Decision Tree)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第1步:导入需要用到的python库"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import pandas as pd"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第2步:导入数据集"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"dataset = pd.read_csv('../datasets/Social_Network_Ads.csv')\n",
|
||
"X = dataset.iloc[:, [2, 3]].values\n",
|
||
"y = dataset.iloc[:, 4].values"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第3步:将数据集拆分为训练集和测试集"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"source": [
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第4步:特征缩放"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/home/ymao/usr/miniconda/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
|
||
" warnings.warn(msg, DataConversionWarning)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"sc = StandardScaler()\n",
|
||
"X_train = sc.fit_transform(X_train)\n",
|
||
"X_test = sc.transform(X_test)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第5步:对测试集进行决策树分类拟合"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"DecisionTreeClassifier(class_weight=None, criterion='entropy', max_depth=None,\n",
|
||
" max_features=None, max_leaf_nodes=None,\n",
|
||
" min_impurity_decrease=0.0, min_impurity_split=None,\n",
|
||
" min_samples_leaf=1, min_samples_split=2,\n",
|
||
" min_weight_fraction_leaf=0.0, presort=False, random_state=0,\n",
|
||
" splitter='best')"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.tree import DecisionTreeClassifier\n",
|
||
"classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)\n",
|
||
"classifier.fit(X_train, y_train)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第6步:预测测试集的结果"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"y_pred = classifier.predict(X_test)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第7步:制作混淆矩阵"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from sklearn.metrics import confusion_matrix\n",
|
||
"cm = confusion_matrix(y_test, y_pred)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第8步:将训练集结果进行可视化"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\nnsJsAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f0c9e6b37f0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from matplotlib.colors import ListedColormap\n",
|
||
"X_set, y_set = X_train, y_train\n",
|
||
"X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),\n",
|
||
" np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))\n",
|
||
"plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),\n",
|
||
" alpha = 0.75, cmap = ListedColormap(('red', 'green')))\n",
|
||
"plt.xlim(X1.min(), X1.max())\n",
|
||
"plt.ylim(X2.min(), X2.max())\n",
|
||
"for i, j in enumerate(np.unique(y_set)):\n",
|
||
" plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],\n",
|
||
" c = ListedColormap(('red', 'green'))(i), label = j)\n",
|
||
"plt.title('Decision Tree Classification (Training set)')\n",
|
||
"plt.xlabel('Age')\n",
|
||
"plt.ylabel('Estimated Salary')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 第9步:将测试集结果进行可视化"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\nifLpAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f0c9d686e80>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from matplotlib.colors import ListedColormap\n",
|
||
"X_set, y_set = X_test, y_test\n",
|
||
"X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),\n",
|
||
" np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))\n",
|
||
"plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),\n",
|
||
" alpha = 0.75, cmap = ListedColormap(('red', 'green')))\n",
|
||
"plt.xlim(X1.min(), X1.max())\n",
|
||
"plt.ylim(X2.min(), X2.max())\n",
|
||
"for i, j in enumerate(np.unique(y_set)):\n",
|
||
" plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],\n",
|
||
" c = ListedColormap(('red', 'green'))(i), label = j)\n",
|
||
"plt.title('Decision Tree Classification (Test set)')\n",
|
||
"plt.xlabel('Age')\n",
|
||
"plt.ylabel('Estimated Salary')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<b>完整的项目请前往Github项目<a href=\"https://github.com/MachineLearning100/100-Days-Of-ML-Code\">100-Days-Of-ML-Code</a>查看。有任何的建议或者意见欢迎在issue中提出~</b>"
|
||
]
|
||
},
|
||
{
|
||
"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
|
||
}
|