相关疑难解决方法(0)

基于列的sklearn分层抽样

我有一个包含亚马逊评论数据的相当大的CSV文件,我将其读入大熊猫数据框.我想将数据分成80-20(训练测试),但在这样做时我想确保分割数据按比例代表一列(类别)的值,即所有不同类别的评论都存在于列车中并按比例测试数据.

数据如下所示:

**ReviewerID**       **ReviewText**        **Categories**       **ProductId**

1212                   good product         Mobile               14444425
1233                   will buy again       drugs                324532
5432                   not recomended       dvd                  789654123 
Run Code Online (Sandbox Code Playgroud)

我使用以下代码来执行此操作:

import pandas as pd
Meta = pd.read_csv('C:\\Users\\xyz\\Desktop\\WM Project\\Joined.csv')
import numpy as np
from sklearn.cross_validation import train_test_split

train, test = train_test_split(Meta.categories, test_size = 0.2, stratify=y)
Run Code Online (Sandbox Code Playgroud)

它给出了以下错误

NameError: name 'y' is not defined
Run Code Online (Sandbox Code Playgroud)

因为我对python相对较新,所以我无法弄清楚我做错了什么,或者这个代码是否会根据列类别进行分层.当我从train-test split中删除了stratify选项以及categories列时,它似乎工作正常.

任何帮助将不胜感激.

python pandas scikit-learn sklearn-pandas

14
推荐指数
2
解决办法
3万
查看次数

如何使用 Python 进行随机分层抽样(不是训练/测试拆分)?

我正在寻找进行随机分层抽样的最佳方法,例如调查和民意调查。我不想做 sklearn.model_selection.StratifiedShuffleSplit 因为我没有做监督学习而且我没有目标。我只想从 Pandas DataFrame ( https://www.investopedia.com/terms/stratified_random_sampling.asp )创建随机分层样本。

Python是我的主要语言。

感谢您的任何帮助

python numpy sampling pandas

9
推荐指数
2
解决办法
1万
查看次数

来自熊猫的分层样本

我有一个pandas DataFrame,看起来大致如下:

cli_id | X1 | X2 | X3 | ... | Xn |  Y  |
----------------------------------------
123    | 1  | A  | XX | ... | 4  | 0.1 |
456    | 2  | B  | XY | ... | 5  | 0.2 |
789    | 1  | B  | XY | ... | 5  | 0.3 |
101    | 2  | A  | XX | ... | 4  | 0.1 |
...
Run Code Online (Sandbox Code Playgroud)

我有客户端ID,很少有分类属性,Y是事件的概率,其值从0到1乘以0.1.

我需要在每个组(10倍)的大小为200的Y中采取分层样本

在分成火车/测试时,我经常使用它来分层样本:

def stratifiedSplit(X,y,size):
    sss …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

pandas ×3

python ×3

numpy ×1

sampling ×1

scikit-learn ×1

sklearn-pandas ×1