小编Sta*_*rák的帖子

CatBoostError:cat_features必须是整数或字符串,实数值和NaN值应转换为字符串

我有一个包含 122 列的数据集,如下所示:

train.head()

SK_ID_CURR  TARGET  NAME_CONTRACT_TYPE  CODE_GENDER FLAG_OWN_CAR    FLAG_OWN_REALTY CNT_CHILDREN    AMT_INCOME_TOTAL    AMT_CREDIT  AMT_ANNUITY ... FLAG_DOCUMENT_18    FLAG_DOCUMENT_19    FLAG_DOCUMENT_20    FLAG_DOCUMENT_21    AMT_REQ_CREDIT_BUREAU_HOUR  AMT_REQ_CREDIT_BUREAU_DAY   AMT_REQ_CREDIT_BUREAU_WEEK  AMT_REQ_CREDIT_BUREAU_MON   AMT_REQ_CREDIT_BUREAU_QRT   AMT_REQ_CREDIT_BUREAU_YEAR
0   100002  1   Cash loans  M   N   Y   0   202500.0    406597.5    24700.5 ... 0   0   0   0   0   0   0   0   0   1
1   100003  0   Cash loans  F   N   N   0   270000.0    1293502.5   35698.5 ... 0   0   0   0   0   0   0   0   0   0
2   100004  0   Revolving loans M   Y   Y   0 …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning pandas scikit-learn

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

如何在 Python 中删除异常值?

我想从我的数据集“train”中删除异常值,为此我决定使用 z-score 或 IQR。

我在 Microsoft Python Client for SQL Server 上运行 Jupyter notebook。

我试过 z-score:

from scipy import stats
train[(np.abs(stats.zscore(train)) < 3).all(axis=1)]
Run Code Online (Sandbox Code Playgroud)

对于 IQR:

Q1 = train.quantile(0.02)
Q3 = train.quantile(0.98)
IQR = Q3 - Q1
train = train[~((train < (Q1 - 1.5 * IQR)) |(train > (Q3 + 1.5 * 
IQR))).any(axis=1)]
Run Code Online (Sandbox Code Playgroud)

...返回...

对于 z 分数:

类型错误:不支持 / 的操作数类型:'str' 和 'int'

对于 IQR:

类型错误:无法排序的类型:str() < float()

我的火车数据集如下所示:

# Number of each type of column
print('Training data shape: ', train.shape)
train.dtypes.value_counts() …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy pandas

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

标签 统计

numpy ×2

pandas ×2

python ×2

machine-learning ×1

scikit-learn ×1

scipy ×1