当前位置: 首页 > news >正文

不同分类器对数据的处理

"""基于鸢尾花的不同分类器的效果比对:step1:准备数据;提取数据的特征向量X,Y将Y数据采用LabelEncoder转化为数值型数据;step2:将提取的特征向量X,Y进行拆分(训练集与测试集)step3:构建不同分类器并设置参数,例如:KNN,RF,SVM,deng;step4:循环遍历model列表:设置时间戳;每循环一个模型,进行模型训练,模型验证或测试打分并将结果进行记录;step5:plot(画图)
"""
import time
import warnings
import sysimport matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.pylab as mpl
from sklearn.preprocessing import LabelEncoder       ###数据清洗
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC, SVR
from sklearn.neighbors import KNeighborsClassifier   ###KNN
from sklearn.ensemble import RandomForestClassifier  ###随机森林
from sklearn.linear_model import LogisticRegression  ###逻辑回归器# 溢出警告设置为0
warnings.filterwarnings('ignore')# 防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = 'False'# 数据路径
path = 'iris.data'
names = ['A', 'B', 'C', 'D', 'cls']
# 创建读取数据对象
data = pd.read_csv(filepath_or_buffer=path, header=None, names=names)
print(data)
# print(data['cls'].values)
# sys.exit()
# 读取特征向量X, Y
X = data.iloc[:, :2]
# Y = data.iloc[:, :-1]
Y = data['cls']# 将字符型数据Y转成数值型  数据清洗或调用LabelEncoder
class_label = {'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2}
# 对目标属性做一个类别的转换,将字符串的数据转换为从0开始的int值
### 方式一: LabelEncoder方法
# label_encoder = LabelEncoder()
# Y = label_encoder.fit_transform(Y)
# print(Y)
### 方式二:采用map一一印射关系+匿名函数
data['cls'] = list(map(lambda cls: class_label[cls], data['cls'].values))
print(data['cls'].values)# 数据拆分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=10)# 构建不同分类器
svc = SVC(C=0.2, kernel='rbf', decision_function_shape='ovr')
knn = KNeighborsClassifier(n_neighbors=5)
log = LogisticRegression()
rand = RandomForestClassifier(n_estimators=150, max_depth=3)
models = np.array([svc, knn, log, rand])# 创建新列表记录数据
T = []
TRAIN_SORCE = []
TEST_SORCE = []# 遍历不同分类器进行训练、打分和时间花销,并记录方便后续画图
for i in models:N = time.clock()i.fit(x_train, y_train)M = time.clock()T.append(M-N)TRAIN_SORCE.append(i.score(x_train, y_train))TEST_SORCE.append(i.score(x_test, y_test))# 画图
plt.figure(num=1)
plt.plot(['svc01', 'knn02', 'log03', 'rand04'], TRAIN_SORCE, 'r-', linewidth='3', label='TRAIN_SORCE')
plt.plot(['svc01', 'knn02', 'log03', 'rand04'], TEST_SORCE, 'b-o', linewidth='3', label='TEST_SORCE')
# 设置Y轴尺度
plt.ylim(0.5, 1.2)plt.figure(num=2)
plt.plot(['svc01', 'knn02', 'log03', 'rand04'], T, 'g-o', linewidth='3', label='time')
plt.show()E:\myprogram\anaconda\envs\python3.6\python.exe E:/XXX/L-SVM/_differ-classifiies.pyA    B    C    D             cls
0    5.1  3.5  1.4  0.2     Iris-setosa
1    4.9  3.0  1.4  0.2     Iris-setosa
2    4.7  3.2  1.3  0.2     Iris-setosa
3    4.6  3.1  1.5  0.2     Iris-setosa
4    5.0  3.6  1.4  0.2     Iris-setosa
..   ...  ...  ...  ...             ...
145  6.7  3.0  5.2  2.3  Iris-virginica
146  6.3  2.5  5.0  1.9  Iris-virginica
147  6.5  3.0  5.2  2.0  Iris-virginica
148  6.2  3.4  5.4  2.3  Iris-virginica
149  5.9  3.0  5.1  1.8  Iris-virginica[150 rows x 5 columns]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]Process finished with exit code 0

相关文章:

不同分类器对数据的处理

"""基于鸢尾花的不同分类器的效果比对:step1:准备数据;提取数据的特征向量X,Y将Y数据采用LabelEncoder转化为数值型数据;step2:将提取的特征向量X,Y进行拆分(训练集与测试集)step3:构建不同分类器并设置参数,例如:…...

十面骰子、

十面骰子(一): v 有一个十面的骰子,每一面分别为1-10,不断投掷骰子,投10000次,统计每一面1-10出现的次数或概率. v 提示:可用rand()产生1-10之间的随机数,再统计1-10出现的机会,存放于数组里,…...

IDE的下载和使用

IDE 文章目录 IDEJETBRAIN JETBRAIN 官网下载对应的ide 激活方式 dxm的电脑已经把这个脚本下载下来了,脚本是macjihuo 以后就不用买了...

华为OD机试真题【字母组合】

1、题目描述 【字母组合】 数字0、1、2、3、4、5、6、7、8、9分别关联 a~z 26个英文字母。 0 关联 “a”,”b”,”c” 1 关联 “d”,”e”,”f” 2 关联 “g”,”h”,”i” 3 关联 “j”,”k”,”l” 4 关联 “m”,”n”,”o” 5 关联 “p”,”q”,”r” 6 关联 “s”,”t” 7…...

Midjourney Prompt 提示词速查表 v5.2

Midjourney 最新的版本更新正不断推出令人兴奋的新功能。这虽然不断扩展了我们的AI绘图工具箱,但有时也会让我们难以掌握所有实际可以使用的功能和参数。 针对此问题, 小编整理了 "Midjourney Prompt 提示词速查表",这是一个非常方便的 Midjo…...

自动驾驶——驶向未来的革命性技术

自动驾驶——驶向未来的革命性技术 自动驾驶的组件自动驾驶的优势自动驾驶的应用自动驾驶的未来中国的自动驾驶 自动驾驶是一种技术,它允许车辆在没有人类驾驶员的情况下自主地进行行驶。它利用各种传感器、计算机视觉、人工智能和机器学习算法来感知和理解周围环境…...

PAT (Advanced Level) 甲级 1004 Counting Leaves

点此查看所有题目集 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts with a line containing 0<N<100, …...

最长递增子序列——力扣300

int lengthOfLIS(vector<int>& nums) {int len=1, n=nums.size();if...

邮递员送信 单源最短路+反向建边

有一个邮递员要送东西&#xff0c;邮局在节点 1 1 1。他总共要送 n − 1 n−1 n−1样东西&#xff0c;其目的地分别是节点 2 2 2到节点 n n n。所有的道路都是单行的&#xff0c;共有 m m m条道路。邮递员每次只能带一样东西&#xff0c;运送每件物品过后必须返回邮局。求送完东…...

git的常用操作

1. git查看dev分支与master分支的情况 要查看特定分支&#xff08;如dev和master&#xff09;的情况&#xff0c;您可以使用以下命令&#xff1a; git log --oneline master..dev 这将显示在dev分支上存在但不在master分支上的提交记录的简要信息。每条记录都包括提交的哈希…...

vscode搭建java开发环境

一、配置extensions环境变量VSCODE_EXTENSIONS&#xff0c; 该环境变量路径下的存放安装组件&#xff1a; 二、setting配置文件 {"java.jdt.ls.java.home": "e:\\software\\jdk\\jdk17",// java运行环境"java.configuration.runtimes": [{"…...

01 qt快速入门

一 qt介绍 1.基本概念 1991年由Qt Company(奇趣)开发的跨平台C++图形用户界面应用程序开发框架,GUI程序和非GUI程序。优点:一套源码在不同的平台通过不同的编译器进行编译,就可以运行到该平台上目标机。面向对象的封装机制来对其接口封装。 GUI —图形用户界面(Graphic…...

嵌入式开发中常用且杂散的命令

1、mount命令 # 挂载linux系统 mkdir /tmp/share mount -t nfs 10.77.66.88:/share/ /tmp/share -o nolock,tcp cd /tmp/share# 挂载Windows系统 mkdir /tmp/windows mount -t nfs 10.66.77.88:/c/public /tmp/windows -o nolock,tcp cd /tmp/windows# 挂载vfat格式的U盘 mkdi…...

JS导出复杂多级表头的Excel

使用方式 1、安装依赖 npm install xlsx-js-style2、复制代码文件exportExcel.js至工程 https://github.com/EnthuDai/export-excel-in-one-line 3、在引入excel.js后调用 Excel.export(columns, dataSource, 导出文件名)4、代码demo 5、效果 页面excel 适用范围 对于使…...

2023国赛数学建模E题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...

【JavaScript 12】二进制位运算符 或 与 非 异或 左移 右移 头部补零右移

二进制位运算符 概述 概述 7个用于直接对二进制位进行运算 二进制或 or | 若两个二进制位都为0则为0&#xff0c;否则为1二进制与 and & 若两个二进制位都为1则为1&#xff0c;否则为0二进制非 not ~ 对一个二进制位取反异或 xor ^ 若两个二进制位不同则为1&#xff0c;否…...

Kafka 入门到起飞 - Kafka是怎么保证可靠性的呢

在这里插入图片描述 我们已经了解到&#xff0c;复习一下 创建topic时&#xff0c;可以指定副本因子 repilication-factor 3 表示分区的副本数&#xff0c;包括Leader分区副本和follower分区副本不要超过broker的数量&#xff0c;尽量保证一个分区的副本均匀分散不同的broker…...

数学建模(三)整数规划

视频推荐&#xff1a;B站_数学建模老哥 一、整数规划基本原理 数学规划中的变量&#xff08;部分或全部&#xff09;限制为整数时&#xff0c;称为整数规划。若在线性规划模型中&#xff0c;变量限制为整数&#xff0c;则称为整数线性规划。目前所流行的求解整数规划的方法&am…...

全面梳理Python下的NLP 库

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始&#xff0c;到句法分析、解析文本并分配句法角色&#xff0c;再到语义处理&#xff0c;例如识别命名实体、情感分析和文档分类&#xff0c;一切都由至少一个库提供。那么&#xff0c;你…...

系统设计类题目汇总三

20 秒杀系统的一些拓展和优化 20.1 你发送消息时&#xff0c;流程是将消息发送给MQ做异步处理&#xff0c;然后消费者去消费消息&#xff0c;之后调用运营商的发送消息接口&#xff0c;那如果调用运营商的接口后消息发送失败怎么办&#xff1f; 确实&#xff0c;对于这种核心…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...