基于sklearn的分类与回归基础总结

2023-05-16

一、分类

一、数据类型
1、python自带类型

 list    #列表
 tuple   #元组,类似列表,不允许修改,只能被查询
 dict    #字典
 set     #集和,不允许重复元素,类似于无值的字典
 my_set = {'123','456',89,True}

2、numpy包中多维数组ndarray
ndarray内存方式优于列表,还允许矢量运算,存储数据类型一致的元素

#loadtxt方法可将指定文件(txt或csv)中的数据加载到数组,返回ndarray类型
#当读取的原始表格数据类型不一致时,会尝试转换为一致,不成功则报错
import numpy as np
x=np.loadtxt(../xxx.csv,delimiter=',')
y=np.array([1,2,3])

3、pandas包中dataframe二维表格结构
(其他创建方式见这条博客)

#通过读取文件方式创建
import pandas as pd
#参数header表示每行的索引,names表示列标题
df_train = pd.read_csv('../train.csv',header=None,names=['sepal,'sepal_wid','target'])

通过values进行访问,返回ndarray结构数组

df_train.values
#输出
array([[2000, 'Ohio', 1.5, 0],
       [2001, 'Ohio', 1.7, 1],
       [2002, 'Ohio', 3.6, 2],
       [2001, 'Nevada', 2.4, 3],
       [2002, 'Nevada', 2.9, 4]], dtype=object)
pd.series()    #带有索引index的一维数组
value.counts() #查看数量和类别分布

二、分类器

#逻辑斯蒂回归
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_y_predict = lr.predict(X_test)
lr.score(X_test, y_test)

#随机梯度参数
from sklearn.linear_model import SGDClassifier
sgdc = SGDClassifier()

#支持向量分类器
from sklearn.svm import LinearSVC
lsvc = LinearSVC()

#朴素贝叶斯分类器
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB()

#k近邻分类器
from sklearn.neighbors import KNeighborsClassifier
knc = KNeighborsClassifier()

#决策树分类器
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()

#集成模型
#随机森林
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier()
#梯度提升决策树
from sklearn.ensemble import GradientBoostingClassifier
gbc = GradientBoostingClassifier()

三、数据标准化

对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。
对于回归,由于预测值也为连续,所以对标签也需要标准化

#标准化数据,保证每个维度的特征数据方差为1,均值为0。使得预测结果不会被某些维度过大的特征值而主导。
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

文本特征提取

CountVectorizer:只考虑词汇在文本中出现的频率。
TfidfVectorizer:除了考量某词汇在文本出现的频率,还关注包含这个词汇的所有文本的数量,能够削减高频没有意义的词汇出现带来的影响, 挖掘更有意义的特征。

#将文本转化为特征向量
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
vec = CountVectorizer()
tfvec = TfidfVectorizer()
X_train = vec.fit_transform(X_train)
X_test = vec.transform(X_test)

决策树特征转换

有多少特征值就产生多少特征
https://blog.csdn.net/Jon_Sheng/article/details/79693971

from sklearn.feature_extraction import DictVectorizer
dict_vec = DictVectorizer(sparse=False)# #sparse=False意思是不产生稀疏矩阵
X_train = vec.fit_transform(X_train.to_dict(orient='record'))
X_test = vec.transform(X_test.to_dict(orient='record'))
DataFrame.to_dict(orient='record'#将DataFrame格式的数据转化成字典形式

https://blog.csdn.net/weixin_30577801/article/details/101335405
四、数据划分

from sklearn.model_selection import train_test_split
# 随机选取75%的数据作为训练样本;其余25%的数据作为测试样本。
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.25, random_state=33)
#train_data:被划分的样本特征集
#train_target:被划分的样本标签
#test_size:如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量
#random_state:是随机数的种子。

五、分类结果报告

分析精确率,召回率,F 等

# 依然使用sklearn.metrics里面的classification_report模块对预测结果做更加详细的分析。
from sklearn.metrics import classification_report
print (classification_report(y_test, y_predict, target_names=digits.target_names.astype(str)))

六、绘图

import matplotlib.pyplot as plt

#生成Scatter散点图
plt.scatter(x,y,s=20,c='b',marker='x')
#x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。
#s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。
#c:表示的是色彩或颜色序列
#marker:MarkerStyle,表示的是标记的样式,可选,默认’o’。

x = [1, 2, 3, 4] y = [1, 2, 20, 50] 
# 创建一个画布 plt.figure() 
# 创建一条线 plt.plot(x, y) 
# 展现画布 plt.show()

二、回归

一、分类器

# 使用默认配置初始化线性回归器LinearRegression。
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
# 使用默认配置初始化线性回归器SGDRegressor。
from sklearn.linear_model import SGDRegressor
sgdr = SGDRegressor()

# 使用线性核函数配置的支持向量机进行回归训练,并且对测试样本进行预测。
from sklearn.svm import SVR
linear_svr = SVR(kernel='linear')
# 使用多项式核函数配置的支持向量机进行回归训练,并且对测试样本进行预测。
poly_svr = SVR(kernel='poly')
# 使用径向基核函数配置的支持向量机进行回归训练,并且对测试样本进行预测。
rbf_svr = SVR(kernel='rbf')

# 初始化K近邻回归器,并且调整配置,使得预测的方式为平均回归:weights='uniform'。
from sklearn.neighbors import KNeighborsRegressor
uni_knr = KNeighborsRegressor(weights='uniform')
# 初始化K近邻回归器,并且调整配置,使得预测的方式为根据距离加权回归:weights='distance'。
dis_knr = KNeighborsRegressor(weights='distance')

# 使用默认配置初始化DecisionTreeRegressor。
from sklearn.tree import DecisionTreeRegressor
dtr = DecisionTreeRegressor()

# 使用RandomForestRegressor训练模型,并对测试数据做出预测,结果存储在变量rfr_y_predict中。
from sklearn.ensemble import RandomForestRegressor, ExtraTreesRegressor, GradientBoostingRegressor
rfr = RandomForestRegressor()
# 使用ExtraTreesRegressor训练模型,并对测试数据做出预测,结果存储在变量etr_y_predict中。
etr = ExtraTreesRegressor()
# 使用GradientBoostingRegressor训练模型,并对测试数据做出预测,结果存储在变量gbr_y_predict中。
gbr = GradientBoostingRegressor()

二、评价方式

from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error

# 使用r2_score模块,并输出评估结果。和lr.score(X_test, y_test)结果相同
print ('The value of R-squared of LinearRegression is', r2_score(y_test, lr_y_predict))

# 使用mean_squared_error模块,并输出评估结果。
print ('The mean squared error of LinearRegression is', mean_squared_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(lr_y_predict)))

# 使用mean_absolute_error模块,并输出评估结果。
print ('The mean absoluate error of LinearRegression is', mean_absolute_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(lr_y_predict)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于sklearn的分类与回归基础总结 的相关文章

  • Qt QMessageBox使用详解

    本文详细的介绍了QMessageBox控件的各种操作 xff0c 例如 xff1a 消息提示框的使用 判断消息提示框的按钮 标准图标和自定义图标 定时关闭 自定义样式等操作 本文作者原创 xff0c 转载请附上文章出处与本文链接 Qt QM
  • SpringBoot_实现基本增删改查(前后端分离版)

    目录 自学自编实现一个简单的增删改查 xff08 前后端分离版本 xff09 与大家一起分享 xff0c 一起交流和学习 xff01 xff08 1 xff09 程序入口 xff08 2 xff09 建立数据库文件 xff08 3 xff0
  • 云服务器调出图形化界面

    如果需要在云服务器 xff08 centos xff09 上安装软件 xff0c 而且用图形化安装 xff0c 此方法可行以作记录 方法 span class token comment 命令行依次执行 span span class to
  • 超级产品:喜茶,凭什么能估值90亿

    疫情期间 xff0c 呆在家里的这些人 xff0c 最怀念的莫过于以前那一段靠奶茶续命的的日子了 肺炎快点结束吧 xff01 我想出门晒太阳 xff0c 吹海风 xff0c 我想念喜茶了 喜茶居然成为这些人的一个生活场景符号了 喜茶是一家什
  • linux应用编程和网络编程

    注 xff1a 本文是对朱老师linux应用编程和网络编程课程的备忘引导性笔记 xff0c 主要是为了能够在学完后快速回忆起相关内容 本文主要记录了一些关键易忘性知识点并包含少量理解性内容 xff0c 遵循尽量精简的原则 xff0c 以尽量
  • bsp_uart_fifo

    bsp uart fifo h 模块名称 串口中断 43 FIFO驱动模块 文件名称 bsp uart fifo h 说 明 头文件 ifndef BSP USART FIFO H define BSP USART FIFO H
  • 记一次自镜像Docker启动失败ubuntu 安装tini

    使用ubuntu18 04打包镜像启动失败报错信息 xff1a bin sh 1 tini not found 需要安装tini 而ubuntu本身软件源没有这个软件包 apt install y tini 报错 Unable to loc
  • Bluerov电池充电参数及过放补救方法

    Bluerov电池 1 Bluerov电池2 容量3 C rating xff08 放电倍率 xff09 4 充电电流5 充电注意事项及操作说明6 过放使用补救方法 xff08 但电池损耗已不可逆转 xff09 方法步骤 xff1a 1 B
  • Android Parcelable

    一 xff1a 是什么 xff1f Paracelable是android自己的实现序列化的接口 是anroid推荐使用的 那么什么事序列化呢 xff1f 简单来说就是将对象转换为可以传输的二进制流 二进制序列 的过程 这样我们就可以通过序
  • 字符串和字符串结束标志

    在C语言中 xff0c 是将字符串作为字符数组来处理的 例如 xff0c 如下程序 xff1a include lt stdio h gt int main char c 15 61 39 I 39 39 39 39 a 39 39 m 3
  • 单目相机标定方法总结

    单目相机标定的常用方法 xff0c 这里主要总结一下ROS和matlab标定工具箱 ROS相机标定 链接 xff1a https blog csdn net learning tortosie article details 7990125
  • Prometheus之修炼篇

    Prometheus之修炼篇 官方文档 xff1a https prometheus io 中文文档 xff1a 非官方 xff1a https songjiayang gitbooks io prometheus content 一 入门
  • QT视频播放不出来,报错 DirectShowPlayerService::doRender: Unresolved error code 80040266——没有安装视频解码器

    出错1 没有安装视频解码器 DirectShowPlayerService doRender Unresolved error code 0x80040266 出错2 文件路径不对或者文件名是中文的 DirectShowPlayerServ
  • ROS(1)编写第一个ROS程序(创建工作空间workspace和功能包package)

    一 先从三个方面去理解ROS xff1a xff08 自己查 xff0c 不详表 xff09 ROS是什么 xff0c 为什么使用ROS xff0c 如何使用ROS ROS xff08 Robot Operating System xff0
  • jetson nano TF卡镜像复制

    很重要的第一点 xff0c TF卡一定要进行格式化 xff0c 再进行其他操作 1 使用USB xff12 xff10 2 在win10无法将TF卡格式化成FAT32时 xff0c 使用DiskGenius xff0c 将TF卡格式化成FA
  • C++里数组名+1和数组名的地址+1的区别

    C C 43 43 里面的数组名字会退化为指针 xff0c 所以数组名a实际指的是数组的第一个元素的地址 而数组名作为指针来讲有特殊性 xff0c 它正在它所指向的内存区域中 xff0c amp a的值和a的数值是相同的 xff08 可以输
  • AD软件之模块化原理图

    首先我们创建两个原理图文件 然后我们在Sheet2 SchDoc里放置一个页面符并双击绿色的方框 选择目标文件 我们选择我们刚才创建的Sheet4 SchDoc 然后在 视图 gt 面板 gt Navigator选项 里点一下交互式导航 就
  • c语言中判断一个字符串是否包含另一个字符串

    1 使用库函数 string h strstr函数 函数名 strstr 功 能 在串中查找指定字符串的第一次出现 用 法 char strstr char str1 char str2 说明 xff1a 返回指向第一次出现str2位置的指
  • TCP协议-握手与挥手

    认识TCP协议 TCP全称为 传输控制协议 xff0c 这是传输层的一个协议 xff0c 对数据的传输进行一个详细的控制 特点 xff1a 面向字节流安全可靠面向连接 TCP协议段格式 源端口号与目的端口号 xff1a 这里与UDP的一样
  • C语言volatile的作用及使用场景介绍

    简介 volatile 先从基础的知识说起吧 xff0c 这样也有个来龙去脉 我们都知道 xff0c 程序运行后 xff0c 程序的数据都会被从磁盘加载到内存里面 xff08 主存 xff09 而当局部的指令被执行的时候 xff0c 内存中

随机推荐

  • SNMPv3报文

    相应的数字表示 xff08 对象标识符OID xff0c 唯一标识一个MIB对象 xff09 为 xff1a 1 3 6 1 2 1 4 3 图2 MIB树结构 当网络管理协议在报文中使用MIB变量时 xff0c 每个变量名后还要加一个后缀
  • 详解C语言中volatile关键字

    volatile提醒编译器它后面所定义的变量随时都有可能改变 xff0c 因此编译后的程序每次需要存储或读取这个变量的时候 xff0c 都会直接从变量地址中读取数据 如 果没有volatile关键字 xff0c 则编译器可能优化读取和存储
  • EtherCAT从站学习笔记——2.4通信模式

    在实际的控制系统中 xff0c 应用程序之间一般有两种类型的数据交换形式 xff1a 时间关键数据 time critical 和非时间关键数据 non time critial 时间关键表示特定的动作必须在确定的时间内完成或处理 xff0
  • 在linux下利用ls命令进行模糊查找

    如上图 xff0c 我们当前路径下有三个文件 xff0c 分别为helloworld c以及helloworld和1 c xff0c 直接输入命令ls则显示所有文件 xff0c 我们可以利用ls 加 的方向进行模糊查找 输入ls 目录名 形
  • 树莓派第一次开机自动连接WIFI(不用显示屏方法)

    当我们把树莓派系统镜像烧录到SD卡之后 xff0c 我们在windows看到的TF卡变成了空间很小的名为boot的盘 xff0c 我们在此目录下新建一个名为wpa supplicant conf空白文件 xff0c 并在其中加入以下代码 c
  • linux交叉编译时报错 libfreetype.so: file not recognized: File format not recognized

    root 64 ubuntu home linuxsystemcode 04th print info arm none linux gnueabi gcc finput charset 61 GBK o example1 example1
  • 神经网络epoch和batch的粗浅理解

    关于神经网络epoch和batch的理解 理解粗浅 xff0c 仅为个人想法 xff0c 提前感谢指正 epoch 一个epoch代表全部数据进入网络一次 xff0c 这个时候 xff0c 整个网络结构只对这批数据全部走完一次 xff0c
  • 目标检测与位姿估计(二十三):OpenCV+Aruco完成目标检测

    一份识别图像图像中所有Aruco的代码 include lt opencv2 core core hpp gt include lt opencv2 imgproc imgproc hpp gt include lt opencv2 hig
  • 随记(2):PP-Tracking工具

    目标跟踪任务意义 需求 xff1a 自动驾驶 智慧城市 安防领域面向车辆 行人 飞行器等快速运行的物体实时跟踪及分析 算法优势 xff1a 单纯的目标检测算法只能输出目标的定位 43 分类 xff0c 无法对移动的目标具体的运动行为及运动特
  • 【ROS&GAZEBO】多旋翼无人机仿真(一)——搭建仿真环境

    ROS amp GAZEBO 多旋翼无人机仿真 xff08 一 xff09 搭建仿真环境 ROS amp GAZEBO 多旋翼无人机仿真 xff08 一 xff09 搭建仿真环境 ROS amp GAZEBO 多旋翼无人机仿真 xff08
  • 【ROS&GAZEBO】多旋翼无人机仿真(三)——自定义多旋翼模型

    ROS amp GAZEBO 多旋翼无人机仿真 xff08 一 xff09 搭建仿真环境 ROS amp GAZEBO 多旋翼无人机仿真 xff08 二 xff09 基于rotors的仿真 ROS amp GAZEBO 多旋翼无人机仿真 x
  • 当使用CUBEMX,STM32F429阿波罗开发板的PCF8574与1-Wire冲突的解决办法。

    hello 大家好 xff01 距离上次写博客还是上半年呢 这几个月做了很多实验 xff0c 不过都很懒 xff0c 一直没有写上来 准备慢慢补回来 下面是我在使用原子哥的STM32F429的开发板做温度传感器项目的小实验时遇到的问题 1
  • 【ROS&GAZEBO】解决“is neither a launch file in package ”的问题

    这两天有小伙伴问到在安装完rotors后出现如下问题 xff1a 这个问题其实是ros环境没有配置好 xff0c 运行下面的命令 xff0c 将catkub ws加入ros的工作空间 span class token function mk
  • 【ROS&GAZEBO】多旋翼无人机仿真(七)——四元数姿态控制

    ROS amp GAZEBO 多旋翼无人机仿真 xff08 一 xff09 搭建仿真环境 ROS amp GAZEBO 多旋翼无人机仿真 xff08 二 xff09 基于rotors的仿真 ROS amp GAZEBO 多旋翼无人机仿真 x
  • 【DRONECAN】(一)介绍

    DRONECAN 前言 笔者最近因为项目需要用到CAN通信 xff0c 所以研究了一下飞控上基于CAN的协议 xff0c 目前在Ardupilot和PX4中用的是DRONECAN xff0c DRONECAN是基于CAN的通信协议 xff0
  • 普通人对AI的看法

    就发展前景来看 xff0c 人工智能无疑将是现阶段与今后很长时间内的全球性热点 这是一个可以预见性的历史潮流 xff0c 无可阻挡 xff0c 一旦它出现一定会对现代互联网的结构会产 生颠覆性的改变 它将重新定义现代互联网的理念 xff0c
  • java+postgis实现根据两点生成模拟轨迹gps数据

    java 43 postgis实现根据两点生成模拟轨迹gps数据 文章目录 java 43 postgis实现根据两点生成模拟轨迹gps数据前言一 实现流程1 请求参数2 功能流程3 postgis重要使用函数介绍4 生成的GPS模拟轨迹点
  • Docker更新springboot容器镜像

    下载安装partainer 拉取镜像 docker pull portainer portainer ce 运行容器 docker run d p 9000 9000 v var run docker sock var run docker
  • AUTOSAR简介

    1 简介 AUTOSAR全称为 AUTomotive Open System ARchitecture xff0c 译为 汽车开放系统体系结构 xff1b AUTOSAR是一家由汽车电子 半导体和软件行业的汽车制造商 供应商 服务提供商等公
  • 基于sklearn的分类与回归基础总结

    一 分类 一 数据类型 1 python自带类型 span class token builtin list span span class token comment 列表 span span class token builtin tu