cd regression # идем в папку с проектом
python3 -m venv venv # создаем виртуальное окружение
source venv/bin/activate # - активируем виртуальное окружение
pip3 -r requirements.txt # устанавливаем зависимостиcd regression # идем в папку с проектом
pip3 -r requirements.txt # устанавливаем зависимостиpython3 run.py # - запуск консольного приложения
python3 run.py serve - запуск http сервераdocker build -t reg .
docker run -it regdocker-compose up- на каждый запрос сервер отвечает сообщением с одинаковой структурой:
{
"data": {},
"error": false
}data-objконтейнер для возвращаемых данных, в случае ошибки содержит ее описаниеerror-boolфлаг наличия ошибки
Метод для обучения модели регрессии. Возвращает итоговый отчет.
{
"columns": ["y","x1","x2","x3","x4","x5","x6"],
"rows": [
[3.3,52,1,4,15,2,2.6],
[3.8,85,4,10,15,2.5,3.1],
[4.8,124,6,28,8,0.3,0.5],
[4.6,48,55,110,8,2,1],
[4,97,6,10,12,1,3.3],
[3.7,39,26,158,8,0.5,3.7],
[4.1,104,16,257,8,0,0],
[4.1,76,18,53,8,0.4,1.5]
],
"relevance_min_value": 0.7,
"ignore_columns": ["x1","x2"]
}columns- перечисление названий параметров,yи хотя бы одинxвсегда должны быть указаныrows- матрица с данными, в каждом ряду должно быть столько же значений, сколько было указано названий параметровrelevance_min_value- минимальный коэфициент корреляции, при котором параметры будут считаться коллениарнымиignore_columns- список параметров, которые необходимо исключить из анализа (параметр может быть пустым массивом[])
{
"data": {
"adj_r_squared": 0.5155183038651862,
"correlation": {
"correlated_params": [
[
"x4",
"x5",
0.7407192072666815
]
],
"relevance_min_value": 0.7,
"table": {
"x1": {
"x1": 1.0,
"x2": -0.5134551831724647,
"x3": -0.08001569251893213,
"x4": -0.08705131541627431,
"x5": -0.41733439553191765,
"x6": -0.4756645815169333,
"y": 0.49135162700875246
},
"x2": {
"x1": -0.5134551831724647,
"x2": 1.0,
"x3": 0.4551156176320718,
"x4": -0.5929430904528824,
"x5": 0.05493603038103341,
"x6": -0.24898065005643094,
"y": 0.42456358225704105
},
"x3": {
"x1": -0.08001569251893213,
"x2": 0.4551156176320718,
"x3": 1.0,
"x4": -0.6234237037556432,
"x5": -0.5222478991650603,
"x6": -0.4228884579253137,
"y": 0.1171648657174811
},
"x4": {
"x1": -0.08705131541627431,
"x2": -0.5929430904528824,
"x3": -0.6234237037556432,
"x4": 1.0,
"x5": 0.7407192072666815,
"x6": 0.5614080755953589,
"y": -0.659828879073858
},
"x5": {
"x1": -0.41733439553191765,
"x2": 0.05493603038103341,
"x3": -0.5222478991650603,
"x4": 0.7407192072666815,
"x5": 1.0,
"x6": 0.4077474828832173,
"y": -0.31486645119259465
},
"x6": {
"x1": -0.4756645815169333,
"x2": -0.24898065005643094,
"x3": -0.4228884579253137,
"x4": 0.5614080755953589,
"x5": 0.4077474828832173,
"x6": 1.0,
"y": -0.6775863445005003
},
"y": {
"x1": 0.49135162700875246,
"x2": 0.42456358225704105,
"x3": 0.1171648657174811,
"x4": -0.659828879073858,
"x5": -0.31486645119259465,
"x6": -0.6775863445005003,
"y": 1.0
}
}
},
"deviation": 0.17190065554110073,
"f-stat-values": {
"f-crit": 9.117182253246417,
"f-significance": 0.20706507599809795,
"f-stat": 2.8621075655932273,
"is_zero_hypothesis": true
},
"p-significance": [
"x3",
"x4",
"x6"
],
"predicted_y": [
3.63287384273946,
3.6087215296823274,
4.625468048109845,
4.582679276728009,
3.752208098261873,
3.7534991239443922,
4.043320425053542,
4.401229655480551
],
"r_squared": 0.7923649873707941,
"result-table": {
"estimates": {
"x3": -0.002713,
"x4": -0.137445,
"x5": 0.156294,
"x6": -0.172042,
"y-zero": 5.840128
},
"p-values": {
"x3": 0.004055730042756611,
"x4": 3.846058838652411e-05,
"x5": 0.23035604156153489,
"x6": 0.035936281107707524,
"y-zero": 1.494637140497801e-06
},
"std-error": {
"x3": 0.0006465735740502291,
"x4": 0.015030743068879557,
"x5": 0.1189704217894174,
"x6": 0.06642146828826596,
"y-zero": 0.39288663570628146
},
"t-values": {
"x3": -4.195989396599984,
"x4": -9.144280246238534,
"x5": 1.3137211213083997,
"x6": -2.590162429913441,
"y-zero": 14.864664730166313
}
},
"t-significance": []
},
"error": false
}adj_r_squared- скорректированный R^2correlation- данные анализа корреляции, включает коррелирующие параметры и таблицу корреляцииdeviation- среднее квадратичное отклонениеf-stat-values- значения f теста, в частности общее значения уровня значимости уровнения, фактические и критические значенияf, а так же флаг подтверждения нулевой гипотезыp-significance- перечисление значимых параметров поp < 0.05predicted_y- предсказанные значенияyот прогона на тестовых данныхr_squared- R^2result-table- таблица результатов анализа, с найденными коэфициентами уравнения, ошибками,pиtзначениямиt-significance- перечисление значимых параметров поt > 2
Возвращает перечисление параметров для последней обученной модели
{
"data": {
"params": [
"x3",
"x4",
"x5",
"x6"
]
},
"error": false
}Вычисляет предполагаемое значение на основе переданных параметров и последней обученной модели
{ "x3": 1, "x4": 2, "x5": 3, "x6": 4}Ответ:
{
"data": {
"prediction": 5.343236747961308
},
"error": false
}- приложение предложит выбрать файл. По умолчанию нужный файл уже есть в директории
sources, но можно добавить свои. Это должен быть*.csvфайл, с;в роли разделителя. Заголовок с параметрами обязателен. Смsources/example.csv - содержимое файла выведется на экран
(TODO: ограничение для больших файлов) - программа предложит выбрать коэфициент корреляции, необходимо для определения связанных параметров и не более
- программа выведет матрицу корреляции, с связанными параметрами (если есть)
- программа предложит исключить один или несколько параметров, перечислять через запятую, или не вводить ничего,
нажав
enter - начнется генерация отчета в выводе
- после отчета программа предложит вбить значения x для прогноза
Предполагаемый y- просто вывод предполагаемых y, в текущем алгоритме мы не делим исходную выборку на тестовую и обучачающую, т.к имеем слишком маленькое число значений.Residuals- различные значений возможных ошибок моделиCoefficients- таблица коэфициентовx
intercept- базовое значениеy, если всеx=0estimate- найденное значение коэфициентаb (b*x)t value- критерий, основанный на t распределении Стьюдента. Указывает на значимость фактора для моделиp value- вероятность нулевой гипотезыR-squaredиAdjusted R-squared- обычный и скорректированный коэфициент детерминацииF-statistic- оценка значимости модели
Лучше о параметрах написано по ссылке