weka数据预测 分类回归 方法 参数 总结

利用Weka进行线性回归预测 一、实验目的和内容 (一)实验目的和内容 利用Weka对现有数据进行短期预测。先利用excel和weka软件将数据记性预处理,再将数据载入weka中,开始创建模型并进行预测。通过本实验,掌握Weka软件的使用,对数据创建模型并预测。从而掌握回归分析的基本思想和方法。 (二)背景知识 1、Weka Weka全名怀卡托智能分析环境(Waikato Environment for Knowle... 阅读详情

1.线性回归(LinearRegression)
1.1原理

在统计学中,线性回归是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。


1.2最小二乘法原理

线性回归模型经常用最小二乘逼近来拟合,但他们也可能用别的方法来拟合,比如用最小化“拟合缺陷”在一些其他规范里(比如最小绝对误差回归),或者在桥回归中最小化最小二乘损失函数的惩罚.相反,最小二乘逼近可以用来拟合那些非线性的模型.因此,尽管“最小二乘法”和“线性模型”是紧密相连的,但他们是不能划等号的。

线性方程式可以是一元的也可以是多元的,如y=a+bx,

Y= a + b1X1 + b2X2 + … + bkXk等,但都是使用最小二乘法来获取最佳方程作为模型使用的。

原理(一元为例):研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1.x2,y2... xm,ym);将这些数据描绘在x -y直角坐标系中,若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。

Yj= a0 + a1 Xi (式1-1)

其中:a0、a1 是任意实数

为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用(式1-1)计算值(Yj=a0+a1X)的离差(Yi-Yj)的平方和〔∑(Yi - Yj)2〕最小为“优化判据”。

令:φ = ∑(Yi - Yj)2 (式1-2)

把(式1-1)代入(式1-2)中得:

φ = ∑(Yi - a0 - a1Xi)2 (式1-3)

当∑(Yi-Yj)平方最小时,可用函数 φ 对a0、a1求偏导数,令这两个偏导数等于零。

(式1-4)

(式1-5)

亦即:

m a0 + (∑Xi ) a1 = ∑Yi (式1-6)

(∑Xi ) a0 + (∑Xi2 ) a1 = ∑(Xi,Yi) (式1-7)

得到的两个关于a0、 a1为未知数的两个方程组,解这两个方程组得出:

a0 = (∑Yi) / m - a1(∑Xi) / m (式1-8)

a1 = [m∑Xi Yi - (∑Xi ∑Yi)] / [m∑Xi2 - (∑Xi)2 )] (式1-9)

这时把a0、a1代入(式1-1)中, 此时的(式1-1)就是我们回归的元线性方程即:数学模型。


1.3weka中的参数

attributeSelectionMethod(属性选择方法,使用那些属性来构造模型):有三个方法可供选择

M5 method(默认),

no attribute selection(使用所有非目标属性),

greedy method(贪婪算法精确度低,节约时间),

如果设置为no attribute selection无论共线属性eliminateColinearAttributes设置 为什么都会选择目标属性之外的所有属性进行模型的创建。

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。它省去了为查找最优解而去穷尽所有可能而耗费的大量时间,贪心算法通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每作一次贪心选择就将所求问题简化为一个规模更小的子问题。贪心算法解题思路:

1.建立数学模型来描述问题。 

2.把求解的问题分成若干个子问题。 

3.对每一子问题求解,得到子问题的局部最优解。 

4.把子问题的解局部最优解合成原来解问题的一个解。 

Debug(调试):false(默认),true如果设置为true,分类器可以输出到控制台的额外的 信息(程序中几乎没用)。额外信息如下:

@relation  fh-weka.filters.supervised.attribute.NominalToBinary-weka.f ilters.unsupervised.attribute.ReplaceMissingValues

@attribute month numeric

@attribute fhvalue numeric

@data

doRegression( true false )

Initial Akaike value: 40.0

doRegression( false false )

(akaike: 68.129092653061

eliminateColinearAttributes:true(默认),false是否消除共线的属性。如果是多元线性回归是,其中的 两个属性存在共线关系,那么该方法会采取向前排除法取消位置在前面的那个共线属性,再进 行模型的创建。(还用向后排除法,网上多建议使用向前排除法,weka也是这样做的)。

Minimal:true or false(默认)如果设置为true数据集头,手段和stdevs,被丢弃,以节省内存, 但是该(模型就不可以被打印出来)。

Ridge:该参数的取值对生成模型的好坏起主要作用。


1.3模型好坏的评价标准

Mean absolute error (平均绝对误差):越小越好


1.4API的调用

程序中调用weka的API方法顺序及作用:

1.生成一个可以自动分析sql的实例;

InstanceQuery query = new InstanceQuery();

2.设置要分析的sql1用于生成模型

query.setQuery(sql);

3.获取数据

Instances insTrain=query.retrieveInstances();

4.设置要预测的属性

insTrain.setClassIndex(insTrain.numAttributes()-1);//属性的下标,默认都是最后一个属性

5.创建分类器

LinearRegression lr = new LinearRegression();

6.分类器初始化参数

//设置入参

SelectedTag  selectedTag=new SelectedTag(LinearRegression.SELECTION_M5,LinearRegression.TAGS_SELECTION); 

//SelectedTag第一个参数是可以改变的,但是必须在第二数组参数中存在

lr.setAttributeSelectionMethod(selectedTag);

lr.setDebug(false);//控制打印信息

lr.setEliminateColinearAttributes(true);//是否取消共线属性

lr.setMinimal(false);//false可以输出模型公式

lr.setRidge(1.0E-1);//对结果影响明显

7.进行线性回归分析

lr.buildClassifier(insTrain); 

8.评估

Evaluation eval=new Evaluation(insTrain);  

eval.evaluateModel(lr, insTrain);

9.获取评价标准

String mean=eval.meanAbsoluteError();//平均绝对误差 或 剩余(残差)平方和 :越小越好

10.获取模型公式

String model=lr.toString();

以上是使用历史数据获取模型用到的方法及使用情况。对要预测的数据进行预测还需下面的方法:

11.获取待预测的数据(sql2中的待预测数据用?表示)

query.setQuery(sql2);

Instances insTest=query.retrieveInstances();//获取待预测数据

insTrain.setClassIndex(insTrain.numAttributes()-1);//设置成相同的属性下标,默认都是最后一个属性

12.获取预测结果(两种方法)

方法一:直接返回到数组中

double yuce[]=eval.evaluateModel(lr, insTest);//将预测结果以数组的形式返回

方法二:调用分类器方法classifyInstance(Instance instance)循环输出每一个实例的预测值

double  sum = insTest.numInstances();//获取预测实例的总数

for(int i=0;i<sum;i++){//

//<---输出预测数据--->

System.out.println(insTest.instance(i).value(0)+" : "+lr.classifyInstance(insTest.instance(i)));

}

13.将相应的预测结果插入数据库中保存。(如对模型不满意,可以修改各项参数再次进行分析)


2.简单线性回归(SimpleLinearRegression)
2.1原理

原理与上面的线性回归的原理相同,但是该方法只适用于自变量为一元的测试数据。


2.2参数

Debug(调试):false(默认),true如果设置为true,分类器可以输出到控制台的额外的 信息(程序中几乎没用)。由false改为true后打印模型公式时并没有额外信息输出。


2.3模型好坏的评价标准

Mean absolute error (平均绝对误差):越小越好


2.4API的调用

程序中调用weka的API方法顺序及作用:

1.生成一个可以自动分析sql的实例;

InstanceQuery query = new InstanceQuery();

2.设置要分析的sql1用于生成模型

query.setQuery(sql);

3.获取数据

Instances insTrain=query.retrieveInstances();

4.设置要预测的属性

insTrain.setClassIndex(insTrain.numAttributes()-1);//属性的下标,默认都是最后一个属性

5.创建分类器

SimpleLinearRegression slr=new SimpleLinearRegression();

6.分类器初始化参数

//设置入参

slr.setDebug(false);//控制打印信息(改为true时程序控制台中没有变化)

7.进行线性回归分析

slr.buildClassifier(insTrain); 

8.评估

Evaluation eval=new Evaluation(insTrain);  

eval.evaluateModel(slr, insTrain);

9.获取评价标准

String mean=eval.meanAbsoluteError();//平均绝对误差 或 剩余(残差)平方和 :越小越好

10.获取模型公式

String model=slr.toString();

以上是使用历史数据获取模型用到的方法及使用情况。对要预测的数据进行预测还需下面的方法:

11.获取待预测的数据(sql2中的待预测数据用?表示)

query.setQuery(sql2);

Instances insTest=query.retrieveInstances();//获取待预测数据

insTrain.setClassIndex(insTrain.numAttributes()-1);//设置成相同的属性下标,默认都是最后一个属性

12获取预测结果(两种方法)

方法一:直接返回到数组中

double yuce[]=eval.evaluateModel(slr, insTest);//将预测结果以数组的形式返回

方法二:调用分类器方法classifyInstance(Instance instance)循环输出每一个实例的预测值

double  sum = insTest.numInstances();//获取预测实例的总数

for(int i=0;i<sum;i++){//

//<---输出预测数据--->

System.out.println(insTest.instance(i).value(0)+" : "+slr.classifyInstance(insTest.instance(i)));

}

13.将相应的预测结果插入数据库中保存。


3.RBFNetwork(径向基函数网络或贝叶斯网络)
3.1原理

它采用了k-means聚类算法提供的基础功能,并获悉了logistic回归(离散类的问题)或线性回归(数字类的问题),最重要的是径向基函数网络适合每个簇中的数据。如果类是名义上的,它使用给定数量的每一个类.它的集群可以标准化所有的数字属性,零均值和单位方差。

贝叶斯分析方法的特点是使用概率去表示所有形式的不确定性。学习或其他形式的推理都是用概率规则来实现的。贝叶斯学习的结果表示为随机变量的概率分布,它可以解释为我们对不同可能性的信任程度。

贝叶斯网络创建模型是采用k-means聚类算法提供的基础功能,获取数据的分类,并获取分类的中心值(均值或中位数),然后计算每个实例属于不同分类的概率,以概率为自变量,以目标值为因变量,来构造模型公式。如:fhvalue = 633.4514 * pCluster_0_0 -633.4501 * pCluster_0_1 + 11255.7873,fhvalue 为目标值,pCluster_0_0表示实例属于类别Cluster_0_0的概率,pCluster_0_1表示实例属于类别Cluster_0_1的概率。


3.2参数

clusteringSeed - 传递到K-均值的随机种子。

debug - 如果设置为true,分类器可以输出到控制台的额外的信息(程序中没有看到有额外信息输出)。
maxIts - 最大的迭代次数的logistic回归进行。只适用于离散类别的问题。
minStdDev - 最低标准偏差。
numClusters - K-均值方法的分类个数

ridge - 基数。


3.3模型好坏的评价标准

几种常见的度量,可以用于评估数值预测成功与否。表中各个公式中的p为预测值,a为真实值。

相关性系数 (Correlation Coecient)是真实值a与预测值p之间的统计相关性,它是一个[-1,1]之间的实数。1表示完全相关,0表示完全不相关,-1表示反向完全相关。对一个数值预测模型,相关性系数越接近1表明预测能力越好,而其他误差相关的度量都是越小越接近0越好。均方误差是最常用的基本方法,程序中得不到,但是可以得到均方根误差。

其他的度量也可以做参考。需要注意最终使用哪些度量取决于具体的应用环境。


3.4API的调用

程序中调用weka的API方法顺序及作用:

1.生成一个可以自动分析sql的实例;

InstanceQuery query = new InstanceQuery();

2.设置要分析的sql1用于生成模型

query.setQuery(sql);

3.获取数据

Instances insTrain=query.retrieveInstances();

4.设置要预测的属性

insTrain.setClassIndex(insTrain.numAttributes()-1);//属性的下标,默认都是最后一个属性

5.创建分类器

RBFNetwork rbn=new RBFNetwork();

6.分类器初始化参数

//设置入参

rbn.setClusteringSeed(2);//k-means的随机种子数

rbn.setDebug(false);//控制打印信息(无额外信息输出)

rbn.setMaxIts(10);//k-means获取中心值的迭代次数,只适用于离散类别的问题

rbn.setMinStdDev(0.1);//k-means最低标准偏差

rbn.setNumClusters(3);//k-means类别数

rbn.setRidge(1.0E-8);

7.进行线性回归分析

rbn.buildClassifier(insTrain); 

8.评估

Evaluation eval=new Evaluation(insTrain);  

eval.evaluateModel(rbn, insTrain);

9.获取评价标准

System.out.println("平均绝对误差:"+eval.meanAbsoluteError());//越小越好

System.out.println("均方根误差:"+eval.rootMeanSquaredError());//越小越好

System.out.println("相关性系数:"+eval.correlationCoefficient());//越接近1越好

System.out.println("根均方误差:"+eval.rootMeanSquaredError());//越小越好

System.err.println("是否准确的参考值:"+eval.meanAbsoluteError());//越小越好

10.获取模型公式

String model=rbn.toString();

以上是使用历史数据获取模型用到的方法及使用情况。对要预测的数据进行预测还需下面的方法:

11.获取待预测的数据(sql2中的待预测数据用?表示)

query.setQuery(sql2);

Instances insTest=query.retrieveInstances();//获取待预测数据

insTrain.setClassIndex(insTrain.numAttributes()-1);//设置成相同的属性下标,默认都是最后一个属性

12获取预测结果(两种方法)

方法一:直接返回到数组中

double yuce[]=eval.evaluateModel(rbn, insTest);//将预测结果以数组的形式返回

方法二:调用分类器方法classifyInstance(Instance instance)循环输出每一个实例的预测值

double  sum = insTest.numInstances();//获取预测实例的总数

for(int i=0;i<sum;i++){//

//<---输出预测数据--->

System.out.println(insTest.instance(i).value(0)+" : "+rbn.classifyInstance(insTest.instance(i)));

}

13.将相应的预测结果插入数据库中保存。(如对模型不满意,可以修改各项参数再次进行分析)


4.MultilayerPerceptron(神经网络)
4.1原理
MultilayerPerceptron(神经网络)或多层感知器,使用的计算方法是BP网络的误差反向后传BP(Back Propagation)学习算法。

利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 Weka中使用的就是三层BP网络,如下图所示:


具体的算法描述可以看ppt   BP神经网络算法原理.ppt


4.2weka参数

下面我们来看各个参数的具体意义:
1.GUI(一般不需要,设为false即可)
弹出一个GUI界面。其允许我们在神经网络训练的过程中暂停和做一些修改(altering)
按左键添加一个节点(node)(节点将被自动选择以保证没有其他的节点被选择)
选中一个节点:左键单击
连接一个节点:首先选中一个起始节点,然后点击一个结束节点或者空白区域(这将创建一个新节点并与起始节点连接)。在连接后节点的状态将保持不变。
删除连接:选择一个连接的节点并且右键单击另一个节点
删除节点:右键单击一个节点
取消选择:左键单击节点或者在空白区域右键单击
标签(label)提供的原始输入(raw input)在左边
红色的节点是隐层(hidden layers)
橙色的节点是输出节点(output nodes)
在右边的标签展示的是输出节点表示的类别。要注意的是对于一个数值属性的类别来说,输出节点将自动的做成一个unthresholded的线性单元。
更改神经网络只能在网络没有启动(running)的时候做,这条规则也适用于学习速率(learning rate)和其他在控制面板上的区域。您可以在任何时候结束网络,网络在一开始是自动暂停的。一旦网络训练完毕它会再次停止并且等待结果是否被接受还是继续训练,注意的是如果没有设置GUI,这个网络将不需要任何的交互(interaction)。
2.autoBuild(自动构建)
添加网络中的连接和隐层设置为true和false的不同之处:

3.debug
设置为True分类器将输出额外的信息到控制台(console)(未见额外信息输出)。
4.decay
这将导致学习的速率的降低。其将初始的学习速率除以迭代次数(epoch number)去决定当前的学习速率。这对于停止神经网络背离目标输出有帮助,也提高了general performance。要注意的是衰退的学习速率不会显示在GUI中。如果学习速率在GUI中被改变,这将被视为初始的学习速率。
5.hiddenLayers(隐藏层)对预测结果几乎没用影响
定义神经网络的隐层。这是一个正整数的列表。1 for each hidden layer.用逗号分隔。如果没有隐层就在这里输入0。这只被用于自动构建是设置了的。也有通用符 'a' = (attribs + classes) / 2, 'i' = attribs, 'o' = classes , 't' = attribs + classes。
6.learningRate学习速率(对预测结果有很大的影响)
Weights被更新的数量
7.momentum(对预测结果有很大的影响)
当更新weights时设置的动量
8.normalizeAttributes(建议默认为true)
将正则化(normalize)属性。这个能提高网络的performance。其并不依赖于class是不是数值属性的。其也会正则化名词性(nominal)的属性(当他们被nominal to binary filter run过后),这样名词性属性是在-1和1之间。
9.normalizeNumericClass
将会正则化class如果其实数值属性的。这也可以提高网络的performance,其将class正则化到-1和1之间。注意的是这仅仅是内部的,输出会被转换回原始的范围。
10.reset(必须要在AutoBuild为true的条件下进行设置否则默认即可,否则预测结果会全部相同)
这将允许网络用一个更低的学习速率复位。如果网络偏离了答案其将会自动的用更低的学习速率复位并且重新训练。只有当GUI没有被set的时候这个选项才是available的。
注意的是如果这个网络偏离了将会允许重新启动,并且返回一个错误信息。
11.seed(对预测结果影响大)
Seed用于初始化随机数的生成。随机数被用于设定节点之间连接的初始权重,并且用于刷新训练集。
12.trainingTime(类似迭代次数)
训练的迭代次数。如果设置的是非0那么这个网络能够终止的比较早。结果有一定影响,但是不大。
13.validationSetSize(验证百分比)
Validation set的百分比,训练将持续直到其观测到在validation set上的误差已经不再变化,或者训练的时间已经到了。对结果影响大。
如果validation set设置的是0那么网络将一直训练直到达到迭代的次数。
14.validationThreshold
用于终止验证测试。这个值用于决定在训练终止前在一行内的验证错误可以变的更差。对结果几乎没用影响。


4.3模型好坏的评价标准

几种常见的度量,可以用于评估数值预测成功与否。表中各个公式中的p为预测值,a为真实值。

相关性系数 (Correlation Coecient)是真实值a与预测值p之间的统计相关性,它是一个[-1,1]之间的实数。1表示完全相关,0表示完全不相关,-1表示反向完全相关。对一个数值预测模型,相关性系数越接近1表明预测能力越好,而其他误差相关的度量都是越小越接近0越好。均方误差是最常用的基本方法,程序中得不到,但是可以得到均方根误差。


4.4API的调用

程序中调用weka的API方法顺序及作用:

1.生成一个可以自动分析sql的实例;

InstanceQuery query = new InstanceQuery();

2.设置要分析的sql1用于生成模型

query.setQuery(sql);

3.获取数据

Instances insTrain=query.retrieveInstances();

4.设置要预测的属性

insTrain.setClassIndex(insTrain.numAttributes()-1);//属性的下标,默认都是最后一个属性

5.创建分类器

MultilayerPerceptron mp=new MultilayerPerceptron();

6.分类器初始化参数

//设置入参

mp.setGUI(false);//是否进行图形交互

mp.setAutoBuild(true);//设置网络中的连接和隐层

mp.setDebug(false);//控制打印信息

mp.setDecay(false);//如果为true会降低学习速率

mp.setHiddenLayers("a");//对预测结果几乎没用影响

mp.setLearningRate(0.3);//Weights被更新的数量,对预测结果影响很大

mp.setMomentum(0.8);//当更新weights时设置的动量

mp.setNormalizeAttributes(true);//可以优化网络性能

mp.setNormalizeNumericClass(true);//如果预测的是数值型可以提高网络的性能

mp.setReset(false);//必须要在AutoBuild为true的条件下进行设置否则默认即可

mp.setSeed(0);//随机种子数,对预测结果影响大

mp.setTrainingTime(300);//迭代的次数,有一定影响,但是不大

mp.setValidationSetSize(20);//验证百分比,影响大

mp.setValidationThreshold(50);//几乎没用影响

mp.setNominalToBinaryFilter(true);//可以提高性能

7.进行线性回归分析

rbn.buildClassifier(insTrain); 

8.评估

Evaluation eval=new Evaluation(insTrain);  

eval.evaluateModel(mp, insTrain);

9.获取评价标准

System.out.println("平均绝对误差:"+eval.meanAbsoluteError());//越小越好

System.out.println("均方根误差:"+eval.rootMeanSquaredError());//越小越好

System.out.println("相关性系数:"+eval.correlationCoefficient());//越接近1越好

System.out.println("根均方误差:"+eval.rootMeanSquaredError());//越小越好

System.err.println("是否准确的参考值:"+eval.meanAbsoluteError());//越小越好

10.获取模型公式

String model=mp.toString();//看不出模型的意思

以上是使用历史数据获取模型用到的方法及使用情况。对要预测的数据进行预测还需下面的方法:

11.获取待预测的数据(sql2中的待预测数据用?表示)

query.setQuery(sql2);

Instances insTest=query.retrieveInstances();//获取待预测数据

insTrain.setClassIndex(insTrain.numAttributes()-1);//设置成相同的属性下标,默认都是最后一个属性

12获取预测结果(两种方法)

方法一:直接返回到数组中

double yuce[]=eval.evaluateModel(mp, insTest);//将预测结果以数组的形式返回

方法二:调用分类器方法classifyInstance(Instance instance)循环输出每一个实例的预测值

double  sum = insTest.numInstances();//获取预测实例的总数

for(int i=0;i<sum;i++){//

//<---输出预测数据--->

System.out.println(insTest.instance(i).value(0)+" : "+rbn.classifyInstance(insTest.instance(i)));

}

13.将相应的预测结果插入数据库中保存。(如对模型不满意,可以修改各项参数再次进行分析)


原文地址:http://nanjiguilai.blog.163.com/blog/static/114800242201322033836158/

使用weka软件进行回归、分类 该数据集包含150条数据,每条数据包含4个属性(花萼长度,花萼宽度,花瓣长度,花瓣宽度)和1个类别。Percentage split选项,当数据集没有测试集时,通过设置右侧的数字来将数据集分为训练集和测试集,图中的数字为66,其代表将数据集66%的数据作为训练集,其余34%的数据(51个实例)作为测试集。本实验选取训练数据35组,测试数据14组,自变量为研发费用、管理费用、营销费用,因变量为利润,进行多元回归。51个实例中有49个分类正确,2个分类错误,分类效果比决策树稍好。个人数据集、Iris数据集。 阅读详情

相关推荐

Andrew Ng机器学习笔记+Weka相关算法实现(三)神经网络和参数含义

神经网络的概念和基本推导,Weka中实现神经网络和参数的基本含义

乔阳的博客 1万+

weka中数据预测,方法回归,参数等学习总结

转自网易博客http://nanjiguilai.blog.163.com/blog/static/114800242201322033836158/ 1.线性回归(LinearRegression) 1.1原理 在统计学中,线性回归是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有

luoxia0805的专栏 5093

【数据挖掘软件 weka】第一部分 开始使用weka

https://www.youtube.com/watch?v=LcHw2ph6bss&list=PLm4W7_iX_v4NqPUjceOGd-OKNVO4c_cPD 这是由新西兰Waikato大学提供,关于如何使用weka进行数据挖掘的在线学习课程。

问就ycy的博客 1万+

数据挖掘与机器学习:Weka Java 编程接口 API

文章目录1 环境配置2 数据模型2.1 Instances:数据集2.2 Instance:数据实例2.3 Attribute:属性类3 DataSource4 DataSink5 数据集处理5.1 创建数据集5.2 添加数据6 过滤7 分类8 聚类 1 环境配置 在 Idea 上创建 Maven Java 项目,并添加依赖: <dependency> <groupId>nz.ac.waikato.cms.weka</groupId> &l

抱朴守拙 6663

基于Weka的典型数据挖掘应用

实验目标 理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。 实验内容 下载并安装Java环境(JDK 7.0 64位)。 下载并安装Weka 3.7版。 基于Weka的数据分类。 基于Weka的数据回归。 基于Weka的数据聚类。 基于Weka的关联规则分析。 实验步骤 下载并安装Java环境(...

赴前尘 4531

Java集成Weka做线性回归的例子

线性回归在数据挖掘领域应也是非常常见,即根据现有的数据集(行向量组成的矩阵),(训练)模拟出一个合适的规律(函数),来推测任何新给出的数据组合(向量)应该得到的值。具体的描述可以参见各种博客,怎么推导的看来看去一知半解,但总而言之结果也简单,就是计算得到一个“适当”的多元线性函数Y=a0+a1*x1+a2*x2+a3*x3+…+ak*xk。

hanphy的专栏 7616

weka 基础

1. 简介  WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。  详见 http://www.china-pub.com/computers/commo

Yt_Sports的博客 1294

【数据挖掘软件 weka】第四部分 更多的分类器

https://www.youtube.com/watch?v=LcHw2ph6bss&list=PLm4W7_iX_v4NqPUjceOGd-OKNVO4c_cPD 这是由新西兰Waikato大学提供,关于如何使用weka进行数据挖掘的在线学习课程。

问就ycy的博客 2614

Weka算法介绍[

RWeka (http://cran.r-project.org/web/packages/RWeka/index.html) :  1) 数据输入和输出  WOW():查看Weka函数的参数。  Weka_control():设置Weka函数的参数。  read.arff():读Weka Attribute-Relation File Format (ARFF)格式的数据。  writ

yiluohan0307的专栏 1312

weka中文使用说明(二)

2.2.3处理数据 通常对于数据挖掘任务来说,ID这样的信息是无用的,我们将之删除。在区域5勾选属性“id”,并点击“Remove”。将新的数据集保存为bank-data.arff,并用UltraEdit打开这个ARFF文件。我们发现,在属性声明部分,WEKA已经为每个属性选好了合适的类型。     有些算法只能处理所有的属性都是分类型的情况。这时候我们就需要对数值型的属性进行离散化。在这

u012963068的专栏 8553

一步一步构建自己的BayesNet代码-基于Weka

首先要把握清楚BayesNet大体上是怎么用:有一个主特征:Class,目的就是判断这个Class的值,BayesNet从训练数据中学习出一个模型,用这个模型做预测,预测测试数据中的Class的值,每个实例是一行,Class T1 T2......Tn T是指特征也就是属性。所以我们的目标任务功能就是自己写代码,完成上述这个过程。好了现在开始。(套用Weka中的解释:WEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中,这是有原因的。 在这两个任务中

Skai_优快云的专栏 6842

java调用weka里面的分类器做回归

这里是M5P分类器,源文档有很大帮助package rf; import java.io.BufferedReader; import java.io.FileReader; import java.io.PrintStream; import weka.classifiers.rules.M5Rules; import weka.classifiers.trees.DecisionStump;

balllee的专栏 3345

基于VS2012 C#调用bartender自动打印条形码

GitHub:https://github.com/sanjaywu/BarcodePrintTool 一、在引用添加Interop.BarTender.dll 1、在资源解决方案的引用这里,右击选择“添加引用”: 2、按照如下步骤添加Interop.BarTender.dll引用: 3、添加完成 二、使用bartender工具设置打印模板 1、页面大小设置: 2、条码设置: 三、代码...

Sanjay_Wu的博客 5955

学习weka(2):weka软件使用实例:针对kdd99数据集进行训练和测试

前言 kdd99 数据集之前介绍过,没有看的可以参考:KDD CUP99数据集预处理(Python实现) 这里拿 kdd99 数据集练练手,主要目的是熟悉一下 weka 的使用。 1、数据集准备 使用 WEKA 作数据挖掘,面临的第一个问题往往是我们的数据不是 ARFF 格式的。幸好,WEKA 还提供了对 CSV 文件的支持,而这种格式是被很多其他软件所支持的。 虽然 weka 也支持 csv 格式,但是建议还是转为 ARFF 格式最好。 1.1 简单打开一个 csv 文件(加载数据) (1)加载数据方式

蓝亚之舟的博客 8024

保姆级教程:用R语言自动化处理FAERS季度数据(从文件合并到删除废弃Case)

本文提供了一份详细的R语言教程,指导如何自动化处理FAERS季度数据,包括文件合并和删除废弃Case。通过使用tidyverse、fs等R包,构建健壮的自动化流程,特别适合药物安全监测领域的数据分析师。教程涵盖环境准备、智能合并多季度数据、精准删除废弃Case等关键步骤,并提供了错误处理与日志记录的实用技巧。

weixin_42701915的博客 124

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3458

java weka 分类_java调用weka里面的分类器做回归 | 学步园

这里是M5P分类器,源文档有很大帮助package rf;import java.io.BufferedReader;import java.io.FileReader;import java.io.PrintStream;import weka.classifiers.rules.M5Rules;import weka.classifiers.trees.DecisionStump;import...

weixin_39969976的博客 265

【MATLAB/Simulink】从模型到飞行:基于PX4与Rflysim的无人机MBD实战指南

本文详细介绍了基于MATLAB/Simulink与PX4、Rflysim的无人机模型开发与飞行控制实战指南。通过MBD(基于模型设计)方法,从建模、仿真到代码生成与硬件部署,实现无人机开发的高效闭环。文章涵盖开发环境搭建、动力学建模、控制算法实现及测试验证全流程,为无人机开发者提供实用技巧与优化建议。

weixin_30181209的博客 410

【使用分享】Java使用weka进行时间序列预测

本教程将向您展示如何使用Weka库在Java中进行基于时间序列数据的预测。我们将使用示例数据集,该数据集包含每月销售额的历史记录,并尝试预测未来12个月的销售额。

Ry1的博客 3402

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

shannanshouyin的博客 1276

电信光猫隐藏的VOIP功能揭秘:不用座机也能打电话(EasySip实战)

本文揭秘了电信光猫隐藏的VOIP功能,通过EasySip实战演示如何无需座机实现高清通话。详细解析了光猫的SIP协议支持、语音VLAN配置及网络架构优化,帮助用户利用现有设备提升通话质量并扩展设备兼容性,特别适合智能家居和企业级应用场景。

weixin_29268385的博客 755

weka中的各种算法说明

1) 数据输入和输出 WOW():查看Weka函数的参数。 Weka_control():设置Weka函数的参数。 read.arff():读Weka Attribute-Relation File Format (ARFF)格式的数据。 write.arff:将数据写入Weka Attribute-Relation File Format (ARFF)格式的文件。 2) 数据预处理 N...

jp_zhou256的博客 2137

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

WW、forever的博客 195
上一篇: 知识积累之线程的睡眠时间
下一篇: 求最大公约数(GCD)和最小公倍数(LCM)的几个方法
热血大婶
博客等级 码龄16年 58粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值