cuốn sách gpt4 ai đã làm

python - Cách cải thiện khả năng dự đoán, phân loại mạng thần kinh

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 02:03:06 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng tìm hiểu một số mạng lưới thần kinh cho vui. Tôi quyết định thử phân loại một số thẻ huyền thoại Pokémon từ bộ dữ liệu trên kaggle. Tôi đã đọc tài liệu và làm theo Hướng dẫn thành thạo về học máy, đồng thời đọc phương tiện truyền thông để cố gắng hiểu quy trình.

Vấn đề/câu hỏi của tôi: Tôi cố gắng dự đoán nhưng mọi thứ đều dự đoán là "0". Tôi nghĩ điều này là sai. Độ chính xác lỗi của tôi có phải là 92% không? Tôi đọc một cái gì đó trực tuyến về độ chính xác của lỗi.

请帮忙!

Một số thông tin cơ bản: Tập dữ liệu có 800 hàng và 12 cột. Tôi đang dự đoán cột cuối cùng (đúng/sai). Tôi đang sử dụng thuộc tính dữ liệu với số và phân loại. Tôi đã mã hóa các danh mục số bằng nhãn. 92% số thẻ này là giả. 8% là đúng.

Tôi đã lấy mẫu và chạy mạng lưới thần kinh trên 200 thẻ và đạt độ chính xác 91%... Tôi cũng đặt lại mọi thứ và đạt độ chính xác 92% trên tất cả 800 thẻ. Tôi có đang trang bị quá mức không?

Cảm ơn trước sự giúp đỡ của bạn

dataFrame = dataFrame.fillna(value='NaN')

bộ mã hóa nhãn = LabelEncode()

numpy_dataframe = dataFrame.as_matrix()
numpy_dataframe[:, 0] = labelencode.fit_transform(numpy_dataframe[:, 0])
numpy_dataframe[:, 1] = labelencode.fit_transform(numpy_dataframe[:, 1])

numpy_dataframe
X = numpy_dataframe[:,0:10]
Y = numpy_dataframe[:,10]
mô hình = Tuần tự()
model.add(Dense(12, input_dim=10, activate='relu'))
model.add(Dense(8, activate='relu'))
model.add(Dense(1, activate='sigmoid'))
model.compile(loss='binary_crossentropy', Optimizer='adam', số liệu=['độ chính xác'])
model.fit(X, Y, epochs=150, batch_size=10)
điểm = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], điểm[1]*100))

#điều này cho thấy rằng chúng tôi có độ chính xác 91,88% với toàn bộ khung dữ liệu


dataFrame200False = dataFrame
dataFrame200False['Legendary'] = dataFrame200False['Legendary'].astype(str)
dataFrame200False= dataFrame200False[dataFrame200False['Legendary'].str.contains("False")]

dataFrame65True = dataFrame

dataFrame65True['Legendary'] = dataFrame65True['Legendary'].astype(str)
dataFrame65True= dataFrame65True[dataFrame65True['Legendary'].str.contains("True")]

DataFrameFalseSample = dataFrame200False.sample(200)
DataFrameFalseMẫu

dataFrameSampledTrueFalse = dataFrame65True.append(DataFrameFalseSample, ign_index=True)
dataFrameSampledTrueSai

#label mã hóa các tập tin
bộ mã hóa nhãn = LabelEncode()

numpy_dataSample = dataFrameSampledTrueFalse.as_matrix()
numpy_dataSample[:, 0] = labelencode.fit_transform(numpy_dataSample[:, 0])
numpy_dataSample[:, 1] = labelencode.fit_transform(numpy_dataSample[:, 1])

numpy_dataMẫu
a = numpy_dataframe[:,0:10]
b = numpy_dataframe[:,10]

mô hình = Tuần tự()
model.add(Dense(12, input_dim=10, activate='relu'))
model.add(Dense(8, activate='relu'))
model.add(Dense(1, activate='sigmoid'))
model.compile(loss='binary_crossentropy', Optimizer='adam', số liệu=['độ chính xác'])
model.fit(a, b, epochs=1000, batch_size=10)

điểmSample = model.evaluate(a, b)
print("\n%s: %.2f%%" % (model.metrics_names[1], ScoreSample[1]*100))

dataFramePredictSample = dataFrame.sample(500)
bộ mã hóa nhãn = LabelEncode()

numpy_dataframeSamples = dataFramePredictSample.as_matrix()
numpy_dataframeSamples[:, 0] = labelencode.fit_transform(numpy_dataframeSamples[:, 0])
numpy_dataframeSamples[:, 1] = labelencode.fit_transform(numpy_dataframeSamples[:, 1])

Xnew = numpy_dataframeSamples[:,0:10]
Ynew = numpy_dataframeSamples[:,10]


#đưa ra dự đoán
Y = model.predict_classes(Xnew)
# hiển thị đầu vào và đầu ra dự đoán
cho tôi trong phạm vi(len(Xnew)):
print("X=%s, Dự đoán=%s" % (Xnew[i], Y[i]))

câu trả lời hay nhất

câu hỏi:

Vấn đề là, như bạn nói, tập dữ liệu của bạn bị ảnh hưởng nghiêm trọngmất cân bằng. Điều này có nghĩa là lớp 0 có nhiều ví dụ huấn luyện hơn lớp 1. Điều này khiến mạng thiên về dự đoán lớp 0 trong quá trình đào tạo.

đánh giá:

Điều đầu tiên bạn nên làm làKHÔNGSử dụng độ chính xác làm thước đo đánh giá của bạn!ma trận nhầm lẫn, nhờ đó bạn biết chính xác những gì mô hình của bạn dự đoán. Bạn cũng có thể xem xét tính trung bình vĩ mô (nếu bạn chưa quen với kỹ thuật này, hãy đọc cái này).

Giải quyết vấn đề:

Có hai cách để cải thiện hiệu suất của mô hình của bạn:

  • Lấy mẫu lạidữ liệu của bạn, làm cho nóTHĂNG BẰNG. Bạn có một vài lựa chọn ở đây. Cách tiếp cận phổ biến nhất là thực hiệnlấy mẫu quá mức(Ví dụ NHẸ ), đưa nó đến với đại đa số người dân. Một lựa chọn khác là làm cho hầu hết các lớpLấy mẫu dưới mức(Ví dụ Phân cụm trung tâm ), khiến dân số của nó giảm xuống tầng lớp thiểu số.
  • sử dụng trong quá trình đào tạohạng cân. Điều này buộc mạngchú ý nhiều hơn đếnCác mẫu từ tầng lớp thiểu số (đọc bài đăng này Tìm hiểu thêm).

Về python - cách cải thiện khả năng dự đoán và phân loại mạng thần kinh, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55317559/

29 4 0
không gian vũ trụ
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