一文上手决策树和随机森林和KNN-python

本文介绍了机器学习中的决策树、KNN和随机森林的使用方法,包括模型构建、参数调整及可视化。通过实例展示了在Python的sklearn库中如何训练和评估这些模型,强调了模型的可视化和参数优化的重要性,适合初学者快速上手。
摘要由CSDN通过智能技术生成

写在前面

  • 我们在数据分析或者建模中经常会用到机器学习模型中的树模型或者近邻的方法,通过本文可以使你快速搭建出一个可以运行的效果还不错的模型,但是原理可以通过其他的博客自己补一下~ 写这篇文章也是想让自己记录一下,方便以后用的时候直接拿来用。我认为这里面最好用的还是当属可视化部分代码啦~毕竟学习之前也不知道可视化竟然这么方便!
  • 本文主要分为三个部分,分别是决策树的用法;KNN的用法;随机森林的用法。其实三者在sklearn里调包的话差别不大,细微差别。
  • 适合像我一样的小白中的小白,可以大体了解一下~高手绕道嘿嘿嘿
  • 但是这篇文章中我没有添加进处理数据部分,所以只能假象这里是有数据的,毕竟我们也都是先有数据的,所以应该问题不大~

1、决策树的用法

  • 导入warnings来避免显示一些不重要的警示
  • 先导入matplotlib包,方便后面直接绘图;导入pandas和numpy
  • seaborn也是个比较好用的绘图包,但是我还是比较喜欢用matplotlib
import warnings
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
sns.set()
warnings.filterwarnings('ignore')
这部分其实不太重要,就是想画一下各个方面的图~忽略
# 绘制图像
plt.figure(figsize=(6, 4))
xx = np.linspace(0, 1, 50)
plt.plot(xx, [2 * x * (1-x) for x in xx], label='gini')
plt.plot(xx, [4 * x * (1-x) for x in xx], label='2*gini')
plt.plot(xx, [-x * np.log2(x) - (1-x) * np.log2(1 - x)
              for x in xx], label='entropy')
plt.plot(xx, [1 - max(x, 1-x) for x in xx], label='missclass')
plt.plot(xx, [2 - 2 * max(x, 1-x) for x in xx], label='2*missclass')
plt.xlabel('p+')
plt.ylabel('criterion')
plt.title('Criteria of quality as a function of p+ (binary classification)')
plt.legend()
结果如下:

在这里插入图片描述

下面训练一棵Sklearn决策树


from sklearn.tree import DecisionTreeClassifier
# 编写一个辅助函数,返回之后的可视化网格
def get_grid(data):
    x_min, x_max = data[:, 0].min() - 1, data[:, 0].max() + 1
    y_min, y_max = data[:, 1].min() - 1, data[:, 1].max() + 1
    # 这两步要限制网格的大小
    return np.meshgrid(np.arange(x_min, x_max, 0.01), np.arange(y_min, y_max, 0.01
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值