精华内容
下载资源
问答
  • 数据挖掘课程中,关于分类算法的课程实验报告,要求使用weka工具完成
  • weka-3-8-3-x64.大数据:数据处理,算法分析等为一体的一个软件。我做数据分析的时候,会直接套这里面的算法,跑一下结果之类的,还挺方便的。
  • weka数据挖掘分析

    千次阅读 2017-05-16 08:07:36
    基于Weka 数据聚类分析银行用户的购买力 通过分析对银行储户信息的分析,进行cluster分类,最终找到合适的消费 人群。 实验基本原理及目的 聚类分析中的“类”(cluster)和前面分类的“类”(class)是不同的,对...
    基于Weka 数据聚类分析银行用户的购买力
     通过分析对银行储户信息的分析,进行cluster分类,最终找到合适的消费
    

    人群。

    1. 实验基本原理及目的
      聚类分析中的“类”(cluster)和前面分类的“类”(class)是不同的,对 cluster 更加准确的翻译应该是“簇”。聚类的任务是把所有的实例分配到若干的簇,使得同一个簇的实例聚集在一个簇中心的周围,它们之间距离的比较近;而不同簇实例之间的距离比较远。对于由数值型属性刻画的实例来说,这个距离通常指欧氏距离。

    在本实验中,我们对前面的“bank-data”作聚类分析,使用最常见的 K 均值(K-means)算法。下面我们简单描述一下 K 均值聚类的步骤。
    K 均值算法首先随机的指定 K 个簇中心。然后:

    (1)将每个实例分配到距它最近的簇中心,得到 K 个簇;(2)计分别计算各簇中所有实例的均值,把它们作为各簇新的簇中心。

    重复(1)和(2),直到 K 个簇中心的位置都固定,簇的分配也固定。

    本次实验的目的,是通过利用 Weka 中提供的 simpleKmeans 方法对“bank-data”进行聚类分析,更深刻的理解 k 均值算法,并通过对实验结果进行观察分析,找出实验中所存在的问题。

    1. 数据的准备及预处理

    原始数据“bank-data.xls”是 excel 文件格式的数据,需要转换成 Weka 支持的 ARFF 文

    件格式的。转换方法:在 excel 中打开“bank-data.xls”,选择菜单文件—>另存为,在弹出的对话框中,文件名输入“bank-data”,保存类型选择“CSV(逗号分隔)”,保存,我们便可得到“bank-data.csv”文件;然后,打开 Weka 的 Exporler,点击 Open file 按钮,打开刚才得到的 “ bank-data.csv ” 文件,点击 “ save ” 按钮,在弹出的对话框中,文件名输入

    “bank-data.arff”,文件类型选择 “Arff data files (*.arff)”,这样得到的数据文件为 “ bank-data.arff”。
    K 均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值 0 和 1 的属性。WEKA 将自动实施这个分类型到数值型的变换,而且 WEKA 会自动对数值型的数据作标准化。因此,对于 ARFF 格式的原始数据“bank-data.arff”,我们所做的预处理只是删去属性 “id”,修改属性 “ children”为分类型。 修改过程如下:在 Ultredit 中打开

    “bank-data.arff”,将@attribute children numeric 改成如下:

    1

    图 1 修改 children 为分类型

    这样我们最终得到的数据文件为“bank-data.arff”,含 600 条实例。

    1. 实验过程及结果截图

    用“Explorer”打开刚才得到的“bank-data.arff”,并切换到“Cluster”。点“Choose”按

    钮选择“SimpleKMeans”,这是 WEKA 中实现 K 均值的算法。点击旁边的文本框,修改

    “numClusters”为 6,说明我们希望把这 600 条实例聚成 6 类,即 K=6。下面的“seed”参

    数是要设置一个随机种子,依此产生一个随机数,用来得到 K 均值算法中第一次给出的 K 个簇中心的位置。我们不妨暂时让它就为 10。

    选中“Cluster Mode”的“Use training set”,点击“Start”按钮,观察右边“Clusterer output”

    给出的聚类结果如下:

    2

    也可以在左下角“Result list”中这次产生的结果上点右键,“View in separate window”

    在新窗口中浏览结果。

    1. 实验结果分析

    4.1实验结果

    下面对实验结果进行解释。观察图 1,首先我们注意到结果中有这么一行:
    Within cluster sum of squared errors: 1604.7416693522332

    这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。也许你得到的数值会不一样;实际上如果把“seed”参数改一下,得到的这个数值就可能会不一样。我们应该多尝试几个“seed”,并采纳这个数值最小的那个结果。例如我让“seed”取 100,就得到:

    Within cluster sum of squared errors: 1555.6241507629218

    我们该取前面这个。当然再尝试几个“seed”,这个数值可能会更小。
    3
    接下来“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean),如 cluster0 的数值型变量 age 的均值 37.1299;分类型的就是它的众数(Mode),如 cluster0 的分类型变量 children 的众数为 3,也就是说这个属性上取值为众数值3(有 3 个孩子)的实例最多。对于数值型的属性,还给出了它在各个簇里的标准差(Std Devs)。最后的“Clustered Instances”是各个簇中实例的数目及百分比。

    为了观察可视化的聚类结果,我们在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。

    图 3 x轴为income y轴为age
    实验结果可视化

    可以在这里点 “Save”把聚类结果保存成 ARFF 文件。在这个新的 ARFF 文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇,如下图 4。

    4

                        图 4 结果的 arff 文件
    

    4.2 存在的问题

    在本次实验中,我用了不同的“seed”值对数据进行了三阶段的实验分析:第一阶段不断增大 seed 值,直到为实例数目 600;通过观察第一阶段的实验结果,找到两个最小值点,在第二阶段和第三阶段中,在最小值点 seed 附近不断改变 seed 值,以逼近可能最小的“Within cluster sum of squared errors”值。我把部分实验结果整理如下表:

    表 1 实验结果分析

    通过上述分析结果,我们可以发现age和region与income影响较为直接

    Chirlden 等等属性与income影响并无明显影响。

        我们知道,“Within cluster sum of squared errors”值越小说明同一簇实例之间的距离越小,聚类的结果也就越好。从表中我们可以看出“Within cluster sum of squared errors”的最小值有两个,即 seed取200 时的 1551.72650865326,seed取400 时的 1535.19232923634,这也是本次实验中最好的一个方案结果。我所遇到的问题是,如何迅速的找到是 “Within Cluster sum of squared errors” 的最小值的聚类方案?如何以最快的方法取获得最好的聚类方案,这个问题是不是可以在weka升级实现?
    
    展开全文
  • 学习weka(7):weka数据预处理方法

    千次阅读 2021-04-11 09:30:58
    下面把一些常见的机器学习数据处理方法处理说一下(下面所有实例都是在 Explorer 模块上进行的)。 2、数据预处理方法 可以看到其 filters 可以分为五类,重点是画红框的部分:supervised 是有监督的,...

    1、前言

    weka 数据预处理阶段全部在 filter 上:

    在这里插入图片描述

    下面把一些常见的机器学习数据与处理方法处理说一下(下面所有实例都是在 Explorer 模块上进行的)。
    在这里插入图片描述

    2、数据预处理方法

    可以看到其 filters 可以分为五类,重点是画红框的部分:supervised 是有监督的,unsupervised 是无监督的;每一种往下分,又分为基于 attribute(属性列)和 instance(实例),基于属性列是按照列来进行操作的,基于实例是按照数据行进行操作的。

    2.1 常见机器学习预处理方法

    常见的机器学习预处理方法一般有缺失值处理、标准化、规范化、正则化和离散化,下面针对这几项一一记录一下。

    2.1.1 缺失值处理

    缺失值处理函数:weka.filters.unsupervised.attribute.ReplaceMissingValues,按照顺序可以在 filters 中找到,具体如下图:

    在这里插入图片描述

    其参数如下:

    在这里插入图片描述

    三个参数重点在 ignoreClass 上,这个是判断是否要对标签进行缺失值处理的参数。

    实例

    加载 weka 自带数据集:weather.nominal.arff,将其两个属性外加标签(默认最后一列为标签)编辑(在菜单中寻找 Edit…)为缺失值:

    在这里插入图片描述

    对其进行缺失值处理(使用默认参数):

    在这里插入图片描述

    可以看到,第 2 和 3 列属性缺失值都被填充完毕,而第 5 列则没有,这是为什么呢,来看一下官方解释:

    Replaces all missing values for nominal and numeric attributes in a dataset with the modes and means from the training data. The class attribute is skipped by default.

    翻译过来:是使用均值(数值型)和模式(我认为对于非数值则是数量最多的属性值填充)填充缺失值,默认跳过标签列(其中 ignoreClass 参数默认为 False)。

    OK 了,将 ignoreClass 设置为 True,再进行一下缺失值处理:

    在这里插入图片描述

    2.1.2 标准化(standardize)

    weka 中的类:weka.filters.unsupervised.attribute.Standardize

    标准化给定数据集中所有数值属性的值到一个 0 均值和单位方差的正态分布。根据类包依赖顺序,在 filters 中找到其位置,查看一下参数:

    在这里插入图片描述

    和缺失值处理参数一样,不再细说。

    实例

    加载 weka 自带数据集:cpu.arff,处理之前原数据(参数为默认,一般标签数据是不会被标准化的):

    在这里插入图片描述

    处理之后:

    在这里插入图片描述

    2.1.3 规范化(normalize)

    规范化所在类:weka.filters.unsupervised.attribute.Normalize。

    数据规范化,可以将所有数据通过数据变换,转换到指定范围内。来看一下其参数:

    在这里插入图片描述

    除了 ignoreClass,重要参数为 scale 和 translation,这两个参数指定了转换范围,转换公式为:[translation,translation+scale]。比如,scale=2,translation 为-1,那么转换后的数据范围为:[-1,1]

    需要注意的是:无论是规范化还是标准化都是以列为单位。

    实例

    加载 weka 自带数据集:cpu.arff,处理前数据集为:

    在这里插入图片描述

    规范化处理之后(默认参数):

    在这里插入图片描述

    2.1.4 离散化处理(discretize)

    离散化所在类:weka.filters.supervised.attribute.Discretize 和 weka.filters.unsupervised.attribute.Discretize

    分别是监督和无监督的数值属性的离散化,用来离散数据集中的一些数值属性到分类属性。

    无监督离散化处理参数:

    在这里插入图片描述

    这里参数比较多,简要叙述一下:

    • attributeIndices:属性索引,指定要执行的属性的范围,默认参数为“first-last”,表示所有列中离散列都会被选中,如果只是想选择某一列,直接输入数字即可,多列用逗号隔开。
    • binRangePrecision:在生成 bin 标签时用于切割点的小数位数;
    • bins:分段数,离散化后会将连续数据分为多段;
    • debug:调试,如果设置为真,过滤器可以输出附加信息到控制台
    • desiredWeightOfInstancesPerInterval:在每个间隔中等频绑定设置所需的实例权重
    • doNotCheckCapabilities:如果设置为 true,则过滤器的功能在构建之前不会被检查(小心使用,以减少运行时间)
    • findNumBins:使用 leave-one-out 优化等宽容器的数量,不适合于等频
    • ignoreClass:是否忽略类标签索引
    • invertSelection:反向选择,设置属性选择模式,如果是 false 则在范围内仅选择数值属性离散,如果是 true 则只有非选择的属性将被离散化
    • makeBinary:生成二进制属性
    • spreadAttributeWeight:生成二进制属性时,将旧属性的权重分散到新属性中。 不要为每个新属性赋予旧的权重。
    • useBinNumbers:使用 bin 编号(如 BXofY),而不是使用范围
    • useEqualFrequency:等频离散化,如果设置为真,则将使用等频而不是等宽

    上面标黑的是需要注意的参数。

    实例

    加载 weka 自带数据集 weather.numeric.arff,原数据如下:

    在这里插入图片描述

    可以看到其连续属性只有两列,下面修改参数如下:

    在这里插入图片描述

    只修改了一项 bins,将其改为了 3,其他都是默认项,看一下离散化结果:

    在这里插入图片描述

    可以看到,两列连续性数据已经被离散化了(注意 attributeIndices 参数为所有,但是离散化只会选择连续性数据列),而且离散结果是 3 个——对应 bins

    通过这个结果,可以看到离散化原理就是将连续数据分段,以分段范围定义为离散属性值,而连续值在哪个分段内就赋予那个分段范围值,比如 72,在 71-78 内,则其离散化后就成了 71-78。

    我们更改一下 useBinNumbers 参数,再运行一遍(注意要加载原数据,当前数据已经不存在连续属性列,即便更参数运行,当前数据集也不会再发生变化):

    在这里插入图片描述

    可以看到其更改了名称,但是本质还是一样的,这个有一点不好的就是两列离散值是重复的,都是 B1of3,B2of3 和 B3of3。

    OK,今天就到这里,更多精彩内容关注我的个人网站:蓝亚之舟博客

    展开全文
  • 数据挖掘,基于weka数据聚类分析,实验报告
  • weka数据分析 回归分析

    千次阅读 2016-11-17 15:18:46
    可能需要大量时间才能创建一个具有如此多数据的模型(但我估计您已预见到了 WEKA 能够很好地处理这些数据)。 要用这个数据集生成一个回归模型,我们需要严格地按照处理房子数据的步骤来处理这些数据,所以...

    回归

    回归是最为简单易用的一种技术,但可能也是最不强大(这二者总是相伴而来,很有趣吧)。此模型可以简单到只有一个输入变量和一个输出变量(在 Excel 中称为 Scatter 图形,或 OpenOffice.org 内的 XYDiagram)。当然,也可以远比此复杂,可以包括很多输入变量。实际上,所有回归模型均符合同一个通用模式。多个自变量综合在一起可以生成一个结果 — 一个因变量。然后用回归模型根据给定的这些自变量的值预测一个未知的因变量的结果。

    每个人都可能使用过或看到过回归模型,甚至曾在头脑里创建过一个回归模型。人们能立即想到的一个例子就是给房子定价。房子的价格(因变量)是很多自变量 — 房子的面积、占地的大小、厨房是否有花岗石以及卫生间是否刚重装过等的结果。所以,不管是购买过一个房子还是销售过一个房子,您都可能会创建一个回归模型来为房子定价。这个模型建立在邻近地区内的其他有可比性的房子的售价的基础上(模型),然后再把您自己房子的值放入此模型来产生一个预期价格。

    让我们继续以这个房屋定价的回归模型为例,创建一些真实的数据。在我的邻近地区有一些房子出售,我试图找到我自己房子的合理价格。我还需要拿此模型的输出申报财产税。

    表 1. 回归模型的房屋值
    房子面积(平方英尺) 占地的大小 卧室 花岗岩 卫生间有无重装? 销售价格
    3529 9191 6 0 0 $205,000
    3247 10061 5 1 1 $224,900
    4032 10150 5 0 1 $197,900
    2397 14156 4 1 0 $189,900
    2200 9600 4 0 1` $195,000
    3536 19994 6 1 1 $325,000
    2983 9365 5 0 1 $230,000
               
    3198 9669 5 1 1 ????

    好的消息是(也可能是坏消息,取决于您自己的看法)上述对回归模型的简单介绍只触及了一些皮毛,这种触及甚至都不会被真正地注意到。关于回归模型有大学的课程可以选择,那会教授给您有关回归模型的更多信息,甚至多过您想要知道的。但我们的简介让您充分熟悉了这个概念,已足够应付本文中 WEKA 试用。如果对回归模型以及其中的数据统计的细节有更深的兴趣,您可以用自己喜爱的搜索引擎搜索如下的术语:least squares、homoscedasticity、normal distribution、White tests、Lilliefors tests、R-squared 和 p-values。

    为 WEKA 构建数据集

    为了将数据加载到 WEKA,我们必须将数据放入一个我们能够理解的格式。WEKA 建议的加载数据的格式是 Attribute-Relation File Format (ARFF),您可以在其中定义所加载数据的类型,然后再提供数据本身。在这个文件内,我们定义了每列以及每列所含内容。对于回归模型,只能有 NUMERIC 或 DATE 列。最后,以逗号分割的格式提供每行数据。我们为 WEKA 使用的 ARFF 文件如下所示。请注意在数据行内,并未包含我的房子。因为我们在创建模型,我房子的价格还不知道,所以我们还不能输入我的房子。

    清单 1. WEKA 文件格式
    @RELATION house
    
    @ATTRIBUTE houseSize NUMERIC
    @ATTRIBUTE lotSize NUMERIC
    @ATTRIBUTE bedrooms NUMERIC
    @ATTRIBUTE granite NUMERIC
    @ATTRIBUTE bathroom NUMERIC
    @ATTRIBUTE sellingPrice NUMERIC
    
    @DATA
    3529,9191,6,0,0,205000 
    3247,10061,5,1,1,224900 
    4032,10150,5,0,1,197900 
    2397,14156,4,1,0,189900 
    2200,9600,4,0,1,195000 
    3536,19994,6,1,1,325000 
    2983,9365,5,0,1,230000

    将数据载入 WEKA

    数据创建完成后,就可以开始创建我们的回归模型了。启动 WEKA,然后选择 Explorer。将会出现 Explorer 屏幕,其中 Preprocess 选项卡被选中。选择 Open File 按钮并选择在上一节中创建的 ARFF 文件。在选择了文件后,WEKA Explorer 应该类似于图 3 中所示的这个屏幕快照。

    图 3. 房屋数据加载后的 WEKA

    在这个视图中,WEKA 允许您查阅正在处理的数据。在 Explorer 窗口的左边,给出了您数据的所有列(Attributes)以及所提供的数据行的数量(Instances)。若选择一列,Explorer 窗口的右侧就会显示数据集内该列数据的信息。比如,通过选择左侧的 houseSize 列(它应该默认选中),屏幕右侧就会变成显示有关该列的统计信息。它显示了数据集内此列的最大值为 4,032 平方英尺,最小值为 2,200 平方英尺。平均大小为 3,131 平方英尺,标准偏差为 655 平方英尺(标准偏差是一个描述差异的统计量度)。此外,还有一种可视的手段来查看数据,单击Visualize All 按钮即可。由于在这个数据集内的行数有限,因此可视化的功能显得没有有更多数据点(比如,有数百个)时那么功能强大。

    好了,对数据的介绍已经够多了。让我们立即创建一个模型来获得我房子的价格。

    用 WEKA 创建一个回归模型

    为了创建这个模型,单击 Classify 选项卡。第一个步骤是选择我们想要创建的这个模型,以便 WEKA 知道该如何处理数据以及如何创建一个适当的模型:

    1. 单击 Choose 按钮,然后扩展 functions 分支。
    2. 选择 LinearRegression 叶。

    这会告诉 WEKA 我们想要构建一个回归模型。除此之外,还有很多其他的选择,这说明可以创建的的模型有很多。非常多!这也从另一个方面说明本文只介绍了这个主题的皮毛。有一点值得注意。在同一个分支还有另外一个选项,称为 SimpleLinearRegression 。请不要选择该选项,因为简单回归只能有一个变量,而我们有六个变量。选择了正确的模型后,WEKA Explorer 应该类似于图 4。

    图 4. WEKA 内的线性回归模型

    我能用电子数据表达到同样的目的么?

    简单而言:不可以。深思熟虑后的答案是:可以。大多数流行的电子数据表程序都不能轻松完成我们用 WEKA 实现的功能,即定义一个具有多个自变量的线性模型。不过,您可以 十分容易地实现一个 Simple Linear Regression 模型(具有一个自变量)。如果您有足够的勇气,甚至可以进行一个多变量的回归,但是这将非常困难,绝对不如用 WEKA 来得简单。 本文的 参考资料 部分有一个 Microsoft® Excel® 的示例视频。

    现在,选择了想要的模型后,我们必须告诉 WEKA 它创建这个模型应该使用的数据在哪里。虽然很显然我们想要使用在 ARFF 文件内提供的那些数据,但实际上有不同的选项可供选择,有些甚至远比我们将要使用的选项高级。其他的三个选择是:Supplied test set 允许提供一个不同的数据集来构建模型; Cross-validation 让 WEKA 基于所提供的数据的子集构建一个模型,然后求出它们的平均值来创建最终的模型;Percentage split WEKA 取所提供数据的百分之一来构建一个最终的模型。这些不同的选择对于不同的模型非常有用,我们在本系列后续文章中会看到这一点。对于回归,我们可以简单地选择 Use training set。这会告诉 WEKA 为了构建我们想要的模型,可以使用我们在 ARFF 文件中提供的那些数据。

    创建模型的最后一个步骤是选择因变量(即我们想要预测的列)。在本例中指的就是房屋的销售价格,因为那正是我们想要的。在这些测试选项的正下方,有一个组合框,可用它来选择这个因变量。列 sellingPrice 应该默认选中。如果没有,请选择它。将Output predictions选中,如下图。


    我们准备好创建模型后,单击 Start。图 5 显示了输出结果。

    图 5. WEKA 内的房屋价格回归模型

    解析这个回归模型

    WEKA 可不马虎。它会把这个回归模型径直放在输出,如清单 2 所示。

    清单 2. 回归输出
    sellingPrice = (-26.6882   * houseSize) + 
                   (7.0551     * lotSize) + 
                   (43166.0767 * bedrooms) +
                   (42292.0901 * bathroom) 
                 - 21661.1208

    选择要预测的数据,点击Supplied test set右侧的Set按钮导入文件。就是一行待预测数据,并且需要预测的房价先以?代替。

    清单 3 显示了结果,其中已经插入了我房子的价格。

    清单 3. 使用回归模型的房屋价格
    sellingPrice = (-26.6882   * 3198) + 
                   (7.0551     * 9669) + 
                   (43166.0767 * 5) + 
                   (42292.0901 * 1) 
                 - 21661.1208
    
    sellingPrice = 219,328


    不过,回过头来看看本文的开头部分,我们知道数据挖掘绝不是仅仅是为了输出一个数值:它关乎的是识别模式和规则。它不是严格用来生成一个绝对的数值,而是要创建一个模型来让您探测模式、预测输出并根据这些数据得出结论。让我们更进一步来解读一下我们的模型除了房屋价格之外告诉我们的模式和结论:

    • 花岗石无关紧要— WEKA 将只使用在统计上对模型的正确性有贡献的那些列(以 R-squared 量度,但这超出了本文的范围)。它将会抛弃并忽视对创建好的模型没有任何帮助的那些列。所以这个回归模型告诉我们厨房里的花岗石并不会影响房子的价值。
    • 卫生间是有关系的— 因我们为卫生间使用了简单的 0 或 1 值,所以我们可以使用来自回归模型的这个系数来决定卫生间的这个值对房屋价值的影响。这个模型告诉我们它使房子的价值增加了 $42,292。
    • 较大的房子价格反而低— WEKA 告诉我们房子越大,销售价格越低?这可以从 houseSize 变量前面负的系数看出来。此模型告诉我们房子每多出一平方英尺都会使房价减少 $26?这根本没有意义。这是在美国!当然是房子越大越好,特别是在我所在的得克萨斯州。那么我们怎么才能解释这一点呢?这是无用数据入、无用数据出的一个很好的例子。房子的大小并不是一个自变量,它还与卧室变量相关,因为房子大通常卧室也多。所以我们的模型并不完美。但是我们可以修复这个问题。还记得么:在 Preprocess 选项卡,可以从数据集中删除列。对于本例,我们删除 houseSize 列并创建另一个模型。那么它会如何影响房子的价格呢?这个新模型又如何更有实际意义?(修改后的我的房子价格是: $217,894)。

    对统计学家的一个提示

    这个模型打破了一个常规线性回归模型的几个要求,因为每个列并不是完全独立的,并且这里也没有足够的数据行来生成一个有效的模型。由于本文主要的目的是介绍 WEKA 这个数据挖掘工具,因此我们极大地简化了示例数据。

    要想把这个简单的示例提升到一个新的级别,让我们来看一下 WEKA Web 站点上作为回归示例提供给我们的一个数据文件。理论上讲,这要比我们七个房子的简单示例要复杂得多。这个示例数据文件的作用是创建一个能基于汽车的几个特性来推测其油耗(每加仑英里数,MPG)的回归模型(请务必记住,数据取自 1970 至 1982 年)。这个模型包括汽车的如下属性:汽缸、排量、马力、重量、加速度、年份、产地及制造商。此外,这个数据集有 398 行数据,这些数据足以满足我们的多种统计需求,而这在我们的房价模型中是不能实现的。理论上讲,这是一个极为复杂的回归模型,WEKA 可能需要大量时间才能创建一个具有如此多数据的模型(但我估计您已预见到了 WEKA 能够很好地处理这些数据)。

    要用这个数据集生成一个回归模型,我们需要严格地按照处理房子数据的步骤来处理这些数据,所以这里我不再赘述。继续并创建这个回归模型。它将生成如清单 4 所示的输出。

    清单 4. MPG 数据回归模型
    class (aka MPG) =
    
         -2.2744 * cylinders=6,3,5,4 +
         -4.4421 * cylinders=3,5,4 +
          6.74   * cylinders=5,4 +
          0.012  * displacement +
         -0.0359 * horsepower +
         -0.0056 * weight +
          1.6184 * model=75,71,76,74,77,78,79,81,82,80 +
          1.8307 * model=77,78,79,81,82,80 +
          1.8958 * model=79,81,82,80 +
          1.7754 * model=81,82,80 +
          1.167  * model=82,80 +
          1.2522 * model=80 +
          2.1363 * origin=2,3 +
          37.9165

    在您自已生成这个模型时,您会看到 WEKA 只用了不到一秒的时间就处理好了这个模型。所以,即使要处理的是具有大量数据的功能强大的回归模型,就计算而言,也不是什么问题。这个模型看上去应该比房子数据复杂得多,但事实并非如此。例如,这个回归模型的首行,-2.2744 * cylinders=6,3,5,4 表示,如果汽车有 6 个缸,就会在此列中放上一个 1,如果汽车有 8 个缸,就会放上一个 0。让我们从这个数据集中取一个示例行(第 10 行)并将这些数值放入回归模型,看看我们这个模型的输出是否与数据集中提供给我们的输出相似。

    清单 5. 示例 MPG 数据
    data = 8,390,190,3850,8.5,70,1,15
    
    class (aka MPG) =
    
         -2.2744 * 0 +
         -4.4421 * 0 +
          6.74   * 0 +
          0.012  * 390 +
         -0.0359 * 190 +
         -0.0056 * 3850 +
          1.6184 * 0 +
          1.8307 * 0 +
          1.8958 * 0 +
          1.7754 * 0 +
          1.167  * 0 +
          1.2522 * 0 +
          2.1363 * 0 +
         37.9165
         
    Expected Value = 15 mpg
    Regression Model Output = 14.2 mpg

    因此,当我们用随机选择的测试数据对此模型进行测试时,此模型的表现非常出色,对于一辆实际值为 15 MPG 的车,我们的预测值是 14.2 MPG。

    结束语

    本文探讨了第一个数据挖掘模型:回归模型(特别是线性回归多变量模型),另外还展示了如何在 WEKA 中使用它。这个回归模型很容易使用,并且可以用于很多数据集。您会发现这个模型是我在本系列文章中所讨论的所有模型中最有用的一个。然而,数据挖掘不仅局限于简单的回归,在不同的数据集及不同的输出要求的情况下,您会发现其他的模型也许是更好的解决方案。

    最后,我再重申一下,本文及本系列的后续文章只是对数据统计和数据挖掘领域做了最简单的介绍。花上整整一学期的时间去学习数据统计和数据挖掘的人也只能被称为“初学者”。 我们的目的就是让初学者充分领略这个可用的开源工具的妙处并提高对数据挖掘所能提供的价值的了解和重视。

    转载自:http://www.ibm.com/developerworks/cn/opensource/os-weka1/

    展开全文
  • 基于Weka数据分类分析实验报告1实验目的使用数据挖掘中的分类算法,对数据集进行分类训练并测试。应用不同的分类算法,比较他们之间的不同。与此同时了解Weka平台的基本功能与使用方法。2实验环境2.1Weka介绍Weka...

    ...

    基于

    Weka

    的数据分类分析实验报告

    1

    实验目的

    使用数据挖掘中的分类算法,

    对数据集进行分类训练并测试。

    应用不同的分类算法,

    较他们之间的不同。与此同时了解

    Weka

    平台的基本功能与使用方法。

    2

    实验环境

    2.1 Weka

    介绍

    Weka

    是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。

    Weka

    使用

    Java

    写成的,

    并且限制在

    GNU

    通用公共证书的条件下发布。

    它可以运行于几乎所有操作平台,

    一款免费的,非商业化的机器学习以及数据挖掘软件。

    Weka

    提供了一个统一界面,可结合

    预处理以及后处理方法,

    将许多不同的学习算法应用于任何所给的数据集,

    并评估由不同的

    学习方案所得出的结果。

    1 Weka

    主界面

    Weka

    系统包括处理标准数据挖掘问题的所有方法:回归、分类、聚类、关联规则以及

    属性选择。分析要进行处理的数据是重要的一个环节,

    Weka

    提供了很多用于数据可视化和

    与处理的工具。输入数据可以有两种形式,第一种是以

    ARFF

    格式为代表的文件;另一种是

    直接读取数据库表。

    使用

    Weka

    的方式主要有三种:第一种是将学习方案应用于某个数据集,然后分析其输

    出,

    从而更多地了解这些数据;

    第二种是使用已经学习到的模型对新实例进预测;

    第三种是

    使用多种学习器,

    然后根据其性能表现选择其中一种来进行预测。

    用户使用交互式界面菜单

    中选择一种学习方法,

    大部分学习方案都带有可调节的参数,

    用户可通过属性列表或对象编

    辑器修改参数,然后通过同一个评估模块对学习方案的性能进行评估。

    2.2

    数据和数据集

    根据应用的不同,

    数据挖掘的对象可以是各种各样的数据,

    这些数据可以是各种形式的

    存储,如数据库、数据仓库、数据文件、流数据、多媒体、网页,等等。即可以集中存储在

    数据存储库中,也可以分布在世界各地的网络服务器上。

    大部分数据集都以数据库表和数据文件的形式存在,

    Weka

    展开全文
  • xxx2010210304831基于weka数据分类分析实验报告1实验基本内容本实验的基本内容是通过使用weka中的三种常见分类方法(朴素贝叶斯,KNN和决策树C4.5)分别在训练数据上训练出分类模型,并使用校验数据对各个模型进行...
  • Weka数据预处理

    千次阅读 2019-04-08 09:01:44
    Weka数据预处理(一) 对于数据挖掘而言,我们往往仅关注实质性的挖掘算法,如分类、聚类、关联规则等,而忽视待挖掘数据的质量,但是高质量的数据才能产生高质量的挖掘结果,否则只有"Garbage in garbage out"了。...
  • Weka几乎包含了所有常见机器学习算法的Java实现,Weka中支持的数据格式主要是arff,虽然weka官网上提供了一些arff文件,但有时仅有这些还不能满足需求,为此,本人搜集各方资料,再加上自己的手工转换,整理出了一个...
  • ↑ 关注 + 星标 ~ 有趣的不像个技术号 每晚九点,我们准时相约  我们都很害怕生病,但感冒发烧这种从小到大的疾病我们已经麻木了,...今天在kaggle上看到一个心脏病数据数据集下载地址和源码见文末),那么借此
  • 加载完毕数据集后,还是不能直接进行数据挖掘模型的训练和学习,必须要进行数据预处理,Weka中的数据预处理使用Filter实现。
  • 用于移动对象数据分析和挖掘的 WEKA (Weka-STPM) Weka-STPM 扩展了“Weka 以支持自动轨迹数据预处理,为原始轨迹数据添加语义信息以进行分析和挖掘。” 简而言之,它支持两种轨迹停止和移动 (SMOT) 算法,IB-SMOT ...
  • 数据预处理和weka.filters的使用

    千次阅读 2018-06-06 20:10:56
    转载自:...weka支持从cvs转化,也可以从数据库中抽取,界面如下图weka安装目录有一个data目录,里面有一些测试数据,可以用于测试和学习。导入了数据仅仅是一个开始,我们还需要对数据进行...
  • 内容简介:毕业论文 基于 JAVA 的 WEKA 数据挖掘平台分析及二次开发共60页摘 要数据挖掘...该技术在银行业、市场业、零售业、保险业及电信业等诸多领域的数据分析中有着广阔的应用前景。本文首先针对数据挖掘技术作...
  • 利用WEKA编写数据挖掘算法  WEKA是由新西兰怀卡托大学开发的开源项目。...作为数据挖掘爱好者自然要对WEKA的源代码进行分析并以及改进,努力写出自己的数据挖掘算法。下面着重介绍一下如何利用...
  • 基于Weka的典型数据挖掘应用

    千次阅读 2019-07-05 09:24:56
    理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。 实验内容 下载并安装Java环境(JDK 7.0 64位)。 下载并安装Weka 3.7版。 基于Weka数据分类。 基于...
  • 而自动的数据分析方法则来自机器学习的结果。(机器学习就是自动找出数据模式的一套方法)   分类与回归  分类函数或者分类模型,预测数据的类别。区别:分类是离散值,回归是连续值。 聚类分析...
  • 使用weka进行聚类分析

    万次阅读 多人点赞 2018-06-07 16:22:32
    1、将.xls文件转化为.arff格式 首先,将.xls文件另存为.csv格式,然后使用weka explorer的预处理面板(preprocess),打开.csv文件,将导入的文件另存为.arff。打开.csv文件时提示如下错误解决方法:出现特殊符号(...
  • weka_ 聚类分析实例演练

    万次阅读 多人点赞 2016-07-21 11:56:10
    weka_ 聚类分析实例演练 创建时间: 2016/7/13 10:33 更新时间: 2016/7/14 9:49 作者: 354467546@qq.com  1、数据准备   2、聚类原理  聚类分析中的“类”(cluster)和前面分类的“类”(class)...
  • 使用Weka进行数据挖掘

    2017-12-27 11:44:42
    软件下载链接:https://www.cs.waikato.ac.nz/ml/weka/downloading.html ...1.简介数据挖掘、机器学习这些字眼,在一些人看来,是门槛很高的东西。诚然,如果做算法实现甚至算法优化,确实需要很多背景知识。但事
  • Weka数据挖掘——关联

    2016-01-23 11:06:00
    FP-Growth(频繁模式增长)算法是韩家炜老师在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-Tree),但仍保留项集关联信息;该算法和Apriori算法最大的不同有两点...
  • 1/5WEKA对wisconsin-breast-cancer数据挖掘分析报告一、数据集实验采用UCI数据集中的Wisconsin医学院的WilliamH.Wolberg博士提供的乳腺癌的数据样本...所有数据来自真实临床案例,每个案例有...
  • weka数据挖掘之预处理

    千次阅读 2016-11-24 20:58:58
    weka数据挖掘之预处理数据挖掘是在大量的、潜在有用的数据中挖掘出有用模式的过程,因此,源数据的质量直接影响到挖掘的效果,高质量的数据是有效挖掘的前提。但是,肯定是,不是所有的数据都是那么理想。由于无法在...
  • weka关联规则分析

    千次阅读 2018-10-03 20:01:32
    weka关联规则学习可以发现属性组之间的...事实上,绝大多数关联规则都不支持数值型,所以必须将数据进行处理,经数据按区段进行划分,进行离散化分箱处理。 三、算法属性设置 其中metrictype度量类型分为以下: ...
  • weka数据集预处理

    千次阅读 2016-09-27 17:52:58
    1. 利用有监督的离散算法对数据集的属性进行离散,并保存离散后的数据集; import java.io.File; import weka.filters.SupervisedFilter; import java.io.IOException; import weka.core.Instances; import ...
  • 数据挖掘工具R软件与Weka的比较分析

    千次阅读 2014-11-23 17:44:04
    作为数据挖掘常用的两个工具软件,R软件和weka软件各有千秋,本文对这两种数据挖掘软件进行了比较与分析。 R软件介绍  R是统计领域广泛使用的一款软件,是一个开放的统计分析和图形显示的程序设计环境...
  • 本文使用weka中内置的三种分类算法(naive bayes,SVM,Logistic Regression)根据收集到的鸢尾属植物的数据进行分类,通过精度和效率对三种算法进行比较。 1、鸢尾属植物的分类数据中包含鸢尾属植物的四种属性。四种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,148
精华内容 1,659
关键字:

weka数据分析处理