使用ML.NET中的TextLoader扩展方法从文本文件中加载数据。你需要知道在文本文件中数据列在那里,它们的类型是什么,在文本文件中什么位置可以找到它们。

请注意:对于ML.NET只读取文件的某些列, 或多次读取同一列, 是完全可行的。

示例文件:

Label	Workclass	education	marital-status
0 Private 11th Never-married
0 Private HS-grad Married-civ-spouse
1 Local-gov Assoc-acdm Married-civ-spouse
1 Private Some-college Married-civ-spouse

在ML.NET中提供了三种方法读取文本数据:

//方法一:
// 创建一个新的上下文环境,它可用于程序的异常跟踪和日志记录。 var mlContext = new MLContext(); // 创建一个reader(数据阅读器):在阅读器中定义数据列和它们所在文本文件中的位置
var reader = mlContext.Data.CreateTextReader(ctx => (
// 一个布尔列作为 'target label'.
IsOver50K: ctx.LoadBool(0),
// 三个文本列.
Workclass: ctx.LoadText(1),
Education: ctx.LoadText(2),
MaritalStatus: ctx.LoadText(3)),
hasHeader: true); // 使用Read方法读取文件内容
var data = reader.Read(dataPath);

如果在程序编译的时候,数据的结构太复杂,你也可以通过动态类型的API进行转换:

//方法二:
// 创建上下文环境
var mlContext = new MLContext(); // 创建一个reader(数据阅读器):在阅读器中定义数据列和它们所在文本文件中的位置
var reader = mlContext.Data.CreateTextReader(new[] {
// 一个布尔列作为 'target label'.
new TextLoader.Column("IsOver50K", DataKind.BL, 0),
// 三个文本列.
new TextLoader.Column("Workclass", DataKind.TX, 1),
new TextLoader.Column("Education", DataKind.TX, 2),
new TextLoader.Column("MaritalStatus", DataKind.TX, 3)
},
// 文件中第一行为表头
hasHeader: true
); // 使用Read方法读取文件内容
var data = reader.Read(dataPath);

你也可以创建一个数据模型的类,基于这个类来读取数据。

//方法三:
// 定义数据模型类
private class InspectedRow
{
[LoadColumn(0)]
public bool IsOver50K { get; set; } [LoadColumn(1)]
public string Workclass { get; set; } [LoadColumn(2)]
public string Education { get; set; } [LoadColumn(3)]
public string MaritalStatus { get; set; } public string[] AllFeatures { get; set; }
} private class InspectedRowWithAllFeatures : InspectedRow
{
public string[] AllFeatures { get; set; }
} // 创建上下文环境
var mlContext = new MLContext(); // 读取数据
var data = mlContext.Data.ReadFromTextFile<InspectedRow>(dataPath,
// First line of the file is a header, not a data row.
hasHeader: true
)

ML.NET Cookbook --- 1.如何从文本文件中加载数据?的更多相关文章

  1. Flexigrid从对象中加载数据

    (有问题,在找…………) Flexigrid是用来动态加载数据的一种比较好(老)的Jquery表插件,然后有些时候,我们需要其从本地或者jQuery对象中加载数据,比如有这么个需求,页面显示中有两个表 ...

  2. ArcGIS Engine中加载数据

    ArcGIS Engine中加载数据 http://blog.csdn.net/gisstar/article/details/4206822   分类: AE开发积累2009-05-21 16:49 ...

  3. 机器学习:从sklearn中加载数据

    一.sklearn模块 sklearn模块下有很多子模块,常用的数据集在:sklearn.datasets模块下: 通过数据集中DESCR来查看数据集的文档: 从datasets中加载数据: impo ...

  4. python数据可视化-matplotlib入门(6)-从文件中加载数据

    前几篇都是手动录入或随机函数产生的数据.实际有许多类型的文件,以及许多方法,用它们从文件中提取数据来图形化. 比如之前python基础(12)介绍打开文件的方式,可直接读取文件中的数据,扩大了我们的数 ...

  5. 向treeview中加载数据

    1.获取树节点的值,用事件AfterSelect加载(id值的获取,用name来获取) 2.双击treeview控件得到 private void treeView1_AfterSelect(obje ...

  6. java多线程向数据库中加载数据

    读取本地文件,每行为一条记录,文件大小550M,200万条数据.先将文件读取的内存中,再开启6个线程连接postgresql不同coordinator端口导入数据.代码如下: import java. ...

  7. Vue完成页面切换中加载数据

    created() { // 拿到路由传递来的car主键 let pk = this.$route.query.pk || this.$route.params.pk; // 主键不存在,就直接结束方 ...

  8. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  9. easyui学习笔记8—在手风琴中加载其他的页面

    在手风琴中加载其他页面和在表格中加载其他的页面有写类似的,就是请求另外一个页面显示数据. 1.先看看引用的资源文件 <link rel="stylesheet" href=& ...

随机推荐

  1. Delphi C++Builder RAD XE Ver 版本 官方发布时间

    RAD 新版本发布时间记录 代号,官方发布时间 RIO 10.3.1,VER330,Product Ver 26 Program File 20,2019.2.14 发布 24周年 RIO 10.3, ...

  2. 《Apache Velocity用户指南》官方文档

    http://ifeve.com/apache-velocity-dev/ <Apache Velocity用户指南>官方文档 原文链接   译文连接 译者:小村长  校对:方腾飞 Qui ...

  3. linux命令 环境设置 顺序

    转 http://blog.csdn.net/dingxy/article/details/4016383 在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/prof ...

  4. jira 安装

    jira jira是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪(bug管理).客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域.同禅道等类似. 安装前准备 ...

  5. java访问共享文件夹

    由于工作需要读取局域网中一台机器的共享目录中的文件,需要jcifs-1.1.11.jar的支持,使用SMB协议,以下是实现了远程读取文件的功能: package junit; import jcifs ...

  6. IE WebDeveloper--IE浏览器web调试工具

    目前市面上比较火爆的浏览器内核提供商,有微软的IE.mozilla的firefox.谷歌的chrome.苹果的safari.IE浏览器下的项目过去占比非常大,近年随着其他浏览器厂商发展势头迅猛,过去的 ...

  7. aop编程术语

  8. 144. Binary Tree Preorder Traversal (Tree, Stack)

    Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...

  9. NodeJS - npm WARN package.json : No repository field:can not open package.json

    最近在研究node.js,在安装npm的时候发现了几个报错,瞬间蒙圈,查找文献基本解决(文献好少呀~  -.-)   一.报错:“can not open  path/path/package.jso ...

  10. 689. Maximum Sum of 3 Non-Overlapping Subarrays三个不重合数组的求和最大值

    [抄题]: In a given array nums of positive integers, find three non-overlapping subarrays with maximum ...