ฉันกำลังทำงานวิจัยที่จำเป็นที่จะต้องเป็นหนึ่งในประเภทของผู้ชนะสามเหตุการณ์ = ( win
, draw
, lose
)
WINNER LEAGUE HOME AWAY MATCH_HOME MATCH_DRAW MATCH_AWAY MATCH_U2_50 MATCH_O2_50
3 13 550 571 1.86 3.34 4.23 1.66 2.11
3 7 322 334 7.55 4.1 1.4 2.17 1.61
รุ่นปัจจุบันของฉันคือ:
def build_model(input_dim, output_classes):
model = Sequential()
model.add(Dense(input_dim=input_dim, output_dim=12, activation=relu))
model.add(Dropout(0.5))
model.add(Dense(output_dim=output_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adadelta')
return model
- ฉันไม่แน่ใจว่าเป็นสิ่งที่ถูกต้องสำหรับการจำแนกหลายระดับ
- การตั้งค่าที่ดีที่สุดสำหรับการจำแนกเลขฐานสองคืออะไร?
แก้ไข: # 2 - เช่นนั้น?
model.add(Dense(input_dim=input_dim, output_dim=12, activation='sigmoid'))
model.add(Dropout(0.5))
model.add(Dense(output_dim=output_classes, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adadelta')
architecture
ส่วนใหญ่ของชั้น มีคำแนะนำสำหรับคำถามของฉัน # 2 หรือไม่
activation='sigmoid'
และloss='binary_crossentropy'
activation='sigmoid'
ในชั้นเอาท์พุท เลเยอร์ที่ซ่อนอยู่อาจยังคง'relu'
เหมือนเดิม (แม้ว่าฉันจะเริ่มด้วย'tanh'
ปัญหานี้นั่นเป็นความชอบส่วนตัวที่ได้รับการสนับสนุนทางทฤษฎีน้อยมาก)
activation='softmax'
และตัวเลือกคอมไพล์loss='categorical_crossentropy'
ใช่หรือไม่ IMO ตัวเลือกของคุณสำหรับผู้ที่ดีสำหรับแบบจำลองเพื่อทำนายคลาสที่ไม่เกิดร่วมกันหลายคลาส หากคุณต้องการคำแนะนำเกี่ยวกับแบบจำลองทั้งหมดนั้นแตกต่างกันมากและคุณควรอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่คุณเป็นกังวลมิฉะนั้นจะมีคำอธิบายมากเกินไปในคำตอบเดียว