欢迎访问宙启技术站
智能推送

使用load_data()函数实现数据采样和划分的方法

发布时间:2023-12-26 17:22:58

load_data()函数可以用于实现数据采样和划分的方法。下面是一个简单的示例代码,用于演示如何使用load_data()函数进行数据采样和划分。

import numpy as np
from sklearn.model_selection import train_test_split

def load_data():
    # 假设有一个样本数据集,X为特征矩阵,y为标签向量
    X = np.random.rand(1000, 10)
    y = np.random.randint(0, 2, size=(1000,))
    
    return X, y

def data_sampling(X, y, sample_ratio):
    # 根据指定的采样比例对数据进行采样
    sample_size = int(len(X) * sample_ratio)
    indices = np.random.choice(len(X), sample_size, replace=False)
    X_sampled = X[indices]
    y_sampled = y[indices]
    
    return X_sampled, y_sampled

def data_split(X, y, test_size):
    # 将数据划分为训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size)
    
    return X_train, X_test, y_train, y_test

# 加载数据
X, y = load_data()

# 进行数据采样
sample_ratio = 0.8
X_sampled, y_sampled = data_sampling(X, y, sample_ratio)

# 进行数据划分
test_size = 0.2
X_train, X_test, y_train, y_test = data_split(X_sampled, y_sampled, test_size)

print("采样前的数据集大小:", len(X))
print("采样后的数据集大小:", len(X_sampled))
print("训练集大小:", len(X_train))
print("测试集大小:", len(X_test))

这个例子中,load_data()函数生成了一个包含1000个样本的数据集,其中X为一个大小为1000×10的特征矩阵,y为一个长度为1000的标签向量。我们首先使用data_sampling()函数对数据进行采样,设置采样比例sample_ratio为0.8,即从原数据集中随机选择80%的样本作为采样后的数据集。然后,我们使用data_split()函数将采样后的数据集划分为训练集和测试集,设置测试集比例test_size为0.2,即将数据集按照80%-20%的比例划分为训练集和测试集。最后,打印出不同数据集的大小。

通过使用load_data()函数进行数据采样和划分,我们可以灵活地控制数据集的大小和划分比例,从而满足实际需求。这种方法对于机器学习和数据分析任务非常有用,可以用于模型的训练和评估等步骤。