ฉันกำลังดู pybrain สำหรับการตรวจสอบการเตือนเซิร์ฟเวอร์และหาสาเหตุที่แท้จริงของปัญหา ฉันมีความสุขกับการฝึกอบรมโดยใช้การเรียนรู้แบบมีผู้สอนและดูแลชุดข้อมูลการฝึกอบรม ข้อมูลมีโครงสร้างดังนี้:
- เซิร์ฟเวอร์ประเภทA # 1
- นาฬิกาปลุกประเภท 1
- Alarm type 2
- เซิร์ฟเวอร์ประเภทA # 2
- นาฬิกาปลุกประเภท 1
- Alarm type 2
- เซิร์ฟเวอร์ประเภทB # 1
- Alarm type 99
- Alarm type 2
ดังนั้นจึงมีnเซิร์ฟเวอร์กับxสัญญาณเตือนที่สามารถหรือUP
DOWN
ทั้งสองn
และx
เป็นตัวแปร
หากเซิร์ฟเวอร์ A1 มีสัญญาณเตือน 1 & 2เหมือนDOWN
กันเราสามารถพูดได้ว่าบริการ aหยุดทำงานบนเซิร์ฟเวอร์นั้นและเป็นสาเหตุของปัญหา
หากการเตือน 1หยุดทำงานบนเซิร์ฟเวอร์ทั้งหมดเราสามารถพูดได้ว่าบริการ aเป็นสาเหตุ
อาจมีหลายตัวเลือกสำหรับสาเหตุดังนั้นการจำแนกแบบตรงจึงไม่เหมาะสม
ฉันต้องการผูกแหล่งข้อมูลในภายหลังกับเน็ต เช่นสคริปต์ที่ ping บริการภายนอกบางอย่าง
การเตือนภัยที่เหมาะสมทั้งหมดอาจไม่ถูกเรียกใช้ในคราวเดียวเนื่องจากการตรวจสอบบริการแบบอนุกรมดังนั้นจึงสามารถเริ่มต้นด้วยเซิร์ฟเวอร์หนึ่งลงจากนั้นเซิร์ฟเวอร์อื่นลงอีก 5 นาทีในภายหลัง
ฉันพยายามทำสิ่งพื้นฐานบางอย่างในตอนแรก:
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
INPUTS = 2
OUTPUTS = 1
# Build network
# 2 inputs, 3 hidden, 1 output neurons
net = buildNetwork(INPUTS, 3, OUTPUTS)
# Build dataset
# Dataset with 2 inputs and 1 output
ds = SupervisedDataSet(INPUTS, OUTPUTS)
# Add one sample, iterable of inputs and iterable of outputs
ds.addSample((0, 0), (0,))
# Train the network with the dataset
trainer = BackpropTrainer(net, ds)
# Train 1000 epochs
for x in xrange(10):
trainer.train()
# Train infinite epochs until the error rate is low
trainer.trainUntilConvergence()
# Run an input over the network
result = net.activate([2, 1])
แต่ฉัน [m มีช่วงเวลาที่ยากลำบากในการจับคู่หมายเลขตัวแปรสัญญาณเตือนเข้ากับจำนวนคงที่ของสัญญาณเข้า ตัวอย่างเช่นถ้าเราเพิ่มการเตือนไปยังเซิร์ฟเวอร์หรือเพิ่มเซิร์ฟเวอร์สุทธิทั้งหมดจะต้องถูกสร้างขึ้นมาใหม่ ถ้านั่นเป็นสิ่งที่ต้องทำฉันสามารถทำมันได้ แต่อยากรู้ว่ามีวิธีที่ดีกว่านี้ไหม
อีกทางเลือกหนึ่งที่ฉันพยายามคิดคือมีเครือข่ายที่แตกต่างกันสำหรับเซิร์ฟเวอร์แต่ละประเภท แต่ฉันไม่เห็นว่าฉันจะสามารถสรุปข้อสรุปของสภาพแวดล้อมได้อย่างไรเนื่องจากมันจะทำการประเมินในโฮสต์เดียวแทนที่จะเป็น โฮสต์ทั้งหมดในครั้งเดียว
ฉันควรใช้อัลกอริทึมชนิดใดและฉันจะแมปชุดข้อมูลเพื่อวาดข้อสรุปทั่วทั้งสภาพแวดล้อมโดยรวมด้วยตัวแปรอินพุตได้อย่างไร