Hướng dẫn dùng roc curce python Hướng dẫn FULL

Hướng dẫn dùng roc curce python Hướng dẫn FULL

Thủ Thuật Hướng dẫn Hướng dẫn dùng roc curce python Mới Nhất


Pro đang tìm kiếm từ khóa Hướng dẫn dùng roc curce python được Update vào lúc : 2022-10-01 08:20:24 . Với phương châm chia sẻ Bí kíp Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tìm hiểu thêm tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.


Tôi đang nỗ lực vẽ đồ thị ROC để xem nhận độ đúng chuẩn của quy mô Dự kiến mà tôi đã tiếp tục tăng trưởng trong Python bằng phương pháp sử dụng những gói hồi quy logistic. Tôi đã tính tỷ suất dương thực sự cũng như tỷ suất dương tính giả; tuy nhiên, tôi không thể tìm ra cách vẽ những thứ này một cách đúng chuẩn bằng phương pháp sử dụng matplotlib và tính giá trị AUC. Làm thế nào tôi hoàn toàn có thể làm điều này?


Dưới đấy là hai cách bạn hoàn toàn có thể thử, giả sử model của bạn là một công cụ Dự kiến sklearn:


import sklearn.metrics as metrics

# calculate the fpr and tpr for all thresholds of the classification

probs = model.predict_proba(X_test)

preds = probs[:,1]

fpr, tpr, threshold = metrics.roc_curve(y_test, preds)

roc_auc = metrics.auc(fpr, tpr)


# method I: plt

import matplotlib.pyplot as plt

plt.title(‘Receiver Operating Characteristic’)

plt.plot(fpr, tpr, ‘b’, label=”AUC = %0.2f” % roc_auc)

plt.legend(loc=”lower right”)

plt.plot([0, 1], [0, 1],’r–‘)

plt.xlim([0, 1])

plt.ylim([0, 1])

plt.ylabel(‘True Positive Rate’)

plt.xlabel(‘False Positive Rate’)

plt.show()


# method II: ggplot

from ggplot import *

df = pd.DataFrame(dict(fpr = fpr, tpr = tpr))

ggplot(df, aes(x = ‘fpr’, y = ‘tpr’)) + geom_line() + geom_abline(linetype=”dashed”)


hay là thử


ggplot(df, aes(x = ‘fpr’, ymin = 0, ymax = ‘tpr’)) + geom_line(aes(y = ‘tpr’)) + geom_area(alpha = 0.2) + ggtitle(“ROC Curve w/ AUC = %s” % str(roc_auc))


Đây là cách đơn thuần và giản dị nhất để vẽ đường cong ROC, được đưa ra một bộ nhãn thực sự mặt đất và xác suất Dự kiến. Phần tốt nhất là, nó vẽ đường cong ROC cho TẤT CẢ những lớp, do đó bạn đã và đang sẵn có được nhiều đường cong trông ngăn nắp


import scikitplot as skplt

import matplotlib.pyplot as plt


y_true = # ground truth labels

y_probas = # predicted probabilities generated by sklearn classifier

skplt.metrics.plot_roc_curve(y_true, y_probas)

plt.show()


Đây là một đường cong mẫu được tạo bởi plot_roc_curve. Tôi đã sử dụng bộ tài liệu chữ số mẫu từ scikit-learn để sở hữu 10 lớp. Lưu ý rằng một đường cong ROC được vẽ cho từng lớp.



Hướng dẫn dùng roc curce python


Tuyên bố miễn trừ trách nhiệm: Lưu ý rằng điều này sử dụng thư viện scikit-diễn biến mà tôi đã xây dựng.


Vẫn chưa rõ yếu tố ở đấy là gì, nhưng nếu bạn có một mảng true_positive_rate và một mảng false_positive_rate, thì việc vẽ đường cong ROC và nhận AUC cũng đơn thuần và giản dị như sau:


import matplotlib.pyplot as plt

import numpy as np


x = # false_positive_rate

y = # true_positive_rate


# This is the ROC curve

plt.plot(x,y)

plt.show()


# This is the AUC

auc = np.trapz(y,x)


Đường cong AUC cho phân loại nhị phân bằng matplotlib


from sklearn import svm, datasets

from sklearn import metrics

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split

from sklearn.datasets import load_breast_cancer

import matplotlib.pyplot as plt

Tải dữ

liệu ung thư vúbreast_cancer = load_breast_cancer()


X = breast_cancer.data

y = breast_cancer.target

Tách bộ dữ liệuX_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.33, random_state=44)

Mô hìnhclf = LogisticRegression(penalty=’l2′, C=0.1)

clf.fit(X_train, y_train)

y_pred = clf.predict(X_test)

Sự chính xácprint(“Accuracy”, metrics.accuracy_score(y_test, y_pred))

Đường cong AUCy_pred_proba = clf.predict_proba(X_test)[::,1]

fpr, tpr, _ = metrics.roc_curve(y_test, y_pred_proba)

auc = metrics.roc_auc_score(y_test, y_pred_proba)

plt.plot(fpr,tpr,label=”data 1, auc=”+str(auc))

plt.legend(loc=4)

plt.show()


Đây là mã python để tính toán đường cong ROC (dưới dạng biểu đồ phân tán):


import matplotlib.pyplot as plt

import numpy as np


score = np.array([0.9, 0.8, 0.7, 0.6, 0.55, 0.54, 0.53, 0.52, 0.51, 0.505, 0.4, 0.39, 0.38, 0.37, 0.36, 0.35, 0.34, 0.33, 0.30, 0.1])

y = np.array([1,1,0, 1, 1, 1, 0, 0, 1, 0, 1,0, 1, 0, 0, 0, 1 , 0, 1, 0])


# false positive rate

fpr = []

# true positive rate

tpr = []

# Iterate thresholds from 0.0, 0.01, … 1.0

thresholds = np.arange(0.0, 1.01, .01)


# get number of positive and negative examples in the dataset

P = sum(y)

N = len(y) – P


# iterate through all thresholds and determine fraction of true positives

# and false positives found this threshold

for thresh in thresholds:

FP=0

TP=0

for i in range(len(score)):

if (score[i] > thresh):

if y[i] == 1:

TP = TP + 1

if y[i] == 0:

FP = FP + 1

fpr.append(FP/float(N))

tpr.append(TP/float(P))


plt.scatter(fpr, tpr)

plt.show()


Các câu vấn đáp trước nhận định rằng bạn thực sự đã tự tính toán TP/Sens. Đó là một ý tưởng tồi để thực thi việc này một cách thủ công, thật thuận tiện và đơn thuần và giản dị để mắc lỗi với những tính toán, thay vì sử dụng hiệu suất cao thư viện cho toàn bộ những điều này.


hàm plot_roc trong

scikit_lean thực thi đúng chuẩn những gì bạn cần: http://scikit-learn.org/urdy/auto_examples/model_selection/plot_roc.html


Phần thiết yếu của mã là:


for i in range(n_classes):

fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])

roc_auc[i] = auc(fpr[i], tpr[i])

from sklearn import metrics

import numpy as np

import matplotlib.pyplot as plt


y_true = # true labels

y_probas = # predicted results

fpr, tpr, thresholds = metrics.roc_curve(y_true, y_probas, pos_label=0)


# Print ROC curve

plt.plot(fpr,tpr)

plt.show()


# Print AUC

auc = np.trapz(tpr,fpr)

print(‘AUC:’, auc)


Tôi đã thực thi một hiệu suất cao đơn thuần và giản dị có trong một gói cho đường cong ROC. Tôi mới khởi đầu thực hành thực tiễn học máy, vì vậy xin vui lòng cho tôi biết nếu mã này còn có yếu tố!


Hãy xem tập tin github readme để biết thêm rõ ràng! 🙂


https://github.com/bc123456/ROC


from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score, roc_curve

import matplotlib.pyplot as plt

import seaborn as sns

import numpy as np


def plot_ROC(y_train_true, y_train_prob, y_test_true, y_test_prob):

”’

a funciton to plot the ROC curve for train labels and test labels.

Use the best threshold found in train set to classify items in test set.

”’

fpr_train, tpr_train, thresholds_train = roc_curve(y_train_true, y_train_prob, pos_label =True)

sum_sensitivity_specificity_train = tpr_train + (1-fpr_train)

best_threshold_id_train = np.argmax(sum_sensitivity_specificity_train)

best_threshold = thresholds_train[best_threshold_id_train]

best_fpr_train = fpr_train[best_threshold_id_train]

best_tpr_train = tpr_train[best_threshold_id_train]

y_train = y_train_prob > best_threshold


cm_train = confusion_matrix(y_train_true, y_train)

acc_train = accuracy_score(y_train_true, y_train)

auc_train = roc_auc_score(y_train_true, y_train)


print ‘Train Accuracy: %s ‘ %acc_train

print ‘Train AUC: %s ‘ %auc_train

print ‘Train Confusion Matrix:’

print cm_train


fig = plt.figure(figsize=(10,5))

ax = fig.add_subplot(121)

curve1 = ax.plot(fpr_train, tpr_train)

curve2 = ax.plot([0, 1], [0, 1], color=”navy”, linestyle=”–“)

dot = ax.plot(best_fpr_train, best_tpr_train, marker=”o”, color=”black”)

ax.text(best_fpr_train, best_tpr_train, s=”(%.3f,%.3f)” %(best_fpr_train, best_tpr_train))

plt.xlim([0.0, 1.0])

plt.ylim([0.0, 1.0])

plt.xlabel(‘False Positive Rate’)

plt.ylabel(‘True Positive Rate’)

plt.title(‘ROC curve (Train), AUC = %.4f’%auc_train)


fpr_test, tpr_test, thresholds_test = roc_curve(y_test_true, y_test_prob, pos_label =True)


y_test = y_test_prob > best_threshold


cm_test = confusion_matrix(y_test_true, y_test)

acc_test = accuracy_score(y_test_true, y_test)

auc_test = roc_auc_score(y_test_true, y_test)


print ‘Test Accuracy: %s ‘ %acc_test

print ‘Test AUC: %s ‘ %auc_test

print ‘Test Confusion Matrix:’

print cm_test


tpr_score = float(cm_test[1][1])/(cm_test[1][1] + cm_test[1][0])

fpr_score = float(cm_test[0][1])/(cm_test[0][0]+ cm_test[0][1])


ax2 = fig.add_subplot(122)

curve1 = ax2.plot(fpr_test, tpr_test)

curve2 = ax2.plot([0, 1], [0, 1], color=”navy”, linestyle=”–“)

dot = ax2.plot(fpr_score, tpr_score, marker=”o”, color=”black”)

ax2.text(fpr_score, tpr_score, s=”(%.3f,%.3f)” %(fpr_score, tpr_score))

plt.xlim([0.0, 1.0])

plt.ylim([0.0, 1.0])

plt.xlabel(‘False Positive Rate’)

plt.ylabel(‘True Positive Rate’)

plt.title(‘ROC curve (Test), AUC = %.4f’%auc_test)

plt.savefig(‘ROC’, dpi = 500)

plt.show()


return best_threshold


Một biểu đồ roc mẫu được tạo bởi mã này


Tải thêm tài liệu liên quan đến nội dung bài viết Hướng dẫn dùng roc curce python


programming

python

GridSearchCV ROC curve

ROC curve sklearn

Plot_confusion_matrix


Hướng dẫn dùng roc curce pythonReply
Hướng dẫn dùng roc curce python4
Hướng dẫn dùng roc curce python0
Hướng dẫn dùng roc curce python Chia sẻ


Share Link Download Hướng dẫn dùng roc curce python miễn phí


Bạn vừa Read nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Clip Hướng dẫn dùng roc curce python tiên tiến và phát triển nhất Share Link Cập nhật Hướng dẫn dùng roc curce python Free.



Hỏi đáp vướng mắc về Hướng dẫn dùng roc curce python


Nếu sau khi đọc nội dung bài viết Hướng dẫn dùng roc curce python vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Tác giả lý giải và hướng dẫn lại nha

#Hướng #dẫn #dùng #roc #curce #python

Related posts:

Post a Comment

Previous Post Next Post

Discuss

×Close