机器学习练习day1

server/2025/1/23 7:49:06/

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测

KNN算法有三要素:1.K值选择;2.距离选择;3.分类规则选择。

步骤1  导入数据集

步骤2 将数据集设置标签

步骤3 设置超参数

代码

from sklearn.neighbors import KNeighborsClassifier
import numpy as nppoint1=[[2.1, 3.2],[1.8, 1.5],[2.5, 2.8],[1.5, 2.5],[2.2, 3.5],[2.8, 2.7],[1.6, 3.1]
]point2=[[3.0, 2.7],[4.5, 3.8],[5.2, 4.5],[6.1, 5.5],[5.0, 3.0],[4.0, 4.2],[3.5, 5.0]
]point3=[[7.5, 4.8],[8.0, 6.3],[7.8, 5.5],[8.5, 7.0],[6.9, 5.7],[7.2, 6.5],[7.8, 6.9]
]point_concat=np.concatenate((point1,point2,point3),axis=0)
point_concat_label=np.concatenate((np.zeros(len(point1)),np.ones(len(point2)),np.ones(len(point3))+1),axis=0)
n_neighbors=5
knn=KNeighborsClassifier(n_neighbors=n_neighbors,algorithm='kd_tree',p=2)#使用KNN训练
knn.fit(point_concat,point_concat_label)#3.决策边界,设定未知点,坐标点网络
x1=np.linspace(0,10,100)
y1=np.linspace(0,10,100)
#生成坐标点网格
x_axis,y_axis=np.meshgrid(x1,y1)x_axis_ravel=x_axis.ravel()
y_axis_ravel=y_axis.ravel()xy_axis=np.c_[x_axis_ravel,y_axis_ravel]
#4.KNN预测与绘制决策边界
knn_predict_result=knn.predict(xy_axis)
print("")#有x,y坐标 及预测结果 等高线绘制
import matplotlib.pyplot as pltfig=plt.figure(figsize=(15,10))ax=fig.add_subplot(111)ax.contour(x_axis,y_axis,knn.predict(xy_axis).reshape(x_axis.shape))
#绘出原始点
ax.scatter(point_concat[point_concat_label==0,0],point_concat[point_concat_label==0,1],color='b',marker='^')
#画散点为1的
ax.scatter(point_concat[point_concat_label==1,0],point_concat[point_concat_label==1,1],color='r',marker='*')
#画散点为2的
ax.scatter(point_concat[point_concat_label==2,0],point_concat[point_concat_label==2,1],color='y',marker='s')plt.show()

结果

改变k值结果不同


http://www.ppmy.cn/server/160674.html

相关文章

信号失真度测试仪、音频失真度测试仪、失真度仪、全自动数字失真度测量仪

谐波失真是由放大器的非线性引起的,失真的结果是使放大器输出产生了原信号中没有的谐波分量,使声音失去了原有的音色,严重时声音会发破、刺耳。多媒体音箱的谐波失真在标称额定功率时的失真度均为10%,要求较高的一般应该在1%以下。…

Vue 3 的 keep-alive 及生命周期钩子

在 Vue 3 中,keep-alive 是一个内置组件,用于提高性能和减少不必要的组件销毁与重建。它与组件的生命周期紧密相关,特别是在动态组件和路由切换场景下,能够缓存组件的状态并避免重新渲染。 而 onActivated 和 onDeactivated 是 …

ubuntu20.04搭建wordpress时出现问题汇总

主要参考教材:ubuntu20.04安装wordpress教程 问题1: rootracknerd-e7ec47c:~# sudo apt-get install php8.1 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package php8.1 E…

【25考研】也很难!清华大学计算机考研复试难度分析!

一、复试内容 复试考核注意事项: 1、笔试环节:笔试部分包括英语和专业课的考查。其中英语笔试部分把包括英语听力和口语测试;关于专业课考试,有的学校规定了考试范围,考生可以在初试结束后尽快开始复习;对…

电子应用设计方案101:智能家庭AI喝水杯系统设计

智能家庭 AI 喝水杯系统设计 一、引言 智能家庭 AI 喝水杯系统旨在为用户提供个性化的饮水提醒和健康管理服务,帮助用户养成良好的饮水习惯。 二、系统概述 1. 系统目标 - 精确监测饮水量和饮水频率。 - 根据用户的身体状况和活动量,智能制定饮水计划。…

jenkins-通过api获取所有job及最新build信息

日常维护的API接口功能: 前提: python 1. 获取所有job: def get_all_jobs(jenkins_url, username, password):url f"{jenkins_url}/api/json"response requests.get(url, auth(username, password))if response.status_code 2…

Unity3D项目开发中的资源加密详解

前言 在Unity3D游戏开发中,保护游戏资源不被非法获取和篡改是至关重要的一环。资源加密作为一种有效的技术手段,可以帮助开发者维护游戏的知识产权和安全性。本文将详细介绍Unity3D项目中如何进行资源加密,并提供相应的技术详解和代码实现。…

面试题-Spring Cloud(25道)

Spring Cloud核心知识总结 下面是一张Spring Cloud核心组件关系图: 1、什么是Spring Cloud ? Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短…