我需要将一个值设置为一个特定的阈值,并生成一个混淆矩阵。数据是在一个csv文件(11,1 MB)中,这个下载链接是:https://drive.google.com/file/d/1cQFp7HteaaL37CefsbMNuHqPzkINCVzs/view?usp=sharing?你知道吗
首先,我收到一条错误消息:“AttributeError:predict\u proba is not available when probability=False” 所以我用这个来纠正:
svc = SVC(C=1e9,gamma= 1e-07)
scv_calibrated = CalibratedClassifierCV(svc)
svc_model = scv_calibrated.fit(X_train, y_train)
我在网上看到了很多,我不太明白一个特定的阈值是如何被persolanized的。听起来很难。 现在,我看到一个错误的输出:
array([[ 0, 0],
[5359, 65]])
我不知道怎么了。你知道吗
我需要帮助,我是新手。 谢谢
from sklearn.model_selection import train_test_split
df = pd.read_csv('fraud_data.csv')
X = df.iloc[:,:-1]
y = df.iloc[:,-1]
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
def answer_four():
from sklearn.metrics import confusion_matrix
from sklearn.svm import SVC
from sklearn.calibration import CalibratedClassifierCV
from sklearn.model_selection import train_test_split
svc = SVC(C=1e9,gamma= 1e-07)
scv_calibrated = CalibratedClassifierCV(svc)
svc_model = scv_calibrated.fit(X_train, y_train)
# set threshold as -220
y_pred = (svc_model.predict_proba(X_test)[:,1] >= -220)
conf_matrix = confusion_matrix(y_pred, svc_model.predict(X_test))
return conf_matrix
answer_four()
这个函数应该返回一个混淆矩阵,一个包含4个整数的2x2 numpy数组。你知道吗
你用错了混淆矩阵。你知道吗
混淆矩阵背后的想法是,我们的预测
y_pred
与基本事实y_true
的比较有多好,通常是在一个测试集合中。你知道吗实际上,您在这里所做的是计算一个“混淆矩阵”,将自定义阈值为-220(
y_pred
)的预测与其他一些默认阈值的预测(输出svc_model.predict(X_test)
)进行比较,这没有任何意义。你知道吗测试集的基本事实是
y_test
;因此,要获得带有默认阈值的混淆矩阵,应该使用要获得自定义阈值为-220的混淆矩阵,应该使用
有关用法的更多详细信息,请参见documentation(这是您最好的朋友,当您有问题或疑虑时,应该始终首先查看)。你知道吗
这段代码产生了预期的输出,除了在前一段代码中我不正确地使用了混淆矩阵之外,我还应该使用decision\函数并得到过滤220阈值的输出。你知道吗
相关问题 更多 >
编程相关推荐