|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
|||||||
| 27.08.2020, 13:11 | |||||||
Вообще, подозреваю, что поскольку у меня СЛАУ размером 30000х30000 (и матрица близка к плохо обусловленной), потеря точности из-за большого количества арифметических операций в итерационных методах будет нивелировать их эффект.
0
|
|||||||
| 27.08.2020, 13:11 | |
|
Ответы с готовыми решениями:
156
точность возвращения функции long double Как обойтись без float, double, long double?
|
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|||||||
| 27.08.2020, 14:14 | |||||||
|
Как я уже писал, на таких больших матрицах, точность итеративных методов на несколько порядков превосходит точность прямых методов, а не на 1-2%. Всё потому, что ошибка прямого метода пропорциональна числу обусловленности матрицы и его размера, и это в лучшем случае, а а в итеративных методах она почти не зависит от размера и определяется только числом обусловленности. Добавлено через 19 минут Вот простейший алгоритм решения СЛАУ методом Якоби:
0
|
|||||||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
||
| 27.08.2020, 14:15 | ||
И все-таки есть подозрение, что точности не хватает. Буду пробовать (при всех прочих равных условиях) сделать тоже самое, но с повышенной точностью. Надеюсь будет эффект. Ведь, как я понимаю, с более высокой точностью и прямой метод решения СЛАУ даст эффект. Спасибо, попробую Ваш код. А если в качестве начального приближения использовать результат прямого решения?
0
|
||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
||||||||||||||
| 27.08.2020, 14:35 | ||||||||||||||
В любом случае, погрешность нужно оценить, вполне возможно, что она всё равно останется неприемлемо большой. Тогда без регуляризации Вы ничего не добьётесь. Добавлено через 4 минуты Добавлено через 4 минуты
0
|
||||||||||||||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
|
| 27.08.2020, 14:36 | |
|
Для регуляризации я применяю метод Lasso (Least absolute shrinkage and selection operator) - метод оценивания коэффициентов линейной регрессионной модели.
Метод заключается во введении ограничения на норму вектора коэффициентов модели, что приводит к обращению в 0 некоторых коэффициентов модели. Метод приводит к повышению устойчивости модели в случае большого числа обусловленности матрицы признаков X, позволяет получить интерпретируемые модели - отбираются признаки, оказывающие наибольшее влияние на вектор ответов. http://www.machinelearning.ru/... itle=Лассо Метод LASSO работает, но тоже дает не более 5% эффекта. Т.е. я конечно борюсь за каждый % но это дело такое... Поэтому я обязательно изучу Ваш код и применю его. Напишу потом, что получилось.
0
|
|
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|||
| 27.08.2020, 15:04 | |||
|
Добавлено через 5 минут
0
|
|||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
||
| 27.08.2020, 15:27 | ||
|
0
|
||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|||
| 27.08.2020, 20:35 | |||
|
Добавлено через 26 минут
0
|
|||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
||||||||||||||||||||||
| 27.08.2020, 23:13 | ||||||||||||||||||||||
|
Сомневаюсь, что нужно (интересно) но привожу программу LASSO.
т.е. разница очень маленькая.
Позже реализую итерационный алгоритм.
0
|
||||||||||||||||||||||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|||
| 27.08.2020, 23:29 | |||
|
0
|
|||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
|||
| 27.08.2020, 23:37 | |||
|
если применять Multiprecision Computing Toolbox то сообщение Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.917541e-18. уже не появляется.
0
|
|||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
||
| 28.08.2020, 00:02 | ||
|
cond(S) это и есть обусловленность Вашей задачи, насчёт St - всё сомнительно, непонятно что это вообще за матрица, уж слишком просто всё у Вас получается. Если у вас S -это ковариационная матрица, то нужно оценить её ранг. Признаков может быть сколько угодно, но ранг матрицы не может быть больше числа наблюдений. Если ранг S меньше её размера, то некоторые признаки необходимо удалить, так как они являются линейными комбинациями остальных. Удалять нужно до тех пор, пока cond(S) не примет нормальное значение, хотя бы 1Е6, а не 1Е18. Если бы у Вас было нормальное LASSO, оно бы сделало всё само. Вы видимо считаете, чем больше факторных переменных в регрессионном у равнении, тем лучше ...
0
|
||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
||||
| 28.08.2020, 10:45 | ||||
|
Хотя есть выход, наверно можно найти решение на меньшей выборки, далее обнулить веса меньше порога, за затем выкинуть из матрицы S соответствующие им строки и столбцы. И решить заново СЛАУ, чтобы потом сделать тоже самое еще раз. И делать это, пока не будет найден локальный минимум точности. При этом будет 1 гипер параметр - порог обнуления. По поводу итерационных методов решения СЛАУ. Есть вопрос: Есть ли мне смысл реализовывать какой-либо итерационный метод если я могу просто увеличить точность? Или все-таки простое увеличение точности не гарантирует результат лучше или на уровне итерационных методов?
0
|
||||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|||||
| 28.08.2020, 13:26 | |||||
|
В случае сходящегося итеративного алгоритма, невязка (которую в нём так же несложно вычислить) снизится до уровня eps и будет колебаться возле этой величины. Если Вы повысите машинную точность, то остаточная невязка уменьшится, причём, как в прямом алгоритме, так и в итеративном. Так, что точность итеративного алгоритма, если он правильно реализован, для одной и той же машинной точности, всегда будет выше. На больших матрицах, как у Вас, скорее всего намного выше окажется и скорость вычислений. Нужно Вам это или нет - дело Ваше. Чтобы понять, какой будет прирост точности от применения итеративного алгоритма, посмотрите насколько отличается невязка w от eps. Что касается перехода в повышенную точность - это даст дополнительные прирост точности во всех случаях, правда ценой дополнительных вычислительных затрат, которые тоже неплохо было бы оценить. Добавлено через 18 минут В общем, если признаки хоть немного коррелируют с K и не являются линейными комбинациями остальных признаков, то их добавление не может привести к снижению точности аппроксимации, а только её увеличивает. В принципе, точность аппроксимации не может уменьшится даже при включении в уравнение бесполезных признаков. Если же такое всё таки наблюдается, то это скорее всего проблемы с точности вычислений. Обычно, несущественные признаки удаляют с целью повышения точности прогноза. В задачах аппроксимации этот вопрос не играет какой либо существенной роли.
0
|
|||||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
|||||||||||
| 28.08.2020, 13:28 | |||||||||||
|
Изучая реализацию метода Якоби я нашел два алгоритма реализации его. Немного переделав под себя и упростив. я получил 2 варианта:
0
|
|||||||||||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
|
| 28.08.2020, 13:32 | |
|
0
|
|
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
||
| 28.08.2020, 13:48 | ||
|
пусть результатом решения будет вектор [10 20 30 40 50 60 70 80 90] пусть в результате подгонки LASSO будет ясно, что 3 и 6 предикторы не оказывают заметного влияния на результат. тогда я их выкину (зря я их учитывал). Но чтобы опять не находить S (чтобы не собирать опять 2 миллиона наблюдений), я выкину из нее 3 и 6 столбцы и 3 и 6 строки (обнулю 3 и 4 предикторы). Получиться матрица S размером 7х7 (которая бы соответствовала той, которая получилась бы, если я заново ее находил). И я теперь могу опять решить СЛАУ, теперь уже без этих "плохих" предикторов. теперь решением будет вектор [11 21 41 51 71 81 91] Я не прав? Подскажите, пожалуйста.
0
|
||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
||||
| 28.08.2020, 14:19 | ||||
|
есть е ещё один недостаток - отсутствует проверка критерия сходимости и нет никаких специальных мер по её обеспечению Добавлено через 6 минут Добавлено через 19 минут всё остальное вроде правильно, за исключением того, что 100 итераций наверное будет недостаточно, всё таки это алгоритм с линейной сходимостью По поводу нарушения условия сходимости - единственное, что можно сделать - переставить местами строки матрицы B, а так же её столбцы, вместе со строками K и наименованиями переменных в выходном векторе, так, чтобы на диагонали находились все максимальные по модулю элементы B. Но у Вас видимо матрица итак уже приведена к такому виду. Если алгоритм не сойдётся, то она скорее всего вырождена.
0
|
||||
|
9 / 1 / 0
Регистрация: 08.09.2019
Сообщений: 343
|
|||
| 28.08.2020, 14:22 | |||
|
Но, все-таки моя идея выше состояла в том, что... Lasso не сможет работать с выборкой размером 2 млн. Просто памяти не хватит. Поэтому мне надо для Lasso дать выборку например из 100000 наблюдений. И результатом работы lasso будет решение исходя из этой маленькой выборки. Я не могу игнорировать другие 1.9 млн выборки. Но я понимаю, что скорее всего результат будет близким к истине (для полной выборке). Поэтому могу предположить, что и для полной выборке скорее всего обнулятся те же предикторы. Но поскольку решение lasso было на ограниченной выборке, чтобы получить правильный и точный результат (учитывающий все 2 млн наблюдений) мне надо удалить соответствующие столбцы и строки в матрице S и решить СЛАУ снова. Вот в чем идея.
0
|
|||
|
496 / 550 / 131
Регистрация: 31.10.2016
Сообщений: 4,410
|
||
| 28.08.2020, 14:33 | ||
|
0
|
||
| 28.08.2020, 14:33 | |
|
Как увеличить точность вычисления
Повысить точность расчетов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|