`
bewithme
  • 浏览: 435258 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DataVec/数据分析

    博客分类:
  • dl4j
阅读更多

数据分析

 

有时候数据集太大或格式太抽象以致于在某些列或模式上无法分析和评估统计。

数据向量附带一些辅助工具来执行数据分析,以及最大值、平均值、最小值和其他有用的度量。

 

用spark进行数据分析

 

如果你已经把你的数据加载到Apache Spark,数据向量有一个特殊的AnalyzeSpark类可以生成直方图,收集统计数据,并返回数据质量信息。假设你你已经把数据加载到一个Spark RDD,把 JavaRDD and Schema传到这个类。

 

如果你在scala中使用数据向量并且你的数据已经被加载到一个常规的RDD class,你可以通过调用 .toJavaRDD()转换它,它返回一个JavaRDD。如果你需要把它还原,调用rdd()。

 

如下的代码演示了在Spark中使用 RDD javaRdd 和 概要mySchema 对2D数据集的分析。

import org.datavec.spark.transform.AnalyzeSpark;
import org.datavec.api.writable.Writable;
import org.datavec.api.transform.analysis.*;

int maxHistogramBuckets = 10
DataAnalysis analysis = AnalyzeSpark.analyze(mySchema, javaRdd, maxHistogramBuckets)

DataQualityAnalysis analysis = AnalyzeSpark.analyzeQuality(mySchema, javaRdd)

Writable max = AnalyzeSpark.max(javaRdd, "myColumn", mySchema)

int numSamples = 5
List<Writable> sample = AnalyzeSpark.sampleFromColumn(numSamples, "myColumn", mySchema, javaRdd)

注意到如果你有序列数据,这里同样有特别的方法:

SequenceDataAnalysis seqAnalysis = AnalyzeSpark.analyzeSequence(mySchema, sequenceRdd)

List<Writable> uniqueSequence = AnalyzeSpark.getUniqueSequence("myColumn", seqSchema, sequenceRdd)

本地分析

AnalyzeLocal类工作起来和Spark的副本非常类似并且有相同的API。传一个可以允许迭代数据集的RecordReader来替代传RDD。

import org.datavec.local.transforms.AnalyzeLocal;

int maxHistogramBuckets = 10
DataAnalysis analysis = AnalyzeLocal.analyze(mySchema, csvRecordReader, maxHistogramBuckets)

实用工具箱


本地分析

[源码]

 

分析指定的数据-返回一个DataAnalysis对象,带有每个列的统计信息。

analyze
public static DataAnalysis analyze(Schema schema, RecordReader rr, int maxHistogramBuckets)

分析指定的数据-返回一个DataAnalysis对象,带有每个列的统计信息。

  • 参数 schema是数据的概要
  • 参数rr是要分析的数据
  • 返回DataAnalysis对象
analyzeQualitySequence
public static DataQualityAnalysis analyzeQualitySequence(Schema schema, SequenceRecordReader data) 

分析序列数据的质量-提供一个缺失值的报告,不符合概要的值。

  • 参数 schema是数据的概要
  • 参数data是要分析的数据
  • 返回DataQualityAnalysis对象
analyzeQuality
public static DataQualityAnalysis analyzeQuality(final Schema schema, final RecordReader data) 

分析数据的质量-提供一个缺失值的报告,不符合概要的值。

  • 参数 schema是数据的概要
  • 参数data是要分析的数据
  • 返回DataQualityAnalysis对象

分析Spark

[源码]

一个用于分析的静态方法

 

analyzeSequence
public static SequenceDataAnalysis analyzeSequence(Schema schema, JavaRDD<List<List<Writable>>> data,
                    int maxHistogramBuckets) 
  • param schema
  • param data
  • param maxHistogramBuckets
  • return
analyze
public static DataAnalysis analyze(Schema schema, JavaRDD<List<Writable>> data) 

分析指定的数据-返回一个DataAnalysis对象,带有每个列的摘要信息。

 

  • 参数 schema是数据的概要
  • 参数data是要分析的数据
  • 返回DataQualityAnalysis对象
analyzeQualitySequence
public static DataQualityAnalysis analyzeQualitySequence(Schema schema, JavaRDD<List<List<Writable>>> data) 

在一个列中随机采样值

  • 参数count是要采样的数量
  • 参数columnName 是要从哪个列采样
  • 参数schema是概要
  • 参数data是指要从哪采样
  • return A list of random samples 返回一个采样的集合
analyzeQuality
public static DataQualityAnalysis analyzeQuality(final Schema schema, final JavaRDD<List<Writable>> data) 

分析数据的质量-提供一个缺失值的报告,不符合概要的值。

  • 参数 schema是数据的概要
  • 参数data是要分析的数据
  • 返回DataQualityAnalysis对象
min
public static Writable min(JavaRDD<List<Writable>> allData, String columnName, Schema schema)

 

在一个指定列中随机采样一个无效的集合。按Schema / ColumnMetaData来被认为是无效的。

  • 参数numToSample是采样无效值的最大数
  • 参数columnName是指从哪个列进行无效值采样
  • 参数schema是数据概要
  • 参数data是数据
  • 返回一个无效的样例
max
public static Writable max(JavaRDD<List<Writable>> allData, String columnName, Schema schema)

Get the maximum value for the specified column 

从一个指定列中得到最大值

  • 参数allData是所有数据
  • 参数columnName是指从哪个列获取最大值 
  • 参数schema是指数据概要
  • 返回列的最大值

有任何问题请联系微信 

如果您觉得我的文章给了您帮助,请为我买一杯饮料吧!以下是我的支付宝,意思一下我将非常感激!

   

分享到:
评论

相关推荐

    基于java 的深度学习框架DL4J

    - **数据预处理**: DataVec支持多种数据类型的数据预处理,如图像的读取、保存、灰度化、翻转、归一化等。 - **特征提取**: 通过特征提取器将原始数据转换为模型可以处理的格式。 #### 实例分析 本部分将通过一个...

    Neural Network Programming with Java

    8. **资源集成**:Java社区提供了大量的第三方库,如ND4J(用于高效数值计算)、DataVec(数据预处理工具),以及Skymind的模型服务器(用于部署模型)。了解并学会使用这些工具,能提升神经网络开发的效率。 9. **...

    顶级投行、金融估值建模培训资料-【TalkingData】在生产环境上部署深度学习.pdf

    - **DataVec**:主要用于处理数据的预处理工作,包括数据的抽取、转换、装载等ETL操作,支持多种类型的数据格式。 - **Deeplearning4j**:企业级的开源深度学习框架,支持Java和Scala编程,便于集成到现有的系统中...

    C++简单实现关联规则挖掘中Apriori算法

    - **读取数据**:通过`ifstream file`从文件`"F:\\Software\\sourcecode\\data.txt"`中读取数据,并将其存储到`vector&lt;vector&lt;string&gt;&gt; datavec`中。 - **初始化参数**:设置初始项集`items_count`,并初始化`...

    dl4j_training

    DL4J提供了DataVec工具,用于数据读取、转换和预处理,支持CSV、ARFF、Image等多种数据格式。 4. **构建模型** 在DL4J中,可以使用`MultiLayerNetwork`或`ComputationGraph`类来定义网络结构。这涉及到选择合适的...

    deeplearning4j:deeplearning4j注意

    - **DataVec**:用于数据预处理和转换,如CSV、JSON和图像数据的读取。 - **ModelSerializer**:用于模型的保存和加载,便于模型的持久化和迁移。 5. **实战应用** - **图像识别**:利用CNN训练图像分类模型,如...

Global site tag (gtag.js) - Google Analytics