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 reg
docker-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.05
predicted_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=0
estimate
- найденное значение коэфициентаb (b*x)
t value
- критерий, основанный на t распределении Стьюдента. Указывает на значимость фактора для моделиp value
- вероятность нулевой гипотезыR-squared
иAdjusted R-squared
- обычный и скорректированный коэфициент детерминацииF-statistic
- оценка значимости модели
Лучше о параметрах написано по ссылке