数据挖掘-BP算法实现

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;


public class BP {
	List<String> data_var=new ArrayList<String>();//存储输入的变量数据
	List<String> data_tag=new ArrayList<String>();//存储输入的类别数据
	String[] kinds;  //用户存储类别的变量,kinds[0]表示第0类对应的类别名称
    public float[][][] w=new float[50][50][50];//存储层与层连接边的权重,我w[i][j][k]表示第i个层隐藏层的w[][]权重值,具体:第i-1层的第j个节点与第i层的第k个节点连接边的权重
    public float[][] beta=new float[50][50];//存储节点的偏移量,beta[i][j]表示第i个隐藏层中,第j个节点的偏倚量.
	
	public BP() throws IOException{//函数作用:数据初始化,从文件读入输入的:变量数据、类别数据,对类别数据类别数量划分一条数据的列数.
		for(int i=0;i<50;i++){
			for(int j=0;j<50;j++){
				for(int k=0;k<50;k++){
					w[i][j][k]=(float)Math.random();
				}
				    beta[i][j]=(float)Math.random();
			}
		}
		BufferedReader br=new BufferedReader(new FileReader("F:/数据挖掘--算法实现/BP算法/input.txt"));
        String line="";
        while((line=br.readLine())!=null){
        	data_tag.add(line.split(" ",2)[0]);
        	data_var.add(line.split(" ",2)[1]);
     	}
        HashSet<String> set=new HashSet<String>();
        for(int i=0;i<data_tag.size();i++){
        	set.add(data_tag.get(i));
        }
        kinds=new String[set.size()];
        int i=0;
        Iterator<String> Iter=set.iterator();
        while(Iter.hasNext()){
        	this.kinds[i]=Iter.next();
        	i++;
        }
        for(int j=0;j<data_tag.size();j++){
        	String tmp="";
        	for(i=0;i<kinds.length;i++){
        		if(kinds[i].equals(data_tag.get(j))){
        			tmp=tmp+" "+"1";
        		}else{
        			tmp=tmp+" "+"0";
        		}
        	}
        	dat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值