数据建模

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test2 {

static double[][] matrixX1;
static double[][] matrixX2;
static double[][] matrixX3;
static double[][] matrixX4;
static double[][] matrixX5;

public static void main(String[] args) {
Test2 test = new Test2();
matrixX1 = new double[][] { { -2969.1, 1039, 2307.75 }, { 3801.8, 1189.7, 2504.47 },
{ 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 } };// 5*3矩阵
matrixX2 = new double[][] { { -2969.1, 1039, 2307.75 }, { 3801.8, 1189.7, 2504.47 },
{ 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 } };
matrixX3 = new double[][] { { -2969.1, 1039, 2307.75 }, { 3801.8, 1189.7, 2504.47 },
{ 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 } };
matrixX4 = new double[][] { { -2969.1, 1039, 2307.75 }, { 3801.8, 1189.7, 2504.47 },
{ 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 } };
matrixX5 = new double[][] { { -2969.1, 1039, 2307.75 }, { 3801.8, 1189.7, 2504.47 },
{ 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 }, { 3801.8, 1189.7, 2504.47 } };
double[][] MarA = new double[][] { { 0.6 }, { 0.25 }, { 0.15 } };//3*1矩阵
Field[] fields = Test2.class.getDeclaredFields();
System.out.println(fields.length);
List<double[][]> list = new ArrayList<double[][]>();
for(Field f:fields){
f.setAccessible(true);
try {
double[][] obj =(double[][])f.get(test);
list.add(plus(generateRmamatrix(obj),MarA));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
printResult(list);
}

// 输出结果最终结果
private static void printResult(List<double[][]> list) {

for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.get(i).length; j++) {
System.out.println(Arrays.toString(list.get(i)[j]));
}
if(i!=list.size()-1){
System.out.println("==================");
}
}
}

// 假设是m行n列
private static double[][] generateRmamatrix(double[][] matrixX) {
double[][] r = new double[matrixX.length][matrixX[0].length];
for (int i = 0; i < r.length; i++) {
for (int j = 0; j < r[0].length; j++) {
r[i][j] = 0;
double sumLie = 0;
for (int k = 0; k < matrixX.length; k++) {
sumLie += matrixX[k][j];// 每一列求和
}
r[i][j] = matrixX[i][j] / sumLie;
sumLie = 0;
}
}
return r;
}

/*
* 矩阵相乘 传入两个数组
*/
private static double[][] plus(double[][] matrix1, double[][] matrix2) {
if (matrix1[0].length != matrix2.length) {// 若无法相乘则退出 行===列
System.out.println("ivalid input");
}
double[][] plus = new double[matrix1.length][matrix2[0].length];
for (int i = 0; i < plus.length; ++i) {
for (int j = 0; j < plus[i].length; ++j) {// 每一个plus[i][j]的运算:
plus[i][j] = 0;// 初始化
for (int k = 0; k < matrix2.length; ++k)
plus[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
return plus;

}
}

  

时间: 2024-08-10 00:07:25

数据建模的相关文章

用户画像数据建模方法

作者:百分点技术总监郭志金 摘自:百分点(ID: baifendian_com) 从1991年Tim Berners-Lee发明了万维网(World Wide Web)开始,到20年后2011年,互联网真正走向了一个新的里程碑,进入了“大数据时代”.经历了12.13两年热炒之后,人们逐渐冷静下来,更加聚焦于如何利用大数据挖掘潜在的商业价值,如何在企业中实实在在的应用大数据技术.伴随着大数据应用的讨论.创新,个性化技术成为了一个重要落地点.相比传统的线下会员管理.问卷调查.购物篮分析,大数据第一次

MongoDB实战-面向文档的数据(找到最合适的数据建模方式)

前一段时间一直研究通过Ruby操作MongoDB数据库,在学习的过程中也分享了自己学习成长的过程,撰写了包含两篇入门操作文章和十二篇进阶文章.本篇文章开始,我们将进入MongoDB的实战操作流程,MongoDB这一非关系型数据库-是一个文档型数据库,存储的是面向文档的数据. 如何在MongoDB数据库中使用schema 设计数据库schema是在已知数据库系统特性.数据本质以及应用程序需求的情况下为数据集选择最佳表述的过程.传统的关系型数据库RDBMS中鼓励使用正规化的数据模型,从而确保数据的可

[Elasticsearch] 数据建模 - 处理关联关系

数据建模(Modeling Your Data) ES是一头不同寻常的野兽,尤其是当你来自SQL的世界时.它拥有很多优势:性能,可扩展性,准实时的搜索,以及对大数据的分析能力.并且,它很容易上手!只需要下载就能够开始使用它了. 但是它也不是魔法.为了更好的利用ES,你需要了解它从而让它能够满足你的需求. 在ES中,处理实体之间的关系并不像关系型存储那样明显.在关系数据库中的黄金准则 - 数据规范化,在ES中并不适用.在处理关联关系,嵌套对象和父子关联关系中,我们会讨论几种可行方案的优点和缺点.

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

《MySQL Workbench数据建模与开发》

<MySQL Workbench数据建模与开发> 基本信息 原书名:MySQL Workbench:Data Modeling & Development 原出版社: McGraw-Hill Osborne Media 作者: (美)麦克劳克林(McLaughlin, M.) 译者: 张骏温 出版社:清华大学出版社 ISBN:9787302363712 上架时间:2014-6-5 出版日期:2014 年6月 开本:16开 页码:368 版次:1-1 所属分类:计算机 > 数据库

保险业个险计价模块开发的数据建模经验分享

前段时间在开发某大型保险公司的项目,其中,涉及到个险计价的模块,之前没接触过保险业,一看他们某险种的费率表,顿时惊呆了,是一个四维的表,也就是,四种因素(性别.保险期间.交费期间.年龄)决定一个价格,还有一个影响最终保费的因素,就是保额(也就是保险金额---最大赔付金额),但这个跟价格的关系是线性的,得出标记所以这里就忽略它不谈了. 某险种的费率表如下图所示: 这是某险种的费率表,要通过四个条件得出一个价格,如某男,保险期间设为30年,交费期间为10年,假如他现在的年龄是14岁,那他的保费价格是

NoSQL数据建模技术

原文来自“NoSQL Data Modeling Techniques”,由酷壳网陈皓编译<NoSQL数据建模技术>.这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉.我的感觉是,关系型数据库想把一致性,完整性,索引,CRUD都干好,NoSQL只干某一种事,但是牺牲了很多别的东西.总体来说,我觉得NoSQL更适合做Cache. 下面是正文: NoSQL数据库经常被用作很多非功能性的地方,如,扩展性,性能和一致性的地方.这些NoSQL的特性在理论和实践中都正在被大众广泛地研究着,研究的

数据建模在性能测试中的理解

百度搜索:小强测试品牌 如果觉得本文不错,请多多转发一下哈 引子 概念是一个让人又爱又恨的东西,有些东西需要概念来解释,但有些东西又被概念所迷惑.很多所谓高大上的概念其实你剥开来看并没有那么高级. 因为在小强测试品牌培训班中看到了有的学员聊了这个话题,所以今天就顺便写写关于数据建模这个概念在性能测试中到底是个啥? 我所理解的数据建模 按照我个人的理解在性能测试中的数据建模可以分成两个方面来理解,一个是基础数据有的人也叫铺底数据(概念也是越玩越花),另一个是业务场景(其实就是场景用例). 1 基础

数据仓库建设中的数据建模方法(转)

简介: 本文的主要内容不是介绍现有的比较流行的主要行业的一些数据模型,而是将笔者在数据仓库建设项目中的一些经验,在这里分享给大家.希望帮助大家在数据仓库项目建设中总结出一套能够合乎目前业界规范的,满足大部分行业数据仓库建设标准的一种方法. 所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数据仓库平台之外,也有各自的针对某个行业的数据模型. 例如,在

数据建模与框架设计的暂时总结

在这次项目开发实践中,我又一次尝试用Python脚本生成C#代码,其效果让我很满意 -- 提高了代码质量,可维护性和工作效率:同时降低了出错率. 看来事情在向好的方面发展.那么促成的因素是什么?我思考了一下,可能有以下2点: 在用脚本生成代码方面积累的实践技术经验 在运用第1点时,让我感受到了“数据建模”和“框架设计” 回忆这次设计过程,我首先识别了下面几个部分的数据: 前端展示数据 业务层数据 数据层数据 通过一个Excel表格,将这三层数据定义出来,然后再用脚本生成代码.但是,由于这次的业务