第1章 引言

目录

  • 1. 鸢尾花分类
    • 1.1 初识数据
    • 1.2 衡量模型是否成功:训练数据与测试数据
    • 1.3 要事第一:观察数据
    • 1.4 构建第一个模型:k近邻算法(KNeighborsClassifier)
    • 1.5 做出预测(predict)
    • 1.6 评估模型

1. 鸢尾花分类

  • 在多个选项中预测其中一个(鸢尾花的品种):分类问题
  • 可能的输出(鸢尾花的不同品种):类别
  • 单个数据点(一朵鸢尾花)的预期输出:这朵花的品种
  • 对于一个数据点来说,它的品种:标签

1.1 初识数据

  • 使用鸢尾花(Iris)数据集
from sklearn.datasets import load_irisdataset = load_iris()print(dataset.keys())
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])
# data: 测量数据(150*4)
# target: 每朵花的品种(150)
# target_names: 花的品种(3)
# feature_names: 对特征进行说明(4)

1.2 衡量模型是否成功:训练数据与测试数据

  • 不能将用于构建模型的数据用于评估模型

    • 无法告诉我们模型的泛化能力如何(在新数据上能否正确预测)
  • 将收集好的数据分成两个部分

    • 一部分用于构建机器学习模型:训练数据训练集
    • 另一部分用于评估模型性能:测试数据测试集留出集
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_splitdataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(dataset["data"], dataset["target"], random_state=0)
# X: 数据
# y: 标签
# random_state: 随机数生成器的种子
# 训练数据占比75%
# 测试数据占比25%

1.3 要事第一:观察数据

  • 观察数据的方法:可视化
    • 绘制散点图
      • 一个特征作为 x x x
      • 一个特征作为 y y y
      • 缺点:只能绘制两个或三个特征,难以对多于三个特征的数据集作图
    • 绘制散点图矩阵
      • 两两查看所有的特征
      • 缺点:无法同时显示所有特征之间的关系
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
import matplotlib.pyplot as pltdataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(dataset["data"], dataset["target"], random_state=0)
dataframe = pd.DataFrame(X_train, columns=dataset["feature_names"])
pd.plotting.scatter_matrix(frame=dataframe, c=y_train, figsize=(15, 15), marker="o", hist_kwds={"bins": 20}, s=60, alpha=0.8, cmap=plt.cm.get_cmap('Pastel1'))
# c: 颜色
# figsize: 图的尺寸
# marker: 点的样式
# hist_kwds: 柱状图的样式
# s: 点的半径
# alpha: 透明度
# cmap: 配色风格
plt.show()

Iris数据集的散点矩阵,按类别标签着色

1.4 构建第一个模型:k近邻算法(KNeighborsClassifier)

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifierdataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(dataset["data"], dataset["target"], random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)

1.5 做出预测(predict)

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as npdataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(dataset["data"], dataset["target"], random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
X_new = np.array([[5, 2.9, 1, 0.2]])
# 与训练集格式对应
prediction = knn.predict(X_new)
print(f"{prediction}: {dataset['target_names'][prediction]}")
# [0]: ['setosa']

1.6 评估模型

  • 计算精度来衡量模型的优劣
    • 精度:品种预测正确的所占比例
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as npdataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(dataset["data"], dataset["target"], random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
print(f"score(np.mean) : {np.mean(y_test == y_pred)}")
# score(np.mean) : 0.9736842105263158
# 参数: 布尔表达式(测试标记与预测标记是否相等)
print(f"score(knn.score) : {knn.score(X_test, y_test)}")
# score(knn.score) : 0.9736842105263158
# 参数: 测试数据,测试标记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机】延时函数delay的坑——关于无符号整型数据for语句“x >= 0“变成死循环

请认真看看以下延时函数是否正确,并且指出错误:(考考C语言功底) void delay_ms(unsigned int xms) //delay x ms {unsigned int x,y;for(xxms;x>0;x--)for(y124;y>0;y--); }废话少说,上正确代码: v…

C++ 数据结构

C/C 数组允许定义可存储相同类型数据项的变量,但是结构是 C 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性&…

青少年软件编程(C/C++)等级考试试卷(二级)2023年12月

202312 青少年软件编程(C/C)等级考试试卷(二级)电子学会真题 编程题 1.统计指定范围里的数 给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个…

linux ftp服务选择与ftp(vsftpd,Pure-FTPd)服务安装使用教程

一 linux ftp常用的服务软件 在Linux系统中,最常用的ftp有vsftpd,Pure-FTPd,ProFTPd,Wu-FTPd,glftpd,他们的特性优缺点如下对比图: 常用的5款linux ftp对比图: 软件特性优点缺点vsf…

unity C#中使用ref、out区别和使用案例

文章目录 ref 关键字out 关键字 在Unity(以及C#编程语言中), ref 和 out 都是用来传递参数的引用,这意味着它们允许函数修改实参变量,并且这些修改会反映到调用函数的地方。但它们之间确实存在一些关键区别和使用场景…

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

css-img图像同比缩小

1. HTML 中使图像按比例缩小 CSS 来控制图像的大小&#xff0c;并保持其宽高比 <!DOCTYPE html> <html> <head><style>.image-container {width: 300px; /* 设置容器宽度 */height: auto; /* 让高度自适应 */}.image-container img {width: 100%; /* …

Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

尺寸公差分析 -DTAS手机装配公差案例-国产-智能

小细节 大麻烦&#xff0c;公差仿真大改造 DTAS尺寸公差分析软件-国产-智能https://www.dtas-china.com/product.html 仿真要求说明&#xff1a;计算长边装配间隙G1-G6 步骤一&#xff1a;首先双面胶②放在一个工装中&#xff0c;外形定位&#xff0c;然后将后盖①放入到工…

第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯

日前安徽本源量子宣布第三代超导量子计算系统正式上线&#xff0c;这是中国最先进的量子计算机&#xff0c;计算量子比特已达到72个&#xff0c;在全球已居于较为领先的水平&#xff0c;这对于中国芯片在原来的硅基芯片受到光刻机阻碍无疑是巨大的鼓舞。 据悉本源量子的第一代、…

C++互联网公司笔试攻略

C++互联网笔试大全 "C++互联网笔试大全" 是一个相对广泛的主题,因为它可以涵盖许多与C++编程语言和互联网相关技术的问题。以下是一些可能出现的笔试问题和相关知识点: C++基础知识: 指针和引用的区别 构造函数、析构函数、拷贝构造函数 动态内存分配(new/delete…

简单用PHP实现微信小程序的游戏功能

微信小程序的兴起&#xff0c;越来越多的开发者开始关注如何在小程序中实现游戏功能。PHP作为一种流行的后端语言&#xff0c;可以很好地与小程序进行搭配&#xff0c;实现游戏功能。下面将介绍如何使用PHP来实现微信小程序的游戏功能&#xff0c;并提供具体的代码示例。 建立…

数 据 分 析 1

1.使用Wireshark查看并分析靶机桌面下的capture.pcapng数据包文件&#xff0c;找到黑客的IP地址&#xff0c;并将黑客的IP地址作为Flag值&#xff08;如&#xff1a;172.16.1.1&#xff09;提交&#xff1b;172.16.1.41 查找&#xff1a;tcp.connection.syn 2.继续分析captu…

Peter算法小课堂—树的应用

开篇先给大家讲个东西&#xff0c;叫vector&#xff0c;有老师称之为“向量”&#xff0c;当然与数学中的向量不一样啊&#xff0c;所以我要称之为“长度可变的数组” vector 头文件&#xff1a;#include <vector> 用法&#xff1a;vector<int> d; 尾部增加元素…

自定义HBase负载均衡器MyCustomBalancer实现步骤与代码解析

目录 1.HBase默认负载均衡策略 1.1 负载均衡总体流程 1.2 不能触发负载均衡的情况 1.3 负载均衡算法 2.自定义的 HBase 负载均衡器的步骤 3.MyCustomBalancer的代码细节 3.1 balanceCluster 方法的作用 3.2balanceCluster 对数据的影响 3.3监控HBase的性能指标 3.3.…

全国区县与地级市和省会的距离,2021年,shp/excel格式,附高清示意图

基本信息. 数据名称: 全国区县与地级市和省会的距离 数据格式: shpexcel 数据时间: 2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1djs_jl与所属地级市距离&#xff08;㎞&#xff09;2…

如何实现公网访问GeoServe Web管理界面共享空间地理信息【内网穿透】

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

GIT - 清除历史 Commit 瘦身仓库

目录 一.引言 二.仓库清理 ◆ 创建一个船新分支 ◆ 提交最新代码 ◆ 双指针替换分支 三.总结 一.引言 由于项目运行时间较长&#xff0c;分支较多&#xff0c;且分支内包含很多不同的大文件&#xff0c;随着时间的推移&#xff0c;历史 Git 库的容量日渐增发&#xff0c…

开源分布式任务调度系统DolphinScheduler本地部署与远程访问

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问&#xff0c;结合内…

控制障碍函数(Control Barrier Function,CBF) 三、代码

三、代码实现 3.1、模型 这是一个QP问题&#xff0c;所以我们直接建模 这其实还是之前的那张图&#xff0c;我们把这个大的框架带入到之前的那个小车追击的问题中去&#xff0c;得到以下的一些具体的约束条件 CLF约束 L g V ( x ) u − δ ≤ − L f V ( x ) − λ V ( x ) …