"""
@author: JacksonKim
@start: 2021/1/28
@end: 2021/1/29
"""
import numpy as np
'''
1. 留出法直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。
2. 通常训练集和测试集的比例为70%:30%
3. 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差对最终结果产生影响,
通常采取分层采样的方法。
'''
x = np.random.randint(-10, 10, 20)
data_set = []
negative = []
positive = []
for i in x:
if i <= 0:
negative.append(i)
else:
positive.append(i)
np.random.shuffle(negative)
np.random.shuffle(positive)
data_set.append(positive)
data_set.append(negative)
test_radio = 0.3
test_size = int(len(x)*test_radio)
positive_size = int(len(data_set[0])*test_radio + 0.5)
negative_size = test_size - positive_size
test_set = data_set[0][:positive_size] + data_set[1][:negative_size]
train_set = data_set[0][positive_size:] + data_set[1][negative_size:]
print("data set: ", data_set)
print("train set: ", train_set)
print("test set: ", test_set)