相关疑难解决方法(0)

Sklearn ROC AUC 分数:ValueError:y 应该是一个一维数组,而是一个形状为 (15, 2) 的数组

我有这个带有 target 的数据集LULUS,它是一个不平衡数据集。我试图打印roc auc分数,如果我可以为我的数据的每个折叠,但在每个折叠不知何故它总是引发错误说ValueError: y should be a 1d array, got an array of shape (15, 2) instead.。我有点困惑我做错了哪一部分,因为我的做法与文档中的完全一样。经过几次折叠,我发现如果只有一个标签,它不会打印分数,但它会返回关于一维数组的第二种类型的错误。

merged_df = pd.read_csv(r'C:\...\merged.csv')

num_columns = merged_df.select_dtypes(include=['float64']).columns
cat_columns = merged_df.select_dtypes(include=['object']).drop(['TARGET','NAMA'], axis=1).columns

numeric_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='mean')),
    ('scaler', StandardScaler())])

categorical_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='most_frequent')),
    ('label', OneHotEncoder(handle_unknown='ignore'))])

preprocessor = ColumnTransformer(
    transformers=[
        ('num', numeric_transformer, num_columns),
        ('cat', categorical_transformer, cat_columns)])

X = merged_df.drop(['TARGET','Unnamed: 0'],1)
y = merged_df['TARGET']

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2)

X_train = X_train.drop(['NIM', 'NAMA'],1)
X_test = X_test.drop(['NIM', 'NAMA'],1)

rf = Pipeline(steps=[('preprocessor', preprocessor), …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

4
推荐指数
1
解决办法
3863
查看次数

标签 统计

python ×1

scikit-learn ×1