高斯正态云模型

2024-05-25 12:08
文章标签 模型 正态 高斯

本文主要是介绍高斯正态云模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

兵兵放大招让我们写云发生器,也是醉了。

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;class GaussianModel{private double Ex;private double En;private double He;private int N;private double[] x = new double[20480];private double[] u = new double[20480];private double[] ctb = new double[20480];private double per067,per067_;private double per100,per100_;private double per200,per200_;private double per300,per300_;private Random random = new Random();public GaussianModel(double _Ex, double _En, double _He, int _N){Ex = _Ex;En = _En;He = _He;N = _N;getCloudDrops();}final public void print_x_u(){System.out.println("\nData:");for (int i = 0 ; i < N ; ++i)System.out.println("("+x[i]+","+u[i]+")");System.out.println();return ;}private void getCloudDrops(){/** 产生服从N(a,b)随机数* Math.sqrt(b)*random.nextGaussian()+a; */for(int i = 0 ; i < N ; ++i){double En_ = He*random.nextGaussian()+En;x[i] = En_*random.nextGaussian()+Ex;u[i] = Math.exp(-1*Math.pow(x[i]-Ex, 2.0)/(2*Math.pow(En_, 2.0)));}}public void get_Ctb() {// ------------------ 贡献值算法// 知识表示中的不确定性P4;for(int i = 0 ; i < N ; ++i)ctb[i] = u[i] * x[i] * Math.sqrt(2 * Math.PI) * En;double sum = 0 ;double sum_ = 0 ;int count = 0 ;for (int i = 0 ; i < N ; ++i)sum += ctb[i];
//      骨干元素贡献值计算for(int i = 0 ; i < N ; ++i){if(x[i] >= Ex - 0.67*En && x[i] <= Ex + 0.67*En){sum_ += ctb[i];count ++ ;}}per067 = sum_/sum ;per067_ = ((double)count)/((double)N);
//      基本元素sum_ = 0 ;count = 0 ;for(int i = 0 ; i < N ; ++i){if(x[i] >= Ex - En && x[i] <= Ex + En){sum_ += ctb[i];count ++ ;}}per100 = sum_/sum;per100_ = ((double)count)/((double)N);
//      外围元素;sum_ = 0 ;count = 0 ;for(int i = 0 ; i < N ; ++i){if(x[i] >= Ex - 2*En && x[i] <= Ex + 2*En){sum_ += ctb[i];count ++ ;}}per200 = sum_/sum;per200_ = ((double)count)/((double)N);
//      弱外围元素;per300 = (sum - sum_)/sum;per300_ = ((double)(N-count))/((double)N);return ;}final public void print_Ctb(){System.out.println("骨干元素:[Ex-0.67En,Ex+0.67En]");System.out.println("样本比例:"+per067_*100+"%");System.out.println("贡献值:    "+per067*100+"%\n");System.out.println("基本元素:[Ex-En,Ex+En]");System.out.println("样本比例:"+per100_*100+"%");System.out.println("贡献值:    "+per100*100+"%\n");System.out.println("外围元素:[Ex-2En,Ex-En]+[Ex+En,Ex+2En]");System.out.println("样本比例:"+(per200_ - per100_)*100+"%");System.out.println("贡献值:    "+(per200 - per100)*100+"%\n");System.out.println("弱外围元素:[Ex-3En,Ex-2En]+[Ex+2En,Ex+3En]");System.out.println("样本比例:"+per300_*100+"%");System.out.println("贡献值:    "+per300*100+"%\n");}public void write_Excel(String _url) throws FileNotFoundException{/** 数据写入到Excel中* */       String url = "E:/Code/JAVA_workspace/FieldCluster/src/";url += _url ;FileOutputStream out = new FileOutputStream(url);XSSFWorkbook wb = new XSSFWorkbook();//创建1页;XSSFSheet sheets = wb.createSheet("u(x)");for (int k = 0; k < N; k++) {XSSFRow rows = sheets.createRow(k);// 创建行数//写入单元格//int totalRows = sheets.getLastRowNum() + 1;rows.createCell(0).setCellValue(x[k]);rows.createCell(1).setCellValue(u[k]);}try {wb.write(out);} catch (IOException e) {e.printStackTrace();}try {out.close();} catch (IOException e) {e.printStackTrace();}System.out.println("\n数据写入Excel成功!!!\n");}
}public class CloudModel {private static double Ex;private static double En;private static double He;private static int N;private static Scanner cin = new Scanner(System.in);static class WriteExcel extends Thread{GaussianModel GM ;public void run(){try {GM.write_Excel("data.xlsx");} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void start(GaussianModel _GM){super.start();GM = _GM;}}public static void main(String args[]){Ex = cin.nextDouble();En = cin.nextDouble();He = cin.nextDouble();N = cin.nextInt();GaussianModel GM = new GaussianModel(Ex,En,He,N);WriteExcel WE = new WriteExcel();WE.start(GM);GM.print_x_u();GM.get_Ctb();GM.print_Ctb();}
}

数据写入Excel结果:
输入Ex,En,He,N:
20
5
0.3
10240
在Excel中画出散点图如下:
这里写图片描述

这篇关于高斯正态云模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001463

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选