【Python机器学习实战】 | 基于K近邻算法和一般线性回归算法对电视剧播放数据进行回归预测

🎩 欢迎来到技术探索的奇幻世界👨‍💻

📜 个人主页@一伦明悦-CSDN博客

✍🏻 作者简介 C++软件开发、Python机器学习爱好者

🗣️ 互动与支持💬评论      👍🏻点赞      📂收藏     👀关注+

如果文章有所帮助,欢迎留下您宝贵的评论,

点赞加收藏支持我,点击关注,一起进步!

引言

        K近邻(K-Nearest Neighbors,简称KNN)算法是一种基本的分类和回归方法,它可以用于解决分类和回归问题。其核心思想可以简单描述如下:

原理

K近邻算法基于一个假设:相似的事物在很多情况下具有相似的性质。具体来说,在分类问题中,KNN算法根据某个样本在特征空间中与其最近的K个训练样本的标记来确定该样本的类别;在回归问题中,KNN算法则是根据该样本最近的K个训练样本的值来预测该样本的值。

工作流程

  1. 计算距离: 首先,计算待分类样本与训练集中所有样本的距离。常用的距离度量包括欧氏距离、曼哈顿距离、余弦相似度等。

  2. 选择K值: 确定K的取值,即要考虑多少个最近邻的样本。K的选择影响着分类或回归的结果,通常通过交叉验证或者经验选择一个合适的值。

  3. 确定邻居: 选出距离最近的K个样本。

  4. 进行预测:

    • 分类问题: 对于分类问题,采用投票法(多数表决)来确定待分类样本所属的类别,即K个最近邻样本中出现最频繁的类别作为预测结果。
    • 回归问题: 对于回归问题,通常采用平均值法,即将K个最近邻样本的值的平均值作为待预测样本的预测值。

特点和适用场景

  • 简单有效: KNN是一种简单直观的算法,易于理解和实现。
  • 非参数化: KNN算法不对数据的分布做出假设,因此在某些非线性数据的分类问题中表现较好。
  • 适用性: 适用于小型数据集和中等大小的特征空间。
  • 参数选择: K的选择对算法的性能有显著影响,选择不同的K值可能导致完全不同的结果。

正文

01-绘制均匀核函数和高斯核函数的函数曲线

这段代码是用来绘制两种核函数在一维数据上的图像,并将结果保存为图片。让我详细解释一下这段代码的具体步骤:

  1. 导入必要的库:

    • 导入NumPy库,用于数值计算。
    • 导入Pandas库,用于数据操作。
    • 导入Matplotlib库中的Pyplot模块,用于数据可视化。
    • 导入warnings模块,用于警告处理。
    • 配置Matplotlib参数以支持中文显示,并避免负号显示乱码。
    • 导入sklearn库中的linear_model模块、metrics模块中的classification_report函数、model_selection模块中的cross_validate和train_test_split函数、neighbors模块和preprocessing模块。
  2. 生成数据:

    • 生成一个从-3到3均匀分布的包含100个数据点的一维数据d。
    • 定义两种核函数对应的y值:
      • y1为全为0.5的数组,表示均匀核函数对应的值。
      • y2为高斯核函数对应的值,根据高斯分布的概率密度函数公式计算得出。
    • 调整y1和y2的取值,使得在d小于-1和大于1时,y1和y2的取值为0,以展示核函数在特定区间内的变化。
  3. 绘制图像:

    • 使用plt.plot方法绘制两种核函数在给定数据上的曲线图。
    • 设置不同的linestyle以区分均匀核、高斯核和高斯核的理论形式(虚线)。
    • 添加图例并设置标题,说明两种核函数的区别。
  4. 保存图片:

    • 使用plt.savefig方法将生成的图像保存为一个名为"4.png"的文件,设置dpi为300,使得保存的图片具有更高的分辨率。

通过以上步骤,这段代码实现了对两种核函数在一维数据上的可视化,并将结果保存为图片,以便进一步分析和展示。

#本章需导入的模块
import numpy as np
import pandas as pd
impo
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一伦明悦

感谢,您的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值