简单的划分数据

#coding=utf-8
def create_data():
    #'''创建样本'''
    data=[[1,1,'Y'],
          [1,1,'Y'],
          [1,0,'N'],
          [0,1,'N'],
          [0,1,'N'],
          ]
    labels=['no surfacing','flippers']
    return data,labels
def split_data(data,axis,value):
    #根据某一特征划分数据
    ret_data=[]
    #结果列表
    for v in data:
        #遍历样本
        if v[axis]==value:
            #v[axis]样本中第axis的特征,value 预期的特征值
            reduced_v=v[:axis]
            #样本前axis个值
            reduced_v.extend(v[axis+1:])
            #样本后axis个值
            ret_data.append(reduced_v)
            #得到的结果就是除选定的特征外样本中其他的值
            #根据需求可返回不同的结果。比如我只想根据axis=1这个条件返回Y or N这个结果
            #reduced_v=v[axis+1:] ... ret_data.append(reduced_v) 或者
            #单成一个列表 ret_data.extend(v[axis+1:])
    return ret_data

### 划分数据集的方法与工具 在机器学习项目中,合理地划分数据集对于模型的有效性和泛化能力至关重要。通常情况下,数据会被划分为训练集、验证集和测试集三个部分。 #### 训练集、验证集和测试集的作用 - **训练集**用于训练模型参数; - **验证集**用来调整超参数并防止过拟合现象的发生; - **测试集**则是为了最终评估模型性能而保留的一部分未见过的数据[^1]。 #### 常见的划分方法 一种简单的方式就是按照固定比例随机抽样来分配样本到不同的子集中去,比如70%作为训练集,15%分别给验证集和测试集。然而,在某些特定应用场景下可能需要采用更复杂的策略: - 对于时间序列预测问题,则应保持顺序不变的情况下按时间段分割; - 当类别分布不平衡时,应当确保各类别之间的比例尽可能一致地反映在整个数据集中各个子集合里; - 如果存在用户行为模式等关联特性的话,还需注意避免同一实体的信息同时出现在不同类型的子集中造成信息泄露的情况发生[^2]。 #### 使用Python库进行数据划分 Scikit-Learn是一个广泛使用的Python机器学习库,其中包含了多种方便快捷的数据处理功能。`train_test_split()` 函数可以直接帮助完成基本形式下的数据拆分工作,并允许指定种子数以保证实验可重复性以及设置test_size或者train_size参数控制大小比率关系。 ```python from sklearn.model_selection import train_test_split X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42) X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42) ``` 上述代码片段展示了如何利用 `train_test_split()` 将原始数据分成三份独立的部分——训练集、验证集和测试集。这里先将整体80%-20%的比例切割成两大部分之后再把后者进一步平分得到目标结构。 另外值得注意的是当面对多标签或多输出任务时还可以考虑使用StratifiedKFold交叉验证等方式来进行更为精细合理的采样操作以维持类间平衡状态[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值