sách gpt4 ăn đã đi

TypeError: chuỗi định dạng không được hỗ trợ được truyền cho hàm .__format__(TypeError: Chuỗi định dạng được truyền cho hàm không được hỗ trợ. __FORMAT__)

In lại Tác giả: trợ lý lỗi Thời gian cập nhật: 25-10-2023 09:58:38 31 4
mua khóa gpt4 giày nike



Khi làm việc trên jupyter notebook, tôi gặp phải vấn đề này:

Khi làm việc trên Jupyter Notebook, tôi gặp phải vấn đề này:


TypeError: chuỗi định dạng không được hỗ trợ được truyền vào hàm .__format__

Đây là nơi mã bắt đầu:

Đây là nơi mã bắt đầu:


def đánh giá_preds(y_true, y_preds):
"""
Thực hiện đánh giá comp trên nhãn y_true và nhãn y_preds trên phân loại
"""
độ chính xác = accuracy_score(y_true,y_preds)
độ chính xác = điểm_chính_xác(y_true,y_preds)
thu hồi = recall_score(y_true,y_preds)
f1 = f1_score(y_true,y_preds)
metric_dict = {"độ chính xác": vòng(độ chính xác,2),
"độ chính xác": round(độ chính xác,2),
"recall": vòng(recall,2),
"f1": vòng(f1,2)}

in(f"Độ chính xác :{ accuracy_score*100:.2f}%")
in(f"Độ chính xác :{ precision_score:.2f}")
in(f"Gọi lại :{ recall_score:.2f}")
in(f"F1 :{ f1_score:.2f}")

trả về metric_dict

Mã bên dưới đang được chạy trên một ô khác trong sổ ghi chép jupyter

Mã bên dưới được chạy trên một ô khác trong sổ ghi chép jupyter


từ sklearn.ensemble nhập RandomForestClassifier

np.random.seed(42)

heart_disease_shuffled= heart_disease.sample(frac=1)

X= heart_disease_shuffled.drop("mục tiêu",trục =1)
y = heart_disease_shuffled["mục tiêu"]

train_split = vòng(0.7 * len(heart_disease_shuffled))
valid_split = vòng(train_split + 0,15 * len(heart_disease_shuffled))

X_train,y_train = X[:train_split], y[:train_split]
X_hợp lệ,y_hợp lệ = X[phân_biệt_tàu:phân_biệt_hợp_lệ], y[phân_biệt_tàu:phân_biệt_hợp_lệ]

X_test,y_test = X[phân_biệt_hợp_lệ:], y[:phân_biệt_hợp_lệ]

clf = Phân loại rừng ngẫu nhiên()
clf.fit(X_train,y_train)


# Tạo ưu tiên cho Baseline

y_preds = clf.predict(X_hợp lệ)

# Đánh giá bộ phân loại trên tập xác thực

cơ sở_metrics = đánh giá_preds(y_valid, y_preds)
số liệu cơ sở

Tôi có thể giải quyết thế nào?

Làm thế nào tôi có thể sửa nó?


Đã thử thay đổi các thông số và một số thứ khác nhưng tất cả đều xuất hiện một số lỗi như được liệt kê ở trên

Đã thử thay đổi các tham số và một loạt thứ khác nhưng tất cả chúng đều xuất hiện một số lỗi giống như lỗi được liệt kê ở trên


Thêm câu trả lời

Phải có một thông báo theo dõi đầy đủ hiển thị dòng mà mã này không thành công. Nếu vậy, hãy đăng nó trong câu hỏi dưới dạng một khối mã khác.

Sẽ có một thông báo truy nguyên đầy đủ hiển thị dòng nơi mã này bị lỗi. Nếu vậy, hãy đăng nó dưới dạng một khối mã khác trong câu hỏi.

Thử in(kiểu(x), x) cho mỗi dòng in của bạn.

Hãy thử in (loại(X), x) cho từng dòng in của bạn.

Tôi chưa phát hiện chính xác điều này xảy ra ở đâu trong mã của bạn, nhưng về cơ bản bạn đang cố gắng định dạng một đối tượng hàm bằng một trình chỉ định định dạng. Giả sử tôi def foo(): vượt qua. Và sau đó tôi thử f"dữ liệu của tôi {foo:.2f}". Tôi đang cố định dạng hàm "foo" bằng một chỉ định float. Và điều đó không có ý nghĩa. Theo gợi ý của @jwal, hãy tìm dòng lỗi rồi in ra các kiểu của từng tham số đã định dạng.

Tôi chưa tìm thấy vị trí chính xác trong mã nơi điều này xảy ra, nhưng về cơ bản, bạn đang cố gắng sử dụng công cụ xác định định dạng để định dạng đối tượng hàm. Giả sử tôi xác định foo(): pass. Sau đó tôi thử f "mydata{foo:.2f}". Tôi đang cố gắng định dạng hàm "foo" bằng cách sử dụng bộ xác định float. Điều này không có ý nghĩa. Như @jwal đã đề xuất, hãy tìm dòng bị lỗi và in loại của từng tham số định dạng.

Chính xác là ở đâu? Vui lòng đăng toàn bộ dấu vết lỗi - xem cách tạo ví dụ tái tạo tối thiểu

Chính xác thì ở đâu? Vui lòng đăng dấu vết lỗi đầy đủ - xem Cách tạo một ví dụ có thể lặp lại tối thiểu

Khuyến nghị câu trả lời tuyệt vời

Bạn đang cố gắng in các hàm thay vì các giá trị mà chúng trả về. Ví dụ, bạn gán

Bạn đang cố gắng in các hàm chứ không phải các giá trị mà chúng trả về. Ví dụ, bạn có thể


độ chính xác = accuracy_score(y_true,y_preds)

nhưng sau đó hãy thử định dạng hàm, không phải kết quả

Nhưng sau đó thử định dạng hàm chứ không phải kết quả


f"Độ chính xác: { accuracy_score*100:.2f}%"

Thay vào đó, bạn nên sử dụng giá trị đã tính toán

Thay vào đó, bạn nên sử dụng giá trị tính toán


f"Độ chính xác :{ accuracy*100:.2f}%"

Nhưng bạn cũng đã tạo một từ điển với các giá trị được làm tròn. Bạn có thể sử dụng từ điển đó với một chuỗi f hoặc sử dụng .định dạng phương pháp thay thế

Nhưng bạn cũng đã tạo một từ điển có các giá trị được làm tròn. Bạn có thể sử dụng từ điển này với chuỗi f hoặc sử dụng phương thức .Format thay thế


f"Độ chính xác :{ metric_dict['độ chính xác']:.2f}"
# -- hoặc --
"Độ chính xác: {độ chính xác:.2f}".format(**metric_dict)


Đây là phiên bản cập nhật/đang hoạt động,

Dưới đây là phiên bản cập nhật/đang hoạt động,


nhập pandas dưới dạng pd

def đánh giá_preds(y_true, y_preds):
"""
Thực hiện đánh giá comp trên nhãn y_true và nhãn y_preds trên phân loại
"""
độ chính xác = accuracy_score(y_true,y_preds)
độ chính xác = điểm_chính_xác(y_true,y_preds)
thu hồi = recall_score(y_true,y_preds)
f1 = f1_score(y_true,y_preds)
metric_dict = {"độ chính xác": vòng(độ chính xác,2),
"độ chính xác": round(độ chính xác,2),
"recall": vòng(recall,2),
"f1": vòng(f1,2)}

in(f"Độ chính xác :{ độ chính xác *100:.2f}%")
in(f"Độ chính xác :{độ chính xác:.2f}")
in(f"Gọi lại :{recall:.2f}")
in(f"F1 :{ f1:.2f}")
trả về metric_dict


từ sklearn.ensemble nhập RandomForestClassifier

np.random.seed(42)

heart_disease_shuffled= heart_disease.sample(frac=1)

X= heart_disease_shuffled.drop("mục tiêu",trục =1)
y = heart_disease_shuffled["mục tiêu"]

train_split = vòng(0.7 * len(heart_disease_shuffled))
valid_split = vòng(train_split + 0,15 * len(heart_disease_shuffled))

X_train,y_train = X[:train_split], y[:train_split]
X_hợp lệ,y_hợp lệ = X[phân_biệt_tàu:phân_biệt_hợp_lệ], y[phân_biệt_tàu:phân_biệt_hợp_lệ]

X_test,y_test = X[phân_biệt_hợp_lệ:], y[:phân_biệt_hợp_lệ]

clf = Phân loại rừng ngẫu nhiên()
clf.fit(X_train,y_train)

# Tạo ưu tiên cho Baseline
y_preds = clf.predict(X_hợp lệ)
# Đánh giá bộ phân loại trên tập xác thực
cơ sở_metrics = đánh giá_preds(y_valid, y_preds)
số liệu cơ sở


Thêm câu trả lời

Cảm ơn @tdelaney vì phản hồi tốt của bạn. Đã thay đổi thành accuracy, precision thực tế và nhận được câu trả lời của tôi. Nhân tiện, lý do tôi sử dụng accuracy_score là vì người hướng dẫn đã sử dụng những thứ tương tự và nhận được kết quả nhưng đã thay đổi các tham số này sau một thời gian và tôi đã bỏ qua nó & tôi chỉ sao chép anh ấy sau khi tôi gặp lỗi trong mã của riêng mình vì tôi vừa mới bắt đầu học Machine Learning. Thực sự xin lỗi vì tất cả sự bất tiện này

Cảm ơn @tdelaney vì phản hồi tử tế, đã thay đổi nó thành độ chính xác thực tế và nhận được câu trả lời của tôi btw lý do tôi sử dụng Accuracy_Score là vì huấn luyện viên đã sử dụng điều tương tự và nhận được kết quả nhưng sau một thời gian, các thông số này đã thay đổi theo thời gian, tôi đã bỏ qua nó & tôi vừa sao chép của anh ấy sau khi gặp phải lỗi trong mã của chính mình khi tôi mới bắt đầu học máy học, thực sự xin lỗi vì sự bất tiện này

Như đã đăng, điều này không hiệu quả. Việc thụt lề rất quan trọng. Vui lòng làm rõ những gì bạn đã thay đổi

Như bài viết nêu, điều này không hoạt động. Thụt lề là quan trọng. Vui lòng mô tả những gì bạn đã thay đổi

Phần thụt lề trong mã đầu tiên là chính xác. Tôi vừa thay đổi accuracy_score, precision_score, recall_score, f1_score thành accuracy, precision thực tế, như được ai đó đăng trong các câu lệnh in giữa dấu ngoặc {}

Việc thụt lề trong đoạn mã đầu tiên là chính xác, tôi chỉ thay đổi Accuracy_Score, Precision_Score, Recall_Score, F1_Score thành độ chính xác thực tế, độ chính xác như ai đó đã đăng trong câu lệnh in giữa dấu ngoặc {}

Tôi đã sửa lỗi thụt lề cho bạn. Vui lòng biên tập nếu không đúng.

Tôi đã sửa vết lõm cho bạn. Nếu sai thì vui lòng chỉnh sửa.

Cảm ơn bạn, tôi không thể sửa được phần thụt lề vì khi tôi sao chép và dán giống như bài đăng ở trên, tôi nhận được kết quả trong Jupyter Notebook của mình, vì vậy tôi nghĩ phần thụt lề là chính xác. Thực sự đánh giá cao sự giúp đỡ và hợp tác của bạn :)

Cảm ơn bạn, tôi không thể sửa vết lõm vì khi sao chép và dán tôi nhận được kết quả trên vào sổ ghi chép Jupyter của mình, vì vậy tôi cho rằng vết lõm là chính xác. Cảm ơn bạn rất nhiều vì sự giúp đỡ và hợp tác của bạn :)

31 4 0
trợ lý lỗi
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress