Формула для расчета ЗП
Есть такие данные input {workTime: 3600, keyCount: 5000, freeTime: 120} (-сколько человек работал, сколько сделал нажатий, сколько отдыхал)
И output {cash: 2400} (сколько заработает, если будет работать столько, сколько в input). Таких вариаций может быть много.
Я получаю данные workTime, keyCount, freeTime, они могут быть любыми. Нужно получить то, сколько заработает человек.
Я пробовал вывести формулу, но не получилось. Я думаю, что можно использовать нейросеть (brain.js например). Я попробовал поиграться, но оказывается, что данные должны быть от 0 до 1. Я попробовал подавать данные для обучения в таком формате: 1/input. Но почему-то для любых вариаций было примерно одинаковое значение.
Вот то, что я пробовал
const net = new brain.NeuralNetwork({
hiddenLayers: [10],
iterations: 20000
});
net.train([{
input: [1 / 5000, 1 / 3600, 0],
output: [1 / 2400]
},
{
input: [1 / 5000, 1 / 3600, 1 / 240],
output: [1 / 1800]
},
{
input: [1 / 3000, 1 / 3600, 1 / 120],
output: [1 / 1800]
},
{
input: [1 / 6000, 1 / 7200, 1 / 120],
output: [1 / 3600]
},
]);
const output = net.run([1 / 3000, 1 / 7200, 1 / 120]); // { white: 0.99, black: 0.002 }
console.log(1 / output);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/brain/0.6.3/brain.min.js"></script>
</head>
<body>
</body>
</html>
Как сделать такую нейронную сеть? Или какую можно придумать формулу?
Ответы (1 шт):
Вы тренируете на близких к нулю значениях, и получаете близкое к нулю значение.
Нормализуйте все подряд.
const net = new brain.NeuralNetwork({
hiddenLayers: [10],
iterations: 20000
});
net.train([{
input: [1 / 5, 1 / 1, 0],
output: [1 / 4]
},
{
input: [1 / 5, 1 / 1, 1 / 2],
output: [1 / 3]
},
{
input: [1 / 3, 1 / 1, 1],
output: [1 / 3]
},
{
input: [1 / 6, 1 / 2, 1],
output: [1 / 6]
},
]);
const output = net.run([1 / 5, 1 / 1, 1 / 2]);
console.log(1 / output); // примерно 3
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/brain/0.6.3/brain.min.js"></script>
</head>
<body>
</body>
</html>