【发布时间】:2021-03-23 13:17:28
【问题描述】:
我们来获取数据
import numpy as np
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.decomposition import PCA
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
data = load_breast_cancer()
X = data.data
y = data.target
我想只使用第一个主成分创建模型并为其计算 AUC。
我目前的工作
scaler = StandardScaler()
scaler.fit(X_train)
X_scaled = scaler.transform(X)
pca = PCA(n_components=1)
principalComponents = pca.fit_transform(X)
principalDf = pd.DataFrame(data = principalComponents
, columns = ['principal component 1'])
clf = LogisticRegression()
clf = clf.fit(principalDf, y)
pred = clf.predict_proba(principalDf)
但是当我尝试使用时
fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)
出现以下错误:
y 应该是一维数组,取而代之的是一个形状为 (569, 2) 的数组。
我试图重塑我的数据
fpr, tpr, thresholds = metrics.roc_curve(y.reshape(1,-1), pred, pos_label=2)
但它没有解决问题(它输出):
不支持多标签指示符格式
您知道如何对第一个主成分执行 AUC 吗?
【问题讨论】:
-
在 "y = data.target" 之后使用 print (y, type(y)) 来查看你真正拥有的东西。让我们知道结果
标签: python pandas numpy scikit-learn pca