Python——数据分层抽样

分层抽样,即先将所有个体样本按照某种特征划分为几个类别,然后从每个类别中使用随机抽样或等距抽样的方法选择个体组成样本。
分层抽样能明显的降低抽样误差,并且便于针对不同类别的数据样本进行单独研究,因此是一种较好的实现方法。

该方法适用于带有分类逻辑的属性、标签等特征的数据

有数据如下:
Python——数据分层抽样_第1张图片最后一列为分类标签,用0或者1来表示

导入包

import numpy as np
import random

读取数据,并查看分类标签

data2 = np.loadtxt('data_preprocessing_data2.txt') # 导入带有分层逻辑的数据
each_sample_count = 20 # 定义每个分层的抽样数量
label_data_unique = np.unique(data2[:, -1]) # 定义分层值域
print(label_data_unique)#[0. 1.],数据一共被分为两个标签

遍历每个分层标签,用来做数据的分层划分,并且读取每条数据并判断数据的分层标签是否与分层标签相同,如果是则数据加入到各分层数据列表中

sample_data = [] # 定义空列表,用于存放最终抽样数据
sample_dict = {} # 定义空字典,用来显示各分层样本数量

for label_data in label_data_unique: # 遍历每个分层标签
	sample_list = [] # 定义空列表,用于存放临时分层数据
	for data_tmp in data2: # 读取每条数据
		if data_tmp[-1] == label_data: # 如果数据最后一列等于标签
			sample_list.append(data_tmp) # 将数据加入到分层数据中
	each_sample_data = random.sample(sample_list, each_sample_count) # 对每层数据都随机抽样
	sample_data.extend(each_sample_data) # 将抽样数据追加到总体样本集
	sample_dict[label_data] = len(each_sample_data) # 样本集统计结果
print (sample_dict) # 打印输出样本集统计结果

你可能感兴趣的:(Python数据化运营,python,数据分析)