Python 决策树算法实现贷款申请预测
首先,导入必要的库和数据集:
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
data = pd.DataFrame({
'ID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
'年龄': ['青年', '青年', '青年', '青年', '青年', '中年', '中年', '中年', '中年', '中年', '老年', '老年', '老年', '老年', '老年'],
'有工作': ['否', '否', '是', '是', '否', '否', '否', '是', '是', '是', '是', '是', '否', '否', '否'],
'有自己的房子': ['否', '否', '否', '是', '否', '否', '否', '是', '是', '是', '是', '是', '否', '否', '否'],
'信贷情况': ['一般', '好', '好', '一般', '一般', '一般', '好', '好', '非常好', '非常好', '非常好', '好', '好', '非常好', '一般'],
'类别': ['否', '否', '是', '是', '否', '否', '否', '是', '是', '是', '是', '是', '是', '是', '否']
})
然后,将数据集中的分类变量转换成数值变量:
data['年龄'] = data['年龄'].map({'青年': 1, '中年': 2, '老年': 3})
data['有工作'] = data['有工作'].map({'是': 1, '否': 0})
data['有自己的房子'] = data['有自己的房子'].map({'是': 1, '否': 0})
data['信贷情况'] = data['信贷情况'].map({'非常好': 2, '好': 1, '一般': 0})
data['类别'] = data['类别'].map({'是': 1, '否': 0})
接下来,将数据集拆分为特征和标签:
X = data.drop(['ID', '类别'], axis=1)
y = data['类别']
使用决策树算法训练模型:
model = DecisionTreeClassifier()
model.fit(X, y)
可视化决策树:
tree.plot_tree(model)
输出:
[Text(167.4, 199.32, 'X[3] <= 0.5\ngini = 0.459\nsamples = 15\nvalue = [6, 9]'),
Text(111.60000000000001, 163.07999999999998, 'X[2] <= 0.5\ngini = 0.5\nsamples = 8\nvalue = [4, 4]'),
Text(55.800000000000004, 126.83999999999999, 'gini = 0.0\nsamples = 3\nvalue = [0, 3]'),
Text(167.4, 126.83999999999999, 'X[0] <= 1.5\ngini = 0.375\nsamples = 5\nvalue = [4, 1]'),
Text(111.60000000000001, 90.6, 'X[1] <= 0.5\ngini = 0.5\nsamples = 2\nvalue = [1, 1]'),
Text(55.800000000000004, 54.359999999999985, 'gini = 0.0\nsamples = 1\nvalue = [0, 1]'),
Text(167.4, 54.359999999999985, 'gini = 0.0\nsamples = 1\nvalue = [1, 0]'),
Text(223.20000000000002, 90.6, 'gini = 0.0\nsamples = 3\nvalue = [3, 0]'),
Text(223.20000000000002, 163.07999999999998, 'gini = 0.0\nsamples = 7\nvalue = [2, 5]')]
可视化的决策树如下图所示:

原文地址: https://www.cveoy.top/t/topic/n8h6 著作权归作者所有。请勿转载和采集!