当前位置:网站首页>数据归一化
数据归一化
2022-07-24 05:20:00 【一枚小可爱c】
输入和输出文件都是以\t分割的txt文件,每一行是一组数据(xi)
例如
24 42 9 8 3 4 39 43
23 43 5 54 5 32 25 54
52 54 43 53 55 2 5 5
对于第i行(该行的每个归一化后的数据=(初始数据-该行最小值)/(该行最大值-该行最小值))
归一化后xij = (xij-min)/(max-min)
import java.io.*;
import java.net.URI;
import java.nio.file.FileSystem;
import java.util.ArrayList;
public class Guiyihua {
public static void main(String[] args) throws Exception {
String oldPath = "C:\\Users\\hong\\Desktop\\electric.txt";
String newPath = "C:\\Users\\hong\\Desktop\\new\\electric.txt";
ArrayList<ArrayList<Double>> data =getFile(oldPath);
double max;
double min;
double temp;
double a;
for (ArrayList<Double> datum : data) {
max = getMax(datum);
min = getMin(datum);
for (int j = 0; j < datum.size(); j++) {
temp =datum.get(j);
a = (temp - min) / (max - min);
datum.set(j,a);
}
}
out(newPath,data);
}
//获取ArrayList<Double> dataone中的最大值
public static Double getMax(ArrayList<Double> dataone){
double max = dataone.get(0);
for (Double aDouble : dataone) {
if (max < aDouble) {
max = aDouble;
}
}
return max;
}
//获取ArrayList<Double> dataone中的最小值
public static Double getMin(ArrayList<Double> dataone){
double min = dataone.get(0);
for (Double aDouble : dataone) {
if (min > aDouble) {
min = aDouble;
}
}
return min;
}
//读取txt文件并且写入ArrayList<ArrayList<Double>>
private static ArrayList<ArrayList<Double>> getFile(String pathName) throws Exception {
File file = new File(pathName);
if (!file.exists())
throw new RuntimeException("Not File!");
BufferedReader br = new BufferedReader(new FileReader(file));
String str;
ArrayList<ArrayList<Double>> data = new ArrayList<>();
while ((str = br.readLine()) != null) {
ArrayList<Double> oneData = new ArrayList<>();
String[] arr = str.split("\t");
for (String s : arr) {
oneData.add(Double.valueOf(s));
}
data.add(oneData);
}
return data;
}
//输出
public static void out(String path,ArrayList<ArrayList<Double>> data) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(path));
for (int i = 0; i <data.size() ; i++) {
for (int j = 0; j < data.get(i).size(); j++) {
writer.write(String.valueOf(data.get(i).get(j)));
writer.write('\t');
}
writer.write('\n');
}
}
}
边栏推荐
- 目标检测带标签数据增强代码
- 【mycat】mycat安装
- Zotero快速上手指南
- Multi merchant mall system function disassembly lecture 06 - platform side merchant settlement agreement
- Multi merchant mall system function disassembly lecture 04 - platform side merchants settling in
- Flink 并行度的理解(parallel)
- [data mining] zero foundation entry decision tree
- SqlServer 完全删除
- Canal+kafka actual combat (monitor MySQL binlog to realize data synchronization)
- spark 广播变量和累加器使用和原理
猜你喜欢

Multi merchant mall system function disassembly lecture 06 - platform side merchant settlement agreement

【mycat】mycat搭建读写分离

Multi merchant mall system function disassembly lecture 09 - platform end commodity brands

【activiti】组任务

labelme转voc代码中的一个小问题

黑龙江省SVG格式地图的创建及生成
![Brief introduction of [data mining] cluster analysis](/img/9b/3484cf1353686d38dcf32e845b1903.jpg)
Brief introduction of [data mining] cluster analysis

多商户商城系统功能拆解07讲-平台端商品管理

Creation and generation of SVG format map in Heilongjiang Province

国内外知名源码商城系统盘点
随机推荐
Use streaming media to transfer RSTP to the Web terminal for playback (II) [review]
likeshop单商户商城系统搭建,代码开源无加密
Unknown collation: ‘utf8mb4_ 0900_ ai_ Solution of CI '
[activiti] activiti environment configuration
达梦数据库_dmfldr工具使用说明
《统计学习方法(第2版)》李航 第16章 主成分分析 PCA 思维导图笔记 及 课后习题答案(步骤详细)PCA 矩阵奇异值 第十六章
MySQL batch insert demo
【activiti】流程实例
ThreadLocal存储当前登录用户信息
Are you still trying to limit MySQL paging?
SSM项目配置中问题,各种依赖等(个人使用)
公众号开发自定义菜单和服务器配置同时启用
Imitate Baidu API of Baidu map page of a website
Flink task, sub task, task slot and parallelism
快速打开管理工具的命令
Numpy cheatsheet
达梦数据库_LENGTH_IN_CHAR和CHARSET的影响情况
Wechat applet reports an error request:fail -2:net:: err_ FAILED
Authorized access to MySQL database
labelme转voc代码中的一个小问题