Есть нейросеть 23 нейрона,ввод через страницу html, через списки с радиокнопками... Только вопросов 6... после ответов на вопросы, $input собирает ответы в массив и передает дальше... Нужно, чтобы с одного вопроса он мог забирать более одного значения. У меня есть мысли, но я не знаю как это работают... Если обобщить, надо чтобы заработало, чтобы нейросеть считала, как надо... Сейчас она выдает совсем не то и одно и то же, возможно это дело в ней, но надо знать точно...Надеюсь на помощь....
//html страница со списками:
<form method="POST" action="http://localhost/question.php">
<tr><td><table align="center" border="0" width="90%">
<tr>
<td>
<br>
<ol start="1">
<li><p align="justify"><font size="+1">Правовая форма:</li><br>
<input type="radio" name="q1" value="one"> юридическое лицо<br>
<input type="radio" name="q1" value="two"> физическое лицо (в форме ИП)<br>
</ol>
<ol start="2">
<li><p align="justify">Срок существования компании:</li><br>
<input type="radio" name="q2" value="one"> менее 1 года<br>
<input type="radio" name="q2" value="two"> от 1 года до 3-х лет<br>
<input type="radio" name="q2" value="three"> от 3-х до 5 лет<br>
<input type="radio" name="q2" value="four"> от 5 до 10 лет<br>
<input type="radio" name="q2" value="five"> более 10 лет<br>
</ol>
<ol start="3">
<li><p align="justify">Объем годовой выручки:</li><br>
<input type="radio" name="q3" value="one"> менее 100млн.р.<br>
<input type="radio" name="q3" value="two"> от 100 до 900млн.р.<br>
<input type="radio" name="q3" value="three"> от 900млн.р. до 1,8млрд.р.<br>
<input type="radio" name="q3" value="four"> более 1,8млрд.р.<br>
</ol>
<ol start="4">
<li><p align="justify">Стоимость предмета лизинга:</li><br>
<input type="radio" name="q4" value="one"> менее 500т.р.<br>
<input type="radio" name="q4" value="two"> от 500т.р. до 5млн.р.<br>
<input type="radio" name="q4" value="three"> от 5 до 50млн.р<br>
<input type="radio" name="q4" value="four"> от 50 до 200млн.р<br>
<input type="radio" name="q4" value="five"> от 200млн.р до 1млрд.р.<br>
</ol>
<ol start="5">
<li><p align="justify">Имеет ли место поручительство:</li><br>
<input type="radio" name="q5" value="one"> нет<br>
<input type="radio" name="q5" value="two"> да<br>
</ol>
<ol start="6">
<li><p align="justify">Максимальный размер аванса:</li><br>
<input type="radio" name="q6" value="one"> 10-20%<br>
<input type="radio" name="q6" value="two"> 20-30%<br>
<input type="radio" name="q6" value="three"> 30-40%<br>
<input type="radio" name="q6" value="four"> 40-50%<br>
<input type="radio" name="q6" value="five"> более 50%<br>
</ol>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
********************************************************************
может это должно как-то так обрабатываться?:
<?php
//Формирование входного вектора для нейросети
$input=array("0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0");
//Присваивание ПЕРВОМУ элементу вектора входа значений
if ($_POST["q1"]=="one") {$input[0]="1";$input[1]="0";}
else if ($_POST["q1"]=="two") {$input[0]="0";$input[1]="1";}
//Присваивание ВТОРОМУ элементу вектора входа значений
if ($_POST["q2"]=="one") {$input[2]="1";$input[3]="0";$input[4]="0";$input[5]="0";$input[6]="0";}
else if ($_POST["q2"]=="two") {$input[2]="0";$input[3]="1";$input[4]="0";$input[5]="0";$input[6]="0";}
else if ($_POST["q2"]=="three") {$input[2]="0";$input[3]="0";$input[4]="1";$input[5]="0";$input[6]="0";}
else if ($_POST["q2"]=="foure") {$input[2]="0";$input[3]="0";$input[4]="0";$input[5]="1";$input[6]="0";}
else if ($_POST["q2"]=="five") {$input[2]="0";$input[3]="0";$input[4]="0";$input[5]="0";$input[6]="1";}
if ($_POST["q3"]=="one") {$input[7]="1";$input[8]="0";$input[9]="0";$input[10]="0";}
else if ($_POST["q3"]=="two") {$input[7]="0";$input[8]="1";$input[9]="0";$input[10]="0";}
else if ($_POST["q3"]=="three") {$input[7]="0";$input[8]="0";$input[9]="1";$input[10]="0";}
else if ($_POST["q3"]=="foure") {$input[7]="0";$input[8]="0";$input[9]="0";$input[10]="1";}
if ($_POST["q4"]=="one") {$input[11]="1";$input[12]="0";$input[13]="0";$input[14]="0";$input[15]="0";}
else if ($_POST["q4"]=="two") {$input[11]="0";$input[12]="1";$input[13]="0";$input[14]="0";$input[15]="0";}
else if ($_POST["q4"]=="three") {$input[11]="0";$input[12]="0";$input[13]="1";$input[14]="0";$input[15]="0";}
else if ($_POST["q4"]=="foure") {$input[11]="0";$input[12]="0";$input[13]="0";$input[14]="1";$input[15]="0";}
else if ($_POST["q4"]=="five") {$input[11]="0";$input[12]="0";$input[13]="0";$input[14]="0";$input[15]="1";}
if ($_POST["q5"]=="one") {$input[16]="1";$input[17]="0";}
else if ($_POST["q5"]=="two") {$input[16]="0";$input[17]="1";}
if ($_POST["q6"]=="one") {$input[18]="1";$input[19]="0";$input[20]="0";$input[21]="0";$input[22]="0";}
else if ($_POST["q6"]=="two") {$input[18]="0";$input[19]="1";$input[20]="0";$input[21]="0";$input[22]="0";}
else if ($_POST["q6"]=="three") {$input[18]="0";$input[19]="0";$input[20]="1";$input[21]="0";$input[22]="0";}
else if ($_POST["q6"]=="foure") {$input[18]="0";$input[19]="0";$input[20]="0";$input[21]="1";$input[22]="0";}
else if ($_POST["q6"]=="five") {$input[18]="0";$input[19]="0";$input[20]="0";$input[21]="0";$input[22]="1";}
//Запуск модуля нейросетети для расчета выходного вектора
include("ffnetwork.php");
//Запуск электронной страницы, соответстыующей результату экспертизы
//Проверяется выходной вектор нейросети
if ($Y[0]==1) include("100.html"); //Надежно
else if ($Y[1]==1) include("010.html"); //Рискованно
else if ($Y[2]==1) include("001.html"); //Абсолютно непредсказуемо
?>
********************************************************************
модуль с расчетами нейросети
<?php
//Исходные данные:
//вектор входа (вход нейросети)
//$input = array("1","0","0","1","0","0","0","0","0","1","0","0","0","0","0","1","1","0","1","0","0","0","0");
//матрица весов первого слоя нейронов
$IW_neuron_1 = array("1.177911","0.105512","0.263293","-0.3719","1.57869","0.368589","0.827375","-1.781826","1.391245","0.213567","1.459717","1.314579","1.303195","0.084983","1.015302","-0.990915","0.077462","0.468139","-1.352615","1.605043","1.598993","0.597296","0.839406");
$IW_neuron_2 = array("-0.153884","0.396099","-3.170456","0.343437","0.366366","0.636817","3.313941","-3.46336","0.958742","0.026489","3.731017","1.567961","1.691831","1.283594","1.54459","-3. 236026","-0.964029","1.400068","-1.203475","0.533574","2.565973","0.007037","-0.523901");
$IW_neuron_3 = array("0.648244","0.82774","0.473689","0.709347","0.361182","0.217184","-0.030906","0.060778","1.220977","0.747436","0.104575","0.414716","0.345751","-0.124935","0.410946","0.573367","0.33273","0.489536","0.121395","0.631047","0.626604","0.924003","0.801563");
$IW_neuron_4 = array("-0.574069","0.159632","-1.098081","-0.476388","0.442494","0.452205","2.195686","-1.213885","-0.201795","-0.232115","1.78723","1.222811","0.480061","0.556574","1.029543","-1.174988","-0.728644","1.068276","0.104915","0.066016","1.923085","-0.128044","-0.113164");
$IW_neuron_5 = array("1.208862","-0.330231","0.908002","-0.348289","0.775575","0.33891","0.418423","-1.273718","2.087651","0.759556","0.651813","0.716496","0.0929","0.651686","-0.299313","0.983252","-0.068999","1.165133","1.724369","-0.064666","0.558993","0.730704","-0.076967");
$IW_neuron_6 = array("0.338652","0.85892","0.673166","0.487377","0.662312","0.927936","0.998063","1.28967","0.20094","0.833763","0.692159","0.517282","0.206029","0.053858","0.380889","-0.171785","0.302355","0.697855","0.310462","0.475335","0.026649","0.292684","0.340758");
$IW_neuron_7 = array("-0.347096","0.497913","0.431493","-0.168869","1.165187","0.520084","0.089087","-0.946113","1.828681","0.785068","0.223754","0.395648","1.093906","-0.192073","0.614998","0.034618","0.290226","0.201455","-0.782692","1.046849","-0.302204","0.193182","1.189399");
$IW_neuron_8 = array("1.667985","0.058217","0.77489","-0.345185","0.339184","0.794969","1.581687","-1.66322","2.569694","0.549946","0.740166","0.697219","0.786281","1.058045","-0.56604","0.717472","0.33384","0.321719","1.727485","-0.794513","0.777316","0.465602","0.363518");
$IW_neuron_9 = array("1.080238","-0.500146","-1.481868","-0.334037","1.186628","0.45277","2.266359","-1.836069","1.621503","-0.425767","2.527561","0.893069","0.27625","0.96094","0.729759","0.757075","-0.267655","1.278727","2.640984","-1.010831","1.686381","-0.414373","-0.439422");
$IW_neuron_10 = array("0.661483","-0.406067","0.106991","-0.249762","1.527713","0.529835","0.433402","-1.279605","1.793609","0.510577","0.822202","1.181896","0.682095","0.319618","0.666756","-0.335536","0.042178","0.187416","-1.955572","2.070894","0.642307","0.229606","1.086625");
//вектор смещений первого слоя нейронов
$IW_biases = array("0.023041","-0.448786","-0.092007","-0.104421","0.123150","0.589318","-0.45828","0.594897","0.397809","0.105773");
//матрица весов второго слоя нейронов
$LW_neuron_1 = array("0.924533","4.701153","-0.912452","2.194751","-0.185092","-0.709759","-1.274246","1.422829","2.436306","-0.212034");
$LW_neuron_2 = array("2.598902","-6.818539","0.834082","-1.894578","-3.396806","-0.483878","2.008274","-4.336485","-4.835544","2.627121");
$LW_neuron_3 = array("-2.759156","-2.232336","-0.919175","-1.653625","-0.264223","-0.444467","-1.358847","0.337594","0.060415","-2.756054");
//вектор смещений второго слоя нейронов
$LW_biases = array("-1.070851","0.006963","-0.939886");
//функция активации для всех узлов нейросети
function activation($x){
return 1/(1 + exp(-$x));
}
//Вспомогательная функция для расчета вектора аргументов
function argument_vector($in,$matrix,$bias){
$res = 0;
for($i=0; $i<count($in); $i++)
$res = $res + $in[$i]*$matrix[$i];
return $res+$bias;
}
//Расчет:
//Расчет вектора аргументов для нейронов первого слоя
$S1 = array(argument_vector($input,$IW_neuron_1,$IW_biases[0]),
argument_vector($input,$IW_neuron_2,$IW_biases[1]),
argument_vector($input,$IW_neuron_3,$IW_biases[2]),
argument_vector($input,$IW_neuron_4,$IW_biases[3]),
argument_vector($input,$IW_neuron_5,$IW_biases[4]),
argument_vector($input,$IW_neuron_6,$IW_biases[5]),
argument_vector($input,$IW_neuron_7,$IW_biases[6]),
argument_vector($input,$IW_neuron_8,$IW_biases[7]),
argument_vector($input,$IW_neuron_9,$IW_biases[8]),
argument_vector($input,$IW_neuron_10,$IW_biases[9]));
//Расчет выходных сигналов нейронов первого слоя
for($i=0; $i<10; $i++)
$S1[$i] = activation($S1[$i]);
//Расчет вектора аргументов для нейронов второго слоя
$Y = array(argument_vector($S1,$LW_neuron_1,$LW_biases[0]),
argument_vector($S1,$LW_neuron_2,$LW_biases[1]),
argument_vector($S1,$LW_neuron_3,$LW_biases[2]));
//Расчет выходных сигналов нейронов второго слоя (выход нейросети)
for($i=0; $i<3; $i++)
$Y[$i] = round(activation($Y[$i]));
// if ($Y[0]==1) {echo "надежно";}
// else if ($Y[1]==1) {echo "рискованно";}
// else if ($Y[2]==1) {echo "абсолютно непредсказуемо";}
// print_r($Y)
?>