西瓜数据集介绍以及获取。

西瓜数据集介绍。

这里介绍一下《机器学习》中的西瓜数据。数据集也不少,放在别的文章中介绍就会略占篇幅,还是单独的介绍一下并且给出数据样本。

在西瓜书中,主要使用到的数据样本共有2.0、3.0、4.0这三个版本,但是还有一些用到的数据集。


西瓜数据集2.0

在西瓜数据集2.0中的特征主要有以下几种:色泽、根蒂、敲声、纹理、脐部、触感。这几个数值都是离散数值,每个特征共有三个离散值。

来自西瓜书中的西瓜数据集2.0:

编号色泽根蒂敲声纹理脐部触感好瓜
1青绿蜷缩浊响清晰凹陷硬滑
2乌黑蜷缩沉闷清晰凹陷硬滑
3乌黑蜷缩浊响清晰凹陷硬滑
4青绿蜷缩沉闷清晰凹陷硬滑
5浅白蜷缩浊响清晰凹陷硬滑
6青绿稍蜷浊响清晰稍凹软粘
7乌黑稍蜷浊响稍糊稍凹软粘
8乌黑稍蜷浊响清晰稍凹硬滑
9乌黑稍蜷沉闷稍糊稍凹硬滑
10青绿硬挺清脆清晰平坦软粘
11浅白硬挺清脆模糊平坦硬滑
12浅白蜷缩浊响模糊平坦软粘
13青绿稍蜷浊响稍糊凹陷硬滑
14浅白稍蜷沉闷稍糊凹陷硬滑
15乌黑稍蜷浊响清晰稍凹软粘
16浅白蜷缩浊响模糊平坦硬滑
17青绿蜷缩沉闷稍糊稍凹硬滑

看的也是眼花缭乱,这里共有8个好瓜和9个坏瓜样本。

以下代码可以获取带上面你的样本数据和对应的标签,以及某个特征值的所有可能性。

def createDataSet():
    """
    创建测试的数据集
    :return:
    """
    dataSet = [
        # 1
        ['青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '好瓜'],
        # 2
        ['乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '好瓜'],
        # 3
        ['乌黑', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '好瓜'],
        # 4
        ['青绿', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '好瓜'],
        # 5
        ['浅白', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '好瓜'],
        # 6
        ['青绿', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '好瓜'],
        # 7
        ['乌黑', '稍蜷', '浊响', '稍糊', '稍凹', '软粘', '好瓜'],
        # 8
        ['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '硬滑', '好瓜'],

        # ----------------------------------------------------
        # 9
        ['乌黑', '稍蜷', '沉闷', '稍糊', '稍凹', '硬滑', '坏瓜'],
        # 10
        ['青绿', '硬挺', '清脆', '清晰', '平坦', '软粘', '坏瓜'],
        # 11
        ['浅白', '硬挺', '清脆', '模糊', '平坦', '硬滑', '坏瓜'],
        # 12
        ['浅白', '蜷缩', '浊响', '模糊', '平坦', '软粘', '坏瓜'],
        # 13
        ['青绿', '稍蜷', '浊响', '稍糊', '凹陷', '硬滑', '坏瓜'],
        # 14
        ['浅白', '稍蜷', '沉闷', '稍糊', '凹陷', '硬滑', '坏瓜'],
        # 15
        ['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '坏瓜'],
        # 16
        ['浅白', '蜷缩', '浊响', '模糊', '平坦', '硬滑', '坏瓜'],
        # 17
        ['青绿', '蜷缩', '沉闷', '稍糊', '稍凹', '硬滑', '坏瓜']
    ]

    # 特征值列表
    labels = ['色泽', '根蒂', '敲击', '纹理', '脐部', '触感']

    # 特征对应的所有可能的情况
    labels_full = {}

    for i in range(len(labels)):
        labelList = [example[i] for example in dataSet]
        uniqueLabel = set(labelList)
        labels_full[labels[i]] = uniqueLabel

    return dataSet, labels, labels_full

西瓜数据集3.0

相较于上面的2.0数据集,3.0又增添了两个特征值:密度和含糖率。这两个特征值都是连续数值。这里不再列出表格,直接给出获取样本数据的代码。

def createDataSet():
    """
    创建测试的数据集,里面的数值中具有连续值
    :return:
    """
    dataSet = [
        # 1
        ['青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', 0.697, 0.460, '好瓜'],
        # 2
        ['乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', 0.774, 0.376, '好瓜'],
        # 3
        ['乌黑', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', 0.634, 0.264, '好瓜'],
        # 4
        ['青绿', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', 0.608, 0.318, '好瓜'],
        # 5
        ['浅白', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', 0.556, 0.215, '好瓜'],
        # 6
        ['青绿', '稍蜷', '浊响', '清晰', '稍凹', '软粘', 0.403, 0.237, '好瓜'],
        # 7
        ['乌黑', '稍蜷', '浊响', '稍糊', '稍凹', '软粘', 0.481, 0.149, '好瓜'],
        # 8
        ['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '硬滑', 0.437, 0.211, '好瓜'],

        # ----------------------------------------------------
        # 9
        ['乌黑', '稍蜷', '沉闷', '稍糊', '稍凹', '硬滑', 0.666, 0.091, '坏瓜'],
        # 10
        ['青绿', '硬挺', '清脆', '清晰', '平坦', '软粘', 0.243, 0.267, '坏瓜'],
        # 11
        ['浅白', '硬挺', '清脆', '模糊', '平坦', '硬滑', 0.245, 0.057, '坏瓜'],
        # 12
        ['浅白', '蜷缩', '浊响', '模糊', '平坦', '软粘', 0.343, 0.099, '坏瓜'],
        # 13
        ['青绿', '稍蜷', '浊响', '稍糊', '凹陷', '硬滑', 0.639, 0.161, '坏瓜'],
        # 14
        ['浅白', '稍蜷', '沉闷', '稍糊', '凹陷', '硬滑', 0.657, 0.198, '坏瓜'],
        # 15
        ['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '软粘', 0.360, 0.370, '坏瓜'],
        # 16
        ['浅白', '蜷缩', '浊响', '模糊', '平坦', '硬滑', 0.593, 0.042, '坏瓜'],
        # 17
        ['青绿', '蜷缩', '沉闷', '稍糊', '稍凹', '硬滑', 0.719, 0.103, '坏瓜']
    ]

    # 特征值列表
    labels = ['色泽', '根蒂', '敲击', '纹理', '脐部', '触感', '密度', '含糖率']

    # 特征对应的所有可能的情况
    labels_full = {}

    for i in range(len(labels)):
        labelList = [example[i] for example in dataSet]
        uniqueLabel = set(labelList)
        labels_full[labels[i]] = uniqueLabel

    return dataSet, labels, labels_full

西瓜数据集4.0

西瓜数据集只包含了密度和含糖率,并没有给出分类标签,在聚类中出现了4.0数据集。

def createDataSet():
    """
    创建测试的数据集,里面的数值中具有连续值
    :return:
    """
    dataSet = [
        # 1
        [0.697, 0.460],
        # 2
        [0.774, 0.376],
        # 3
        [0.634, 0.264],
        # 4
        [0.608, 0.318],
        # 5
        [0.556, 0.215],
        # 6
        [0.403, 0.237],
        # 7
        [0.481, 0.149],
        # 8
        [0.437, 0.211],
        # 9
        [0.666, 0.091],
        # 10
        [0.243, 0.267],
        # 11
        [0.245, 0.057],
        # 12
        [0.343, 0.099],
        # 13
        [0.639, 0.161],
        # 14
        [0.657, 0.198],
        # 15
        [0.360, 0.370],
        # 16
        [0.593, 0.042],
        # 17
        [0.719, 0.103]
        # 18
        [0.359, 0.188]
        # 19
        [0.339, 0.241]
        # 20
        [0.282, 0.257]
        # 21
        [0.748, 0.232]
        # 22
        [0.714, 0.346]
        # 23
        [0.483, 0.312]
        # 24
        [0.478, 0.437]
        # 25
        [0.525, 0.369]
        # 26
        [0.751, 0.489]
        # 27
        [0.532, 0.472]
        # 28
        [0.473, 0.376]
        # 29
        [0.725, 0.445]
        # 30
        [0.446, 0.459]
    ]

    # 特征值列表

    labels = ['密度', '含糖率']

    # 特征对应的所有可能的情况
    labels_full = {}

    for i in range(len(labels)):
        labelList = [example[i] for example in dataSet]
        uniqueLabel = set(labelList)
        labels_full[labels[i]] = uniqueLabel

    return dataSet, labels, labels_full

具有缺失数据的3.0数据集

在决策树部分介绍如何处理缺失值的时候用到了该数据集。

def createDataSet():
    """
    创建测试的数据集
    :return:
    """
    dataSet = [
        # 1
        ['-', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '好瓜'],
        # 2
        ['乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '-', '好瓜'],
        # 3
        ['乌黑', '蜷缩', '-', '清晰', '凹陷', '硬滑', '好瓜'],
        # 4
        ['青绿', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '好瓜'],
        # 5
        ['-', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '好瓜'],
        # 6
        ['青绿', '稍蜷', '浊响', '清晰', '-', '软粘', '好瓜'],
        # 7
        ['乌黑', '稍蜷', '浊响', '稍糊', '稍凹', '软粘', '好瓜'],
        # 8
        ['乌黑', '稍蜷', '浊响', '-', '稍凹', '硬滑', '好瓜'],

        # ----------------------------------------------------
        # 9
        ['乌黑', '-', '沉闷', '稍糊', '稍凹', '硬滑', '坏瓜'],
        # 10
        ['青绿', '硬挺', '清脆', '-', '平坦', '软粘', '坏瓜'],
        # 11
        ['浅白', '硬挺', '清脆', '模糊', '平坦', '-', '坏瓜'],
        # 12
        ['浅白', '蜷缩', '-', '模糊', '平坦', '软粘', '坏瓜'],
        # 13
        ['-', '稍蜷', '浊响', '稍糊', '凹陷', '硬滑', '坏瓜'],
        # 14
        ['浅白', '稍蜷', '沉闷', '稍糊', '凹陷', '硬滑', '坏瓜'],
        # 15
        ['乌黑', '稍蜷', '浊响', '清晰', '-', '软粘', '坏瓜'],
        # 16
        ['浅白', '蜷缩', '浊响', '模糊', '平坦', '硬滑', '坏瓜'],
        # 17
        ['青绿', '-', '沉闷', '稍糊', '稍凹', '硬滑', '坏瓜']
    ]

    # 特征值列表
    labels = ['色泽', '根蒂', '敲击', '纹理', '脐部', '触感']

    # 各个样本的权重
    Wx = []
    for i in range(len(dataSet)):
        Wx.append(1)

    # 特征对应的所有可能的情况
    labels_full = {}

    for i in range(len(labels)):
        labelList = [example[i] for example in dataSet if example[i] != '-']
        uniqueLabel = set(labelList)
        labels_full[labels[i]] = uniqueLabel

    return dataSet, labels, labels_full, Wx
西瓜数据集3.0——深度解析与应用》 西瓜数据集3.0是一个广泛用于数据分析和机器学习领域的宝贵资源,包含两个主要的数据文件:watermelon_3.csv 和 watermelon_3a.csv。这两个文件提供了丰富的信息,可以用于训练和评估各种算法,如分类、回归和聚类等。在本文中,我们将深入探讨这些数据集的结构、内容以及可能的应用场景。 watermelon_3.csv 和 watermelon_3a.csv 文件都是CSV格式,这是一种通用的表格数据存储格式,便于用编程语言如Python、R等进行处理。CSV文件由逗号分隔的值组成,每行代表一个样本,每一列代表一个特征或变量。在西瓜数据集中,这些特征可能包括西瓜的各种属性,如重量、颜色、纹理、产地等,这些属性是研究西瓜质量、价格或销售的关键因素。 对于watermelon_3.csv,我们可以假设它是一个基础版本,包含了对西瓜的基本属性描述。例如,可能有以下列: 1. ID:每个西瓜的唯一标识。 2. 重量:西瓜的重量,可能影响其品质和价格。 3. 颜色:西瓜皮的颜色,可能与成熟度有关。 4. 条纹:西瓜皮上的条纹模式,也可能影响品质感知。 5. 硬度:敲击西瓜时的声音硬度,有助于判断成熟度。 6. 产地:西瓜的种植地,可能影响其口感和受欢迎程度。 7. 价格:西瓜的销售价格,取决于多种因素。 8. 评分:用户或专家给出的西瓜质量评分。 而watermelon_3a.csv可能是对原始数据集的扩展或修正,可能包含了额外的特征,如湿度、糖分含量等,或者是对原有数据的补充,比如增加了更多样本以提高统计可靠性。 在实际应用中,西瓜数据集3.0可用于多个领域: 1. **机器学习模型训练**:数据集中的数值特征可以用于训练分类模型,预测西瓜的质量等级或价格范围。例如,使用决策树、随机森林、支持向量机或神经网络等算法。 2. **特征工程与选择**:通过探索数据,我们可以识别哪些特征对预测目标有最大影响,这有助于构建更高效的模型。 3. **数据可视化**:绘制散点图、箱线图或直方图,以理解不同特征之间的关系,发现潜在的模式或异常值。 4. **异常检测**:通过分析数据分布,可以发现不符合常规的西瓜属性,可能对应着质量问题或数据录入错误。 5. **市场分析**:研究产地、价格和评分的关系,为西瓜的销售策略提供依据。 6. **教育与研究**:数据集为初学者提供了一个理想的实践平台,帮助他们学习数据处理、建模和解释结果。 西瓜数据集3.0不仅是一个数据科学的实例,也是提升技能、创新思维的工具。通过深入挖掘其中的信息,我们可以了解西瓜品质的决定因素,甚至可能改进西瓜的种植、销售和评价标准。无论你是数据分析师、机器学习工程师还是科研人员,这个数据集都值得你投入时间和精力去探索
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值