machine-learning - 如何检查文本数据样本是否正确代表总体?
问题描述
我有一个包含 2 列的大型文本数据集 - 第一个是文本描述,第二个是它所属的类别。我使用以下方法选择分层样本:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
stratify=y,
test_size=0.25)
但我需要证明它代表了原始人口。我如何证明或确保这一点?
我发现 Chi2 用于分类数据,但无法找到如何将其应用于文本数据。我发现的另一种方法是 PCA,但我们如何为文本数据绘制 PCA?
谁能告诉我如何通过使用统计测试方法或任何其他方法分析样本与总体,以确保它代表原始总体?
解决方案
您必须对整个总体运行一次分类器,并确保分类器无法确定哪个样本来自您的样本数据,哪个来自您的完整数据。
创建一个新的数据库。将被选为样本行的行标记为“Sample”类,将其余行标记为“Regular”类。现在运行一个决策树分类器,例如使用交叉验证,并确保您的精度和准确度在 50% 左右——这意味着分类器无法区分完整数据和样本数据。
如果分类器可以区分它们 - 这意味着您的样本数据并不能真正代表整个数据。在这种情况下,请增加用作样本的行数。这样做直到您的模型无法区分样本和完整数据。
推荐阅读
- go - 在 Golang 指令的标志值中使用空格
- javascript - 当移动设备崩溃时 websocket 会发生什么
- visual-studio-code - 无法在 VS Code 中调试 azure 函数,运行 func host start 时出错,但可以从 powershell 手动运行“func host start”
- django - UniqueConstraint 在已删除的行上引发 IntegrityError
- r - terra::nearest() to_id 列的含义
- python - 将String转换为二进制格式并展开二进制文件
- css - 具有 `max-width` 和 `max-height` 的 Flex 项目会导致其旁边的文本在 Chrome 中不必要地中断
- google-chrome - 在赛普拉斯中,如何强制下载 PDF 文件而不是在新选项卡中打开?
- json - get_json_object spark 实用程序函数中的美元符号是什么意思?
- c++ - 是否允许打印悬空引用的地址?