机器学习之:载入数据

2023-05-16

加载公共的开放数据

通过url链接下载

通常网上有很多开放数据供算法测试。通常要用到urllib从给定的链接下载。例如从UCI机器学习数据仓库中下载的数据:

import numpy as np 
import urllib 
# url with dataset 
url = "http://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data" 
# download the file 下载文件 
raw_data = urllib.request.urlopen(url) 
# load the CSV file as a numpy matrix 
dataset = np.loadtxt(raw_data, delimiter=",") 
# separate the data from the target attributes 
X = dataset[:,0:7] 
y = dataset[:,8]

加载sklearn的数据集

sklearn提供了常见的很多数据集,可以很方便地直接调用。使用load_*方法导入:

from sklearn.datasets import load_digits
digits = load_iris()
print(iris)
images = digits.images
target = digits.target

加载本地文件

如果是本地的文件,如果是txt格式的,可以使用np.loadtxt加载

import numpy as np
#加载本地工作空间的文件‘iris.txt’
np.loadtxt('iris.txt',delimiter=',', dtype=<type 'float'>, comments='#', converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

如果是csv格式的,可以用pandas的load_csv()加载:

import pandas ad pd
csv_data = pd.read_csv()

如果数据比较复杂,以一定的目录结构保存的,那么加载这些不同类别的文件该如何操作呢? 假设文件的存放路径为:

container_folder/

category_1_folder/
file_1.txt file_2.txt … file_42.txt
category_2_folder/
file_43.txt file_44.txt …

其中,子文件夹(category_1_folder)的名字区别,作为监督学习的标签区别。
这种情况可以用sklearn.datasets.load_files()函数实现。

sklearn.datasets.load_files(container_path, description=None, categories=None,load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0)[source]

上面的参数只解释container_path,load_content=True,encoding=None:
container_path:“container_folder”的路径。
load_content=True:是否真的把文件中的内容加载到内存中,选择true就是了。
encoding=None:string or None (default is None),是否解码文件中的内容(主要针对图片、视频或其他二进制文件,而非文本内容);如果不是None,那么在load_content=True的情况下,就会解码文件中的内容。注意,当前文本文件的编码方式一般为“utf-8”。如果不指明编码方式(encoding=None),那么文件内容将会按照bytes处理,而不是unicode处理,这样模块“sklearn.feature_extraction.tex”中的很多函数就不能用了。

返回值:data : Bunch, 得到与直接加载sklearn的数据集相同的数据结构:

  • Dictionary-like object。我们感兴趣的有:

  • data:原始数据,格式参考下图。

  • filenames:每个文件的名字

  • target:类别标签(从0开始的整数索引)

  • target_names:类别标签(数字)的具体含义(由子文件夹的名字category_1_folder决定)

实例:

data_folder/

category_1_folder/
1.txt file_2.txt
category_2_folder/

3.txt 4.txt

from sklearn import datasets
rawData = datasets.load_files("data_folder")

rawData
Out[10]: 
{'DESCR': None,
 'data': ['5 start, \r\ni like this book.',
  '4 start, \r\nthis book is good,\r\ni like it.',
  "1 start, \r\npretty bad, don't like it at all.",
  "2 start, \r\nwe don't like so much."],
 'filenames': array(['data_folder\\positive_folder\\1.txt',
        'data_folder\\positive_folder\\2.txt',
        'data_folder\\negative_folder\\4.txt',
        'data_folder\\negative_folder\\3.txt'], 
       dtype='|S33'),
 'target': array([1, 1, 0, 0]),
 'target_names': ['negative_folder', 'positive_folder']}

rawData.data
Out[11]: 
['5 start, \r\ni like this book.',
 '4 start, \r\nthis book is good,\r\ni like it.',
 "1 start, \r\npretty bad, don't like it at all.",
 "2 start, \r\nwe don't like so much."]

rawData.target
Out[12]: array([1, 1, 0, 0])

rawData.filenames[rawData.target[0]]
Out[13]: 'data_folder\\positive_folder\\2.txt'

参考:
https://blog.csdn.net/mmc2015/article/details/46852755
http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习之:载入数据 的相关文章

  • ubuntu中使用判断符号[]

    鸟哥的私房菜p270中13 3 2使用 符号有这样一个例子 xff1a vim sh06 sh 脚本内容如下 xff1a bin bash Program This program shows the user 39 s choice Hi
  • 深度学习caffe框架(1):如何快速上手caffe?

    初识caffe 安装caffe跑一个例子mnist配置caffe框架的深度学习网络结构输入数据 数据层的定义图片数据如何保存为lmdb格式 模型的保存和读取 caffe的代码层次参考 初识caffe 安装caffe 跑一个例子 mnist
  • 深度学习caffe框架(2): layer定义

    caffe的代码层次 首先让我们回顾一下caffe的代码层次 blob layer net和solver 其中blob是数据结构 layer是网络的层 net是将layer搭建成的网络 solver是网络BP时候的求解算法 本节主要介绍ca
  • 安装Qt及相关问题解决

    安装Qt及相关问题解决 Download Qt 1 Qt下载 关于Qt下载 xff0c 官网可以下载 但是需要填一大堆信息 非常麻烦 可以打开下面的链接 xff0c 里面有各版本Qt http download qt io archive
  • 可编程的SQL是什么样的?

    背景 如果你使用传统编程语言 xff0c 比如Python xff0c 那么恭喜你 xff0c 你可能需要解决大部分你不需要解决的问题 xff0c 用Python你相当于拿到了零部件 xff0c 而不是一辆能跑的汽车 你花了大量时间去组装汽
  • matplotlib 绘制动画

    matplotlib动画 载入matplotlib动画绘制工具 span class hljs import span class hljs keyword import span matplotlib animation span cla
  • Robust Real-Time Extreme Head Pose Estimation

    基本思路 xff1a 用RGB D 的摄像头 xff0c 利用RGB和深度信息对人脸进行三位建模和合成 之后建立了一个由33个人不同头部姿态点云合成数据组成的数据库Dali3DHP xff0c 基于级联决策树 xff08 5个 xff09
  • 如何将ipython的历史记录导出到.py文件中?

    python绝对是生产力工具 真的太好用了 python jupyter提供了非常好的交互编程方式 最棒的就是在数据分析过程中 可以把想法和代码实现放在一起 大大加速了分析过程 也使得代码的可读性更好 回到上面的问题 两种办法解决 xff1
  • keras上手系列之: 模型的保存

    如何将训练好的网络进行保存以便以后使用 进行后续的研究呢 首先 定义一个简单的LSTM模型 span class hljs keyword from span keras models span class hljs keyword imp
  • keras上手系列之: 代码的整体框架

    keras的名字来源于希腊史诗 lt 奥德赛 gt 里的牛角之门 Gate of Horn 是追梦者之路 是梦想实现之门 Those that come through the Ivory Gate cheat us with empty
  • keras上手系列之:序列到序列预测问题

    LSTM序列到序列模型种类 LSTM 序列到序列 seq to seq 问题建模 根据问题和数据本身的特点 可以分为几种不同 一对一 one to one 多对一 many to one 一对多 one to many 多对多 many t
  • keras上手之:与tensorflow混合编程

    tensorflow具备许多优秀的函数和功能 xff0c 比如tensorboard xff0c keras作为tensorflow的高级API xff0c 封装很多tensorflow的代码 xff0c 使得代码模块化 xff0c 非常方
  • 贝叶斯网络和概率推理(一):理性决策与朴素贝叶斯

    在实际问题中 xff0c 理性决策 xff08 rational decision xff09 就意味着必须对结果出现的相关因素及其重要性 xff0c 以及目标实现的可能性进行合理评估 由于未知和惰性 xff0c 让我们对问题中的每个 因果
  • DTI数据处理: from scanner to statistics

    安装准备 工具 FSL MRIcron 准备工作 MRIcron安装 MRIcron的下载地址 http www mccauslandcenter sc edu mricro mricron dcm2nii html FSL安装 FSL是一
  • 核磁数处理和数据分析的资源汇总-不断更新

    在线电子书 xff1a http www magnetic resonance org 几个专业名词 axial diffusivity AD fractional anisotropy FA mean diffusion MD radia

随机推荐

  • 如何将Python算法模型注册成Spark UDF函数实现全景模型部署

    本文作者来自Byzer社区 amp Kyligence 机器学习平台工程师 Andie Huang 背景 Background 对于算法业务团队来说 xff0c 将训练好的模型部署成服务的业务场景是非常常见的 通常会应用于三个场景 xff1
  • linux系统下c/cpp编译链接时系统的默认搜索路径

    C C 43 43 程序在linux下被编译和连接时 xff0c GCC G 43 43 会查找系统默认的include和link的路径 xff0c 以及自己在编译命令中指定的路径 自己指定的路径就不说了 xff0c 这里说明一下系统自动搜
  • 核磁数据处理: FSL系列之segmentation工具FAST

    fsl的segmentation工具 FAST FMRIB s Automated Segmentation Tool 将大脑组织的3D影响分解为不同的组织 比如灰质 白质 脑脊液等等 同时还可以进行spatial intensity va
  • 核磁数据处理: FSL系列之bet命令

    bet命令用于脑组织的提取 有GUI和命令行两种调用方式 下图是bet的GUI界面 在shell中输入命令Bet就可以启动bet的GUI界面了 界面非常简单 只需要制定输入图像 设置图像密度阈值f 选择bet命令执行的方式 Run stan
  • MRI数据处理: FSL线性配准flirt命令

    flirt 是FSL的线性修正工具 官方提供了非常丰富的调用方式 命令Flirt可以启动FLIRT的GUI 43 InvertXFM ApplyXFM ConcatXFM命令flirt 是命令行工具misc flirt utilities
  • Linux中的管道和IO重定向

    Linux中的管道和IO重定向 管道技术是什么 管道是linux中进程之间的通信技术 核心思想是先进先出 FRIST IN FIRST OUT FIFO 管道的英文是pipeline 这个词很生动地描述了数据和信息在进程之间的流动就像在水管
  • 数据分析之: 基本文件操作

    查看数据和文件基本操作 拿到数据后 我们都会马上打开看看 最直接的动作就是鼠标点开 看看都有哪些文件夹 里面都有哪些数据 如果数据比较少 这样简单粗暴的查看方式在时间上还是可以接受的 但是如果数据文件很多 特别是文件夹嵌套了很多层 那这样的
  • 核磁数据处理之: FSL数据快视

    数据质量检查的时候 惯用的做法是用fsleyes逐个打开检查 当数据量变大的时候 这个做法非常消耗时间和精力 考虑到NifTI数据本质上就是好多成像切片三维重建的 如果可以将其中一些切片拿出来在html中批量显示 一个NifTI文件对应一排
  • 用shell脚本生成data pipeline的日志

    用shell脚本生成data pipeline的日志 在数据处理的data pipeline通常主要的数据处理工作都是用shell脚本批量完成 特别有必要生成各被试数据处理日志文件以便pipeline的调试 优化 数据处理的追踪 Pytho
  • linux中的sed 命令-替换

    sed源自stream editor 意为流编辑器 是linux的三大文本编辑工具之一 seg grep awk sed是一种在线编辑器 它一次只处理一行内容 xff0c 并将结果发送到屏幕 具体过程如下 xff1a 1 首先sed把当前正
  • shell脚本:函数及传参

    函数的定义 shell脚本的函数位置相对自由 既可以一个shell脚本单独成一个函数 也可以在主代码中嵌入内置函数 在Shell中可以通过下面的两种语法来定义函数 xff0c 分别如下 xff1a function name stateme
  • 创新者的孤独

    我在刚入行的时候 xff0c 经常看 JavaEye 现在的 Iteye 论坛 xff0c 那个时候有个猛人开发了一个web框架 Douyu 在论坛里一炮走红 他通过改写 Java 编译器来实现很多原先实现不了的动态能力并且抛弃了 Java
  • shell脚本选项设置及解析

    shell脚本的选项 比较复杂的shell脚本通常都会支持多个选项及其输入 通常形式为 a z A Z filename settings 在控制台输入脚本名称时 还会显示出帮助信息 显示帮助 可以定义一个Usage 函数作为脚本的帮助函数
  • 磁共振影像分析之: 基于FSL的VBM分析(2)

    统计分析 生成好study specific模板 下来要做统计分析组间差异了 如果用fsl提供的vbm方案 这一步对应的就是fslvbm 3 proc这个命令了 fslvbm 3 proc 这一步和实验设计和研究问题本身很有关系 这里讲讲f
  • shell脚本中 LC_ALL=C 的含义

    在shell脚本中常见到如下语句 export LC ALL 61 C 这一句的作用是为了去除所有本地化的设置 xff0c 让命令能正确执行 Linux的运行环境 在Linux中通过locale来设置程序运行的不同语言环境 xff0c lo
  • XNAT神经影像多中心数据管理开源平台vagrant虚拟机部署方案

    XNAT extensible Neuroimaging Archive Toolkit 是一个开源的软件平台 xff0c 旨在帮助神经影像及其相关数据的管理和挖掘 XNAT包括一个加密的后端数据库和一个基于万维网的丰富的人机界面 xff0
  • vagrant入门指南(一) : 安装与基本配置

    vagrant介绍 vagrant是用来构建虚拟开发环境的工作 非常适合php python ruby java开发web应用 在生产环境中经常利用vagrant封装一个Linux开发环境 分发给团队成员 每个成员可以在自己的桌面系统上开发
  • vagrant入门指南(二): 创建vagrant项目

    创建vagrant项目的第一步应该是新建Vagrantfile文件 在Vagrantfile中应该明确两个问题 1 明确项目的root文件夹位置 vagrant的很多配置选项都是根据root文件夹的位置设置的 2 描述项目需要的机器和资源
  • 机器学习之:流形与降维概述

    流形与降维 xff1a 概述 降维算法概述流形学习距离的定义 KNN图与流形降维KNN图SNE算法 降维算法概述 降维 xff0c 顾名思义就是把数据或者特征的维度降低 xff0c 一般分为线性降维和非线性降维 线性降维有 xff1a PC
  • 机器学习之:载入数据

    加载公共的开放数据 通过url链接下载 通常网上有很多开放数据供算法测试 通常要用到urllib从给定的链接下载 例如从UCI机器学习数据仓库中下载的数据 xff1a span class token keyword import span