请用Python写关于小样本采样的代码并注释
时间: 2024-09-20 12:03:58 浏览: 26
深度学习作业-基于pytorch框架python实现手写数字识别完整源码+代码注释+文档说明
当然可以。在Python中,我们可以使用scikit-learn库来进行小样本数据的采样。这里我们以SMOTE(Synthetic Minority Over-sampling Technique)算法为例,它是一种常见的过采样技术,适用于处理类别不平衡的数据集。以下是一个简单的示例:
```python
# 首先,导入需要的库
from imblearn.over_sampling import SMOTE
import pandas as pd
from sklearn.datasets import make_classification
# 创建一个示例不平衡数据集,假设我们有500个正样本和100个负样本
X, y = make_classification(n_samples=600, class_sep=2, weights=[0.83, 0.17], random_state=42)
# 初始化SMOTE对象
smote = SMOTE(sampling_strategy='auto', k_neighbors=5, random_state=42) # 'auto'自动计算平衡比例,k_neighbors是邻居数
# 使用SMOTE对数据进行抽样
X_resampled, y_resampled = smote.fit_resample(X, y)
# 检查新的样本分布
print("原数据集类别分布:", Counter(y))
print("SMOTE处理后的样本分布:", Counter(y_resampled))
#
阅读全文