{"id":336850,"date":"2022-08-10T15:00:11","date_gmt":"2022-08-10T15:00:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=336850"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=336850","title":{"rendered":"<span>\u041a\u0430\u043a \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0431\u044b\u0442\u044c data driven \u0438\u0437-\u0437\u0430 data driften, \u0438\u043b\u0438 \u041f\u0430\u0440\u0443 \u0441\u043b\u043e\u0432 \u043e \u0434\u0440\u0435\u0439\u0444\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/46a\/35a\/03f\/46a35a03f41291dd164d0e13cd9299e9.jpg\" width=\"755\" height=\"539\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/46a\/35a\/03f\/46a35a03f41291dd164d0e13cd9299e9.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435 \u0441\u0444\u0435\u0440\u044b \u0436\u0438\u0437\u043d\u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u041c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438, \u0437\u0430\u043a\u0443\u043f\u043e\u0447\u043d\u044b\u0435 \u0446\u0435\u043d\u044b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0443\u0441\u043b\u0443\u0433 \u0438 \u0434\u0430\u0436\u0435 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u044b \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b. \u042d\u0442\u043e \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a \u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0438 \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438 \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u043c\u0438, \u0432\u0435\u0434\u044c \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0442, \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u043c\u0438, \u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432, \u043c\u043e\u0433\u0443\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0431\u0438\u0437\u043d\u0435\u0441.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u2013 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 Advanced Analytics GlowByte \u2013 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u0438\u043f\u0430\u0445 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0445 \u0434\u0440\u0435\u0439\u0444\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435:<\/strong><\/p>\n<ol>\n<li>\n<p><a href=\"#1\">\u041f\u043e \u043a\u0430\u043a\u0438\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\">\u041e \u0434\u0440\u0435\u0439\u0444\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\">\u041e\u0431\u0449\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\">\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#4.1\">Adaptive Windowing (ADWIN)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4.2\">Drift Detection Method (DDM)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4.3\">Early Drift Detection Method (EDDM)<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#5\">\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#5.1\">\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5.2\">Adversarial validation<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5.3\">Isolation Forest<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#5.3.1\">\u041e\u043f\u044b\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#6\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/a><\/p>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h3>\u041f\u043e \u043a\u0430\u043a\u0438\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438  <\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0434\u0440\u0435\u0439\u0444\u0435, \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0434\u0443\u0431\u043b\u0438,<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437-\u0437\u0430 <strong>\u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438\u043b\u0438 <strong>\u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432<\/strong>.\u00a0 \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h3>\u041e \u0434\u0440\u0435\u0439\u0444\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/h3>\n<p>\u0412 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 \u0434\u0440\u0435\u0439\u0444\u0430: <strong>\u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/strong> \u0438 <strong>\u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.<\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c <em>P(\u0425)<\/em> \u043a\u0430\u043a \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>,<br \/><em>P(y|\u0425)<\/em> \u2014 \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u0440\u0433\u0435\u0442\u043e\u0432 y \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 <em>\u0425<\/em>.<\/p>\n<p><strong>\u0414\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/strong> \u2014 \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(y|X)<\/em>, \u0442.\u0435. \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <em>y<\/em> \u043e\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>. \u041f\u0440\u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c\u0438. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u043e\u0434\u0435\u043b\u044c, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0435\u043d\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0439 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439. \u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 y \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 <em>y<\/em> \u043e\u0442 <em>X<\/em>.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0435 \u0438\u0437-\u0437\u0430 Covid: \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u0438 \u043b\u044e\u0434\u0438 \u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e, \u0441\u043f\u0440\u043e\u0441 \u043d\u0430 \u0433\u0443\u0431\u043d\u0443\u044e \u043f\u043e\u043c\u0430\u0434\u0443 \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0437\u0438\u043b\u0441\u044f, \u0430 \u0448\u0442\u0430\u043d\u043e\u0432 \u0434\u043b\u044f \u0439\u043e\u0433\u0438 \u2014 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0432\u043e\u0437\u0440\u043e\u0441 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.<\/p>\n<p><strong>\u0414\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u2014<strong> <\/strong>\u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(X)<\/em>. \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 <em>X<\/em> \u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 <em>y<\/em>. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(X)<\/em> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c <em>P(y|X)<\/em>. \u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u201c\u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0432 \u043d\u0435\u0434\u0435\u043b\u044e\u201d \u0438 \u201c\u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0447\u0435\u043a\u201d. <\/p>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0434\u0440\u0435\u0439\u0444\u0430<\/h4>\n<p>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0440\u0435\u0439\u0444 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0438 \u0435\u0433\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u044b\u0435 \u0438\u043b\u0438 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443. \u042f\u0440\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 &#8212; \u044d\u0442\u043e \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u044f Covid \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0430\u043d\u043a\u0446\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438 \u043c\u0435\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442 \u043f\u043e\u0442\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u201c\u043f\u043e\u0441\u0435\u0449\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u201d.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>\u041e\u0431\u0449\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/h2>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0434\u0440\u0435\u0439\u0444, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c 2 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 \u043d\u043e\u0432\u044b\u0439. \u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c\u0438, \u043d\u043e \u043e\u0431\u0449\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/603\/b7f\/47e\/603b7f47ef94337a11e73a45aca562b3.jpg\" width=\"960\" height=\"540\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/603\/b7f\/47e\/603b7f47ef94337a11e73a45aca562b3.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 1<\/strong>. <strong>\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430 \u043e\u043a\u043d\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0442\u0440\u0443\u0434\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043e\u0431 \u043e\u0431\u0449\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 2<\/strong>. <strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/strong> \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 3.<\/strong> <strong>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\/\u0441\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439.<\/strong> \u041e\u0446\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043b\u0438\u0431\u043e \u043e\u0446\u0435\u043d\u043a\u0443 (\u0441\u043a\u043e\u0440) \u043c\u043e\u0434\u0435\u043b\u0438, \u043b\u0438\u0431\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0442\u0435\u0441\u0442\u0430.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 4.<\/strong> <strong>\u041f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u0434\u0440\u0435\u0439\u0444\u0435.<\/strong> \u042d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438\/\u0441\u043a\u043e\u0440\u0430 \u0438\u0437 \u044d\u0442\u0430\u043f\u0430 3.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u0434\u0440\u0435\u0439\u0444\u0430<\/h3>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 2 \u0442\u0438\u043f\u0430:\u00a0<\/p>\n<ul>\n<li>\n<p>\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445<\/strong> <strong>\u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u043c\u043e\u0433\u0443\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0437\u0430 \u0440\u0430\u0437 (\u0445\u043e\u0442\u044f \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438) \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0440\u0430\u0437\u0443, \u043a\u0430\u043a \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u0440\u0435\u0437\u044b \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442 \u0438\u0445 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<br \/><\/strong>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 <strong>\u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong> \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c 3 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e 1000 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\text{data_stream}_1: \u03bc=0.8,\u03c3=0.05\\\\ \\text{data_stream}_2: \u03bc=0.4,\u03c3=0.02\\\\\\text{data_stream}_3: \u03bc=0.6,\u03c3=0.1\" alt=\"\\text{data_stream}_1: \u03bc=0.8,\u03c3=0.05\\\\ \\text{data_stream}_2: \u03bc=0.4,\u03c3=0.02\\\\\\text{data_stream}_3: \u03bc=0.6,\u03c3=0.1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/771\/39c\/420\/77139c4206a7b363a7ac643a6c361900.svg\" width=\"697\" height=\"72\"\/><\/p>\n<pre><code class=\"python\">random_state = np.random.RandomState(seed=42)  data_stream_1 = random_state.normal(0.8, 0.05, 1000) data_stream_2 = random_state.normal(0.4, 0.02, 1000) data_stream_3 = random_state.normal(0.6, 0.1, 1000)  data_stream_abrupt_drift = np.concatenate((data_stream_1, data_stream_2, data_stream_3))<\/code><\/pre>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u044f\u0434 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<br \/>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043d\u0430 3 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e 1000 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u044d\u0442\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ad3\/91a\/a1f\/ad391aa1f13523bcf6a4fe506bc248e2.png\" width=\"1195\" height=\"393\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ad3\/91a\/a1f\/ad391aa1f13523bcf6a4fe506bc248e2.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 <strong>\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong> \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u043d\u0435\u043c\u0443 \u0448\u0443\u043c.<\/p>\n<pre><code class=\"python\"># \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b y = lambda x: 1\/2*np.sin(x) x = np.linspace(-1.8, 1.5, 3000) sin_x = y(x)  # \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0448\u0443\u043c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0435 random_state = np.random.RandomState(seed=42) row = random_state.normal(0.8, 0.05, 3000) data_stream_slow_drift = row + sin_x<\/code><\/pre>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u044f\u0434 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<br \/>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043d\u0430 3 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e 1000 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u044d\u0442\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/306\/060\/60c\/30606060c14579a721e9bf82c0af42e0.png\" width=\"1199\" height=\"388\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/306\/060\/60c\/30606060c14579a721e9bf82c0af42e0.png\"\/><figcaption><\/figcaption><\/figure>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/riverml.xyz\/0.11.1\/\">River<\/a>. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<pre><code class=\"python\">def stream_drift_detecton(data_stream, drift_detector, reset_after_drift=False):     \"\"\"     \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445,      \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.          data_stream - \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445     drift_detector - \u043c\u0435\u0442\u043e\u0434 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 River     reset_after_drift - \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c drift_detector \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430,                          \u0442.\u0435. \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e \u0434\u0440\u0435\u0444\u0430 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.     \"\"\"     drift_index = []     for i, val in enumerate(data_stream):         drift_detector.update(val)          # \u041c\u0435\u0442\u043e\u0434 update \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043e\u043a\u043d\u043e, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443,          # \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u0440\u0435\u0434\u043d\u0435\u0435, \u0448\u0438\u0440\u0438\u043d\u0443 \u043e\u043a\u043d\u0430 \u0438 \u043e\u0431\u0449\u0443\u044e \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e.         if drift_detector.change_detected:             # \u0414\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u0434\u0440\u0435\u0439\u0444\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u0442\u044c \u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445             print(f'\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u0440\u0435\u0439\u0444 \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 {i}')             drift_index.append(i)             if reset_after_drift:                 # \u0421\u0431\u0440\u043e\u0441 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439                 drift_detector.reset()                  return drift_index    # \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 def final_chart_dots(data_stream, drift_index, drift_values, names, abrupt_drift=False):     fig = plt.figure(figsize=(10,5), tight_layout=True)     plt.title(names['title'])     plt.xlabel(names['xlabel'])     plt.ylabel(names['ylabel'])     plt.plot(data_stream, label=names['label'], color='silver', linewidth=1)     plt.scatter(drift_index, drift_values, color='r',                 label='\u0417\u043e\u043d\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430\/\u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438', zorder=2, s=30)     if abrupt_drift:         plt.vlines(drift_index_fact, ymin=min(data_stream), ymax=max(data_stream),                     colors='black', linestyles='dashed', lw=2,                     zorder=5, label='\u0417\u043e\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430')     plt.legend()     plt.show()<\/code><\/pre>\n<p><a class=\"anchor\" name=\"4.1\" id=\"4.1\"><\/a><\/p>\n<h3>Adaptive Windowing (ADWIN)<\/h3>\n<p><a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.144.2279&amp;rep=rep1&amp;type=pdf\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e<\/u><\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/riverml.xyz\/0.11.1\/api\/drift\/ADWIN\/\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/u><\/strong><\/a><\/p>\n<p>ADWIN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\u00a0<\/p>\n<ol>\n<li>\n<p>\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e W;<\/p>\n<\/li>\n<li>\n<p>\u043e\u043a\u043d\u043e W \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 2 \u043f\u043e\u0434\u043e\u043a\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b W0 \u0438 W1, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b W0 + W1 = W;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 W0 \u0438 W1 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c:<\/p>\n<ol>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e \u0434\u0440\u0435\u0439\u0444\u0435, \u0430 \u043f\u043e\u0434\u043e\u043a\u043d\u043e W0 \u00a0\u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u043e\u043a\u043d\u043e W \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0412\u0445\u043e\u0434:<\/strong> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p><strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/strong>:<br \/><strong><em>delta<\/em><\/strong>: float (default=0.002), delta \u0404 (0, 1).<br \/>\u0427\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u043a 1 \u2013 \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435.<\/p>\n<p><strong>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 <\/strong>\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 ADWIN \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong><\/p>\n<pre><code class=\"python\">from river.drift import ADWIN  # \u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 drift_index_adwin_a = stream_drift_detecton(data_stream_abrupt_drift,                                              ADWIN(), reset_after_drift=True) # \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430 drift_values_adwin_a = data_stream_abrupt_drift[drift_index_adwin_a]  names_adwin_a = {'title':  'ADWIN: \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445',                  'xlabel': 'Time',                  'ylabel': '\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 x',                  'label':  '\u041f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445'}  final_chart_dots(data_stream_abrupt_drift, drift_index_adwin_a,                   drift_values_adwin_a, names_adwin_a, abrupt_drift=True)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a1d\/64b\/be7\/a1d64bbe70488f849bd266ffc12f8eef.png\" width=\"1345\" height=\"649\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a1d\/64b\/be7\/a1d64bbe70488f849bd266ffc12f8eef.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, ADWIN \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0440\u0435\u0437\u043a\u0438\u0439 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 ADWIN \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong><\/p>\n<p>\u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c \u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430. \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u0441\u0440\u0430\u0437\u0443 \u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d56\/915\/bb3\/d56915bb3ac1622380a0c6d2c3c54ba9.png\" width=\"1337\" height=\"655\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d56\/915\/bb3\/d56915bb3ac1622380a0c6d2c3c54ba9.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c ADWIN \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u0442 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><a class=\"anchor\" name=\"4.2\" id=\"4.2\"><\/a><\/p>\n<h3>Drift Detection Method (DDM)<\/h3>\n<p><a href=\"https:\/\/www.revistaespacios.com\/a17v38n39\/a17v38n39p16.pdf\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e<\/u><\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/riverml.xyz\/0.11.1\/api\/drift\/DDM\/\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/u><\/strong><\/a><strong><u>.<\/u><\/strong><\/p>\n<p>DDM \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438, \u0430 \u043d\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432. \u0415\u0441\u043b\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433, \u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0435, \u043e\u0434\u043d\u0430\u043a\u043e, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u0437\u043d\u0430\u0442\u044c, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u043e\u043c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0438\u043b\u0438 \u0434\u0440\u0435\u0439\u0444\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b, \u0442\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u0443\u0434\u0438\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438. \u042d\u0442\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 EDDM, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 DDM \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0440\u043e\u0434\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u0430<strong> \u0432\u0445\u043e\u0434<\/strong> \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u043d\u0443\u043b\u0435\u0439 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446, \u0433\u0434\u0435 1\u00a0 \u2013 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0448\u0438\u0431\u043b\u0430\u0441\u044c, \u0430 0 \u2013 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"0: Correct, y = y'\\\\ 1: Correct, y \\neq y'\" alt=\"0: Correct, y = y'\\\\ 1: Correct, y \\neq y'\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7b6\/70e\/9b4\/7b670e9b4a57ab7322345f722b19deb3.svg\" width=\"697\" height=\"51\"\/><\/p>\n<p><strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/strong><br \/><strong><em>min_num_instances:<\/em><\/strong> int (default=30)<br \/>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432 \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e \u0434\u0440\u0435\u0439\u0444\u0435.<br \/><strong><em>warning_level:<\/em><\/strong> float (default=2.0)<br \/>\u041f\u043e\u0440\u043e\u0433 \u0434\u043b\u044f \u0437\u043e\u043d\u044b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0434\u0440\u0435\u0439\u0444\u0435. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.<br \/><strong><em>out_control_level:<\/em><\/strong> float (default=3.0)<br \/>\u041f\u043e\u0440\u043e\u0433 \u0434\u043b\u044f \u0437\u043e\u043d\u044b \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/p>\n<p><strong>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435<\/strong> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043e\u043d\u0443 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u043b\u0438 \u0437\u043e\u043d\u0443 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0435.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e\u0440\u043e\u0433 \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 0 \u0438\u043b\u0438 1.<\/p>\n<p>\u0414\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Prequential error (\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443). \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u0430\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 i, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"P_e(i) = \\frac {1} {i} \\displaystyle\\sum _{k=1}^{i} L(y_k, \\hat y_k) = \\frac {1} {i} \\displaystyle\\sum _{k=1}^{i} e_k\" alt=\"P_e(i) = \\frac {1} {i} \\displaystyle\\sum _{k=1}^{i} L(y_k, \\hat y_k) = \\frac {1} {i} \\displaystyle\\sum _{k=1}^{i} e_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/482\/661\/2f4\/4826612f46c866a4dec3f69e67088884.svg\" width=\"288\" height=\"60\"\/><\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a <em>P<sub>e<\/sub>(i)<\/em>, \u0433\u0434\u0435 <em>i<\/em>, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u2013 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u043d \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u0440\u043e\u0441, \u0430 \u043f\u043e\u0442\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0430\u0434\u043a\u0438\u043c. \u0420\u0435\u0437\u043a\u0438\u0439 \u0434\u0440\u0435\u0439\u0444 \u0432\u0438\u0434\u0435\u043d \u0432 \u043c\u0435\u0441\u0442\u0430\u0445 \u043f\u0435\u0440\u0435\u0433\u0438\u0431\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a \u0433\u043b\u0430\u0434\u043a\u0438\u0439, \u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0439, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0439 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><strong>\u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e DDM<\/strong><\/p>\n<pre><code class=\"python\">from river.drift import DDM  # \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.  # \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c 3 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438  # \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u0431\u0438\u043d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438. error_predictions_1 = np.random.binomial(1, 0.2, 1000) error_predictions_2 = np.random.binomial(1, 0.5, 1000) error_predictions_3 = np.random.binomial(1, 0.9, 1000) error_predictions_stream = np.concatenate((error_predictions_1, error_predictions_2,                                             error_predictions_3))  # \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c Prequential error \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430 cumsum_error = np.cumsum(error_predictions_stream) prequential_error = [] for i in range(len(cumsum_error)):     prequential_error.append( 1\/(i+1) * cumsum_error[i] )  # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c DDM \u0434\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 drift_index_ddm = stream_drift_detecton(error_predictions_stream, DDM())  # \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u0435\u0442\u043e\u0434\u0430: drift_values_ddm = np.array(prequential_error)[drift_index_ddm] names_DDM_a = {'title':  'DDM: \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445',                'xlabel': 'Time',                'ylabel': 'Prequential error',                'label':  'Prequential error'}  final_chart_dots(prequential_error, drift_index_ddm, drift_values_ddm,                   names_DDM_a, abrupt_drift=True)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c47\/92b\/ed2\/c4792bed201acc0df1f7826278501241.png\" width=\"1575\" height=\"770\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c47\/92b\/ed2\/c4792bed201acc0df1f7826278501241.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, DDM \u0432\u044b\u044f\u0432\u0438\u043b \u0440\u0435\u0437\u043a\u0438\u0439 \u0434\u0440\u0435\u0439\u0444, \u043d\u043e \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 DDM, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0435\u0442 \u0434\u0440\u0435\u0439\u0444 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u043e \u043f\u043e\u043a\u0430 \u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c DDM \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e DDM<\/strong><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u0431\u0438\u043d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c, \u0433\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 200 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0.1.<\/p>\n<pre><code class=\"python\"># \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.  # \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u0431\u0438\u043d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c,  # \u0433\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 200 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0.1. l=[] for p in np.arange(0.1, 1.1, 0.1):     l.extend(np.random.binomial(1, p, 200)) error_predictions_slow = np.array(l)<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c DDM \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c (\u043a\u043e\u0434 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0432 \u0431\u043b\u043e\u043a\u0435 \u0441 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0435\u0439 \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/42b\/6c5\/821\/42b6c5821c37d803d70460311a78b5f8.png\" width=\"1346\" height=\"650\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/42b\/6c5\/821\/42b6c5821c37d803d70460311a78b5f8.png\"\/><figcaption><\/figcaption><\/figure>\n<p>DDM \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u044f\u0432\u043b\u044f\u0435\u0442 \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0439 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><a class=\"anchor\" name=\"4.3\" id=\"4.3\"><\/a><\/p>\n<h3>Early Drift Detection Method (EDDM)<\/h3>\n<p><a href=\"https:\/\/www.cs.upc.edu\/~abifet\/EDDM.pdf\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e<\/u><\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/riverml.xyz\/0.11.1\/api\/drift\/EDDM\/\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/u><\/strong><\/a><\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a\u0430\u043a \u0438 DDM, \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043e\u0448\u0438\u0431\u043e\u043a, \u0434\u0430\u0451\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043e\u0448\u0438\u0431\u043e\u043a, EDDM \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438.<\/p>\n<p><strong>\u041d\u0430 \u0432\u0445\u043e\u0434<\/strong> EDDM, \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u043b\u044f DDM, \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0440\u043e\u0434\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0433\u0434\u0435 1\u00a0 \u2013 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0448\u0438\u0431\u043b\u0430\u0441\u044c, \u0430 0 \u2013 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442.<\/p>\n<p><strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/strong><br \/><strong><em>min_num_instances:<\/em><\/strong> int (default=30)<br \/>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432 \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e \u0434\u0440\u0435\u0439\u0444\u0435.<br \/><strong><em>warning_level:<\/em><\/strong> float (default=2.0)<br \/>\u041f\u043e\u0440\u043e\u0433 \u0434\u043b\u044f \u0437\u043e\u043d\u044b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0434\u0440\u0435\u0439\u0444\u0435. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.<br \/><strong><em>out_control_level:<\/em><\/strong> float (default=3.0)<br \/>\u041f\u043e\u0440\u043e\u0433 \u0434\u043b\u044f \u0437\u043e\u043d\u044b \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/p>\n<p><strong>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435<\/strong> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043e\u043d\u0443 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u043b\u0438 \u0437\u043e\u043d\u0443 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0435.<\/p>\n<p><strong>\u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e EDDM<\/strong><\/p>\n<p>\u041a\u043e\u0434 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u043a\u043e\u0434\u0443 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043f\u0440\u043e DDM, \u0442\u043e\u043b\u044c\u043a\u043e <code>drift_detector<\/code> \u0431\u0443\u0434\u0435\u0442 <code>EDDM()<\/code>. \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u0441\u0440\u0430\u0437\u0443 \u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa2\/2e1\/aee\/fa22e1aeed19a807fffd6e9aabdb1f29.png\" width=\"1354\" height=\"646\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa2\/2e1\/aee\/fa22e1aeed19a807fffd6e9aabdb1f29.png\"\/><figcaption><\/figcaption><\/figure>\n<p><strong>\u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e EDDM<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/89f\/83a\/2d5\/89f83a2d5e0186d78b8a63abd259972c.png\" width=\"1342\" height=\"647\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/89f\/83a\/2d5\/89f83a2d5e0186d78b8a63abd259972c.png\"\/><figcaption><\/figcaption><\/figure>\n<p>EDDM \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c \u0438 \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 DDM.\u00a0<\/p>\n<p>\u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/riverml.xyz\/0.11.1\/\"><u>River<\/u><\/a>.<\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p><a class=\"anchor\" name=\"5.1\" id=\"5.1\"><\/a><\/p>\n<h3>\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.\u00a0<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u043c\u0435\u0442\u043a\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043e\u043d\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0435\u0449\u0451 \u0434\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0445\u0443\u0434\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u0412\u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<\/p>\n<p><strong>Kolmogorov-Smirnov Test \u0438\u043b\u0438 KS Test<\/strong><\/p>\n<p>\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439 KS \u2014 \u044d\u0442\u043e \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0445\/\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043b\u0438 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0432\u044b\u0431\u043e\u0440\u043e\u043a.<\/p>\n<pre><code class=\"python\">from scipy import stats  def ks_test(old_data, new_data, p_value=0.05):     test = stats.ks_2samp(old_data, new_data)     if test[1] &lt; p_value:         print('\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b')     else:         print('\u0412 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432')     return test<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/308\/e54\/20e\/308e5420e3aa46b815f24bd6115d87a1.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b KS test\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b KS test\" width=\"1220\" height=\"445\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/308\/e54\/20e\/308e5420e3aa46b815f24bd6115d87a1.png\"\/><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b KS test<\/figcaption><\/figure>\n<p><strong>Population Stability Index<\/strong><\/p>\n<p>PSI \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u0430\u043a \u0434\u043b\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442.\u0435. PSI \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 <em>A<\/em> \u0438 <em>B<\/em> \u043d\u0435 \u0440\u0430\u0432\u0435\u043d PSI<em> B<\/em> \u0438 <em>A<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"PSI = \\sum \\Big( (\\text %Actual - \\text %Ecpected)* ln \\frac {\\text %Actual}{\\text %Ecpected} \\Big)\" alt=\"PSI = \\sum \\Big( (\\text %Actual - \\text %Ecpected)* ln \\frac {\\text %Actual}{\\text %Ecpected} \\Big)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cd0\/d9d\/f4e\/cd0d9df4ea7729e62590a418efc09ba4.svg\" width=\"452\" height=\"48\"\/><\/p>\n<p>\u0428\u0430\u0433\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 PSI:<\/p>\n<ol>\n<li>\n<p>\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e,<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0431\u0430\u043a\u0435\u0442\u044b (\u043b\u0443\u0447\u0448\u0435 \u043d\u0430 10 \u0438\u043b\u0438 20),<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0431\u0430\u043a\u0435\u0442\u0435 (<em>%Expected<\/em>),<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0431\u0430\u043a\u0435\u0442\u0435 (<em>%Actual<\/em>),<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 PSI \u043f\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0435,<\/p>\n<\/li>\n<li>\n<p>b\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0435:<\/p>\n<ol>\n<li>\n<p>PSI &lt;= 0,1: \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432,<\/p>\n<\/li>\n<li>\n<p>0,1 &lt; PSI &lt; 0,2: \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0441\u0434\u0432\u0438\u0433,<\/p>\n<\/li>\n<li>\n<p>PSI > 0,2: \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u043e\u0438\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">def calculate_psi(old_data, new_data, buckets=10, axis=0):     # \u0420\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0431\u0430\u043a\u0435\u0442\u044b     breakpoints = np.arange(0, buckets + 1) \/ (buckets) * 100     breakpoints += -(np.min(breakpoints))     breakpoints \/= np.max(breakpoints) \/ (np.max(old_data) - np.min(old_data))     breakpoints += np.min(old_data)      # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0431\u0430\u043a\u0435\u0442\u0435     old_percents = np.histogram(old_data, breakpoints)[0] \/ len(old_data)     # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0431\u0430\u043a\u0435\u0442\u0435     new_percents = np.histogram(new_data, breakpoints)[0] \/ len(new_data)      # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 PSI     def sub_psi(old_perc, new_perc):         if new_perc == 0:             new_perc = 0.0001         if old_perc == 0:             old_perc = 0.0001         value = (old_perc - new_perc) * np.log(old_perc \/ new_perc)         return(value)      psi_value = np.sum(sub_psi(old_percents[i], new_percents[i])                         for i in range(0, len(old_percents)))              # \u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b     if psi_value &lt;= 0.1:         print('\u0412 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0441\u0434\u0432\u0438\u0433\u043e\u0432')     elif psi_value > 0.2 :         print('\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f')     else:         print('\u0412 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0441\u0434\u0432\u0438\u0433')          return(psi_value)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/417\/c6c\/269\/417c6c269f3574a5db612023d6380421.png\" width=\"1232\" height=\"429\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/417\/c6c\/269\/417c6c269f3574a5db612023d6380421.png\"\/><figcaption><\/figcaption><\/figure>\n<p><strong>Kullback-Leiber \u0438\u043b\u0438 KL Divergence<\/strong><\/p>\n<p>\u0414\u0438\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u044f KL \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439. \u041e\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043a\u0430\u043a \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f.\u00a0\u0414\u0438\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u044f KL \u043f\u043e\u043b\u0435\u0437\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e \u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c. \u041e\u0446\u0435\u043d\u043a\u0430 KL \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 0 \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438, \u0433\u0434\u0435 \u043e\u0446\u0435\u043d\u043a\u0430 0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0432\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b.<\/p>\n<p><strong>Jenson-Shannon \u0438\u043b\u0438 JS Divergence<\/strong><\/p>\n<p>\u0414\u0438\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u044f JS \u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439. \u041e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 KL \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0439. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0446\u0435\u043d\u043a\u0443 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f JS \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438 \u043b\u0451\u0433\u043a\u043e\u0439 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0446\u0435\u043d\u043a\u0438 \u043e\u0442 0 (\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f) \u0434\u043e 1 (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f) \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0431\u0430\u0437\u044b 2. \u0421 JS \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u043d\u043e\u043b\u044c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u043e\u043b\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0433\u0438\u043e\u043d\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c.<\/p>\n<p><strong>Wasserstein Metric \u0438\u043b\u0438 Earth Mover Distance<\/strong><\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0437\u0435\u043c\u043b\u0435\u0440\u043e\u0439\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u00ab\u0440\u0430\u0431\u043e\u0442\u044b\u00bb, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0435, \u0433\u0434\u0435 \u00ab\u0440\u0430\u0431\u043e\u0442\u0430\u00bb \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0441\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c.<\/p>\n<h3>\u041c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/h3>\n<p><a class=\"anchor\" name=\"5.2\" id=\"5.2\"><\/a><\/p>\n<h4>Adversarial validation<\/h4>\n<p>\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0435\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\u00a0\u0415\u0441\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u0442\u0440\u0443\u0434\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0435\u0442.\u00a0\u0415\u0441\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0440\u0435\u0439\u0444 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p>Adversarial validation \u043f\u043e \u0448\u0430\u0433\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u043c \u0442\u0430\u0440\u0433\u0435\u0442\u043e\u043c 1, \u0430 \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; \u0442\u0430\u0440\u0433\u0435\u0442\u043e\u043c 0,<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445,<\/p>\n<\/li>\n<li>\n<p>\u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0434\u0435\u043b\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ROC-AUC),<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443, \u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e feature_importance \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0437\u0430 \u0441\u0447\u0451\u0442 \u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043d\u043e\u0432\u044b\u0445. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0441\u0434\u0432\u0438\u0433.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430<\/strong><\/p>\n<pre><code class=\"python\">from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import StratifiedKFold, cross_val_score  # \u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438: # \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u043c \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c: data_stable_1 = random_state.normal(0.5, 0.05, 1000) data_stable_2 = random_state.normal(0.5, 0.05, 1000)  df_old = pd.DataFrame({'feat1': data_stream_1, 'feat2': data_stable_1, 'target': 1}) df_new = pd.DataFrame({'feat1': data_stream_2, 'feat2': data_stable_2, 'target': 0}) df_abrupt_drift = pd.concat([df_old, df_new]).reset_index(drop=True)  # \u041e\u0431\u0443\u0447\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e: model = RandomForestClassifier(n_estimators=100, n_jobs=4, random_state=17) skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=17) adv_validation_scores = cross_val_score(model,                                          df_abrupt_drift[['feat1', 'feat2']],                                          df_abrupt_drift['target'],                                          cv=skf,                                          n_jobs=4,                                         scoring='roc_auc') model.fit( df_abrupt_drift[['feat1', 'feat2']], df_abrupt_drift['target'] )<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043e\u0446\u0435\u043d\u043a\u0443 ROC-AUC \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f87\/574\/a5a\/f87574a5a88b1c22708f1d6039de2251.png\" width=\"1090\" height=\"248\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f87\/574\/a5a\/f87574a5a88b1c22708f1d6039de2251.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043d\u0430\u0431\u043e\u0440\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430 \u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0441 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p><strong>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430:<\/strong><\/p>\n<pre><code class=\"python\"># \u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438: # \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u043c \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c: df_old = pd.DataFrame({'feat1': data_stream_slow_drift[:1000], 'feat2': data_stable_1, 'target': 1}) df_new = pd.DataFrame({'feat1': data_stream_slow_drift[1000:2000], 'feat2': data_stable_2, 'target': 0}) df_slow_drift = pd.concat([df_old, df_new]).reset_index(drop=True)  # \u041e\u0431\u0443\u0447\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e model = RandomForestClassifier(n_estimators=100, n_jobs=4, random_state=17) skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=17) adv_validation_scores_slow = cross_val_score(model, df_slow_drift[['feat1', 'feat2']],                                          df_slow_drift['target'], cv=skf, n_jobs=4,                                         scoring='roc_auc') model.fit(df_slow_drift[['feat1', 'feat2']], df_slow_drift['target'])<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043e\u0446\u0435\u043d\u043a\u0443 ROC-AUC \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/856\/6af\/dc1\/8566afdc1a023ddf14e147e49f61d02a.png\" width=\"1165\" height=\"252\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/856\/6af\/dc1\/8566afdc1a023ddf14e147e49f61d02a.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043d\u0430\u0431\u043e\u0440\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430 \u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0441 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\u00a0<\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0438 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u043c.<\/p>\n<p><a class=\"anchor\" name=\"5.3\" id=\"5.3\"><\/a><\/p>\n<h4>Isolation Forest<\/h4>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439. \u0427\u0430\u0441\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f Isolation Forest. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>IsolationForest \u2013 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0443\u0447\u0438\u0442\u0435\u043b\u044f. \u041e\u043d \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u044c\u044f\u0445 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b-\u0432\u044b\u0431\u0440\u043e\u0441\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0435, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0422\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0431\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u0440\u043d\u044f\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432. \u0427\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043a \u043a\u043e\u0440\u043d\u044e, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0430\u043d\u043e\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043a \u0448\u0443\u043c\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u044f\u043c\u043e\u0435 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e \u0434\u0430\u0451\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0445\u0443\u0436\u0435, \u0447\u0435\u043c \u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438.<\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 IsolationForest \u043d\u0430 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0435 N \u0434\u043d\u0435\u0439. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044e \u0434\u0440\u0435\u0439\u0444\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0435\u0437\u043a\u043e, \u0441\u043a\u0430\u0447\u043a\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e. \u041e\u043d \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0441\u0435\u0431\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0433\u043b\u0430\u0434\u0438\u0442\u044c \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e \u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041c\u0435\u0442\u043e\u0434 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u043a\u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445 \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<pre><code class=\"python\">from sklearn.ensemble import IsolationForest from sklearn.preprocessing import MinMaxScaler  # \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 ds_abr = data_stream_abrupt_drift.reshape([-1,1])  # \u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439: n_agg = 20 data = ds_abr  mean_agg = [] std_agg  = [] max_agg  = [] min_agg  = [] agg_25   = [] agg_50   = [] agg_75   = []  i1 = 0 i2 = i1 + n_agg  while i2 &lt; len(data):     mean_agg.append( data[i1:i2].mean() )     std_agg.append( data[i1:i2].std() )     min_agg.append( data[i1:i2].min() )     max_agg.append( data[i1:i2].max() )     agg_25.append( np.quantile(data[i1:i2], 0.25) )     agg_50.append( np.quantile(data[i1:i2], 0.5) )     agg_75.append( np.quantile(data[i1:i2], 0.75) )      i1 = i2     i2 = i1 + n_agg  arr = [mean_agg, std_agg, min_agg, max_agg, agg_25, agg_50, agg_75] data_agg = np.array(arr).T  # \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 IsolationForest \u043d\u0430 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 pred_data_agg = [] window_size = 30  for i in range( len(data_agg) - window_size ):     # \u041e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043e\u043a\u043d\u0435     model  = IsolationForest(random_state=0).fit(data_agg[i: i + window_size])     # \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f     preds = list(model.decision_function(data_agg[i + window_size].reshape([1, -1])))     pred_data_agg = pred_data_agg + preds<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f3\/c26\/802\/2f3c26802548a38025bfd03895d52056.png\" alt=\"\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438\/\u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\" title=\"\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438\/\u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\" width=\"999\" height=\"454\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f3\/c26\/802\/2f3c26802548a38025bfd03895d52056.png\"\/><figcaption>\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438\/\u0434\u0440\u0435\u0439\u0444\u0430 \u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/figcaption><\/figure>\n<pre><code class=\"python\"># \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u043f\u043e\u0440\u043e\u0433 \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0437\u043e\u043d\u044b \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0442\u0430\u043a,  # \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 5 \u0442\u043e\u0447\u0435\u043a \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 (\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439) \u043e\u0446\u0435\u043d\u043a\u043e\u0439 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 threshold = np.quantile(pred_data, q = 5\/len(pred_data_agg))  # \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438, \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u0432 volume vol = np.array([0 if pred >= threshold else pred for pred in pred_data_agg]) volume = -vol[vol&lt;0].reshape(-1, 1)  # \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0434\u0440\u0435\u0439\u0444\u0430 outlier_index = where(vol&lt;0)  # \u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c,  # \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0435\u0439\u0444 \u043d\u0430 \u043f\u043e\u043b\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445,  # \u0430 \u043d\u0435 \u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445\/\u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 index_calculation = lambda t: (t + window_size + 1) * n_agg outlier_index_full = [index_calculation(x) for x in outlier_index][0] # \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0434\u0435 \u0432\u044b\u044f\u0432\u043b\u0435\u043d \u0434\u0440\u0435\u0439\u0444 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u0438 y \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435) values = ds_abr[outlier_index_full].reshape(1, -1)[0]  # \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0442\u043e\u0447\u043a\u0438 \u0434\u0440\u0435\u0439\u0444\u0430  # \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438, # \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c MinMaxScaler scaler = MinMaxScaler(feature_range=(min(volume), 1)) scaler = scaler.fit(volume) normalized_volume = scaler.transform(volume)  # \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430 fig = plt.figure(figsize=(10,5), tight_layout=True) plt.title('Isolation Forest \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u043c \u043e\u043a\u043d\u043e\u043c \u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u0445 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445') plt.xlabel('Time') plt.ylabel('\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 x') plt.plot(ds_abr, label='\u041f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445', color='silver', linewidth=1) for index, x in enumerate(outlier_index_full):     plt.scatter(x = x, y = values[index], c = 'red', alpha = normalized_volume[index], s=normalized_volume[index]*100, zorder=2,                label='\u0417\u043e\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430' if index == 0 else None) plt.vlines(drift_index_fact, ymin=min(ds_abr), ymax=max(ds_abr),             colors='black', linestyles='dashed', lw=2, zorder=5, label='\u0417\u043e\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430') plt.legend() plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e36\/183\/f27\/e36183f271b0de8ad71f85152258859b.png\" width=\"1346\" height=\"646\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e36\/183\/f27\/e36183f271b0de8ad71f85152258859b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><a class=\"anchor\" name=\"5.3.1\" id=\"5.3.1\"><\/a><\/p>\n<h4>\u041e\u043f\u044b\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store<\/h4>\n<p>\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u0432 Feature Store, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/glowbyte\/blog\/581458\/\"><u>\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/u><\/a>. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0444\u0438\u0447\u0430\u043c\u0438, \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439.\u00a0<\/p>\n<p>\u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0438\u0447\u0435\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0433\u043e \u0443 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0435, \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u0435 \u0444\u0438\u0447\u0438, \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0435\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043c\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 Isolation Forest, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c, \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0444\u0438\u0447\u0435\u0439. \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u043d\u0430\u043c \u043e\u0442\u044b\u0441\u043a\u0430\u0442\u044c \u0444\u0438\u0447\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0434\u0440\u0435\u0439\u0444, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e \u043e\u0431\u044a\u0435\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0433\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435:<\/p>\n<ol>\n<li>\n<p>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u0432\u0441\u0435\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0431\u0430\u0437\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0435, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435, \u043a\u0432\u0430\u043d\u0442\u0438\u043b\u0438, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u0442. \u0434., \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f\u00a0 \u0435\u0433\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0443\u0447\u0438\u043b\u0438 Isolation Forest \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430\u0445 \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0435 N \u0434\u043d\u0435\u0439 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0443;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<\/ol>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/cdb\/da4\/04f\/cdbda404fc6cd5636486ac6cb7f24b59.jpeg\" alt=\"\u0421\u0445\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store\" title=\"\u0421\u0445\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store\" width=\"960\" height=\"540\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cdb\/da4\/04f\/cdbda404fc6cd5636486ac6cb7f24b59.jpeg\" data-blurred=\"true\"\/><figcaption>\u0421\u0445\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store<\/figcaption><\/figure>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h2>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/h2>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ADWIN \u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445, DDM \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 Feature store, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 \u0434\u0440\u0435\u0439\u0444, \u0438\u043b\u0438 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Adversarial validation.<\/p>\n<p>\u041a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432, \u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u044d\u0442\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u0431\u044b\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u043c\u0438, \u0437\u043d\u0430\u0447\u0438\u0442, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c.<\/p>\n<p>\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h2>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/h2>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043d\u0430 \u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441 <strong>\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0447\u0438\u043d\u044b<\/strong>.<\/p>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0434\u0440\u0435\u0439\u0444<\/h4>\n<p><strong>1. \u041e\u0442\u043a\u0430\u043b\u0438\u0431\u0440\u0443\u0439\u0442\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0438\u043b\u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c<\/strong>. \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0445 \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0441\u0440\u0435\u0434\u043d\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.\u00a0\u042d\u0442\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u0431\u043e\u0440\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\u00a0\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u044d\u0442\u0438 \u043f\u043e\u0442\u0435\u0440\u0438 \u043d\u0438\u0436\u0435, \u0447\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0438\u0437-\u0437\u0430 \u0434\u0440\u0435\u0439\u0444\u0430, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0438\u043b\u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438, \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0438\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c<\/strong>. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0438 \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c<\/strong>.\u00a0\u041f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0438\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0443\u0447\u0438\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.\u00a0\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u0435\u0441, \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0446\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f<\/strong>.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u0441\u044c \u0441 \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u043e\u0442 \u00ab\u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e\u00bb \u043a \u00ab\u043d\u0438\u0437\u043a\u043e\u043c\u0443\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p><strong>2. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u0441 ML<\/strong>.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <strong>\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435 \u043f\u043e\u0432\u0435\u0440\u0445 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443,<\/strong> \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u043d\u043e-\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439, \u0441\u0443\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u043b\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439.<\/p>\n<p><strong>3. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0439\u0442\u0435<\/strong> \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0443 \u0436\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c.\u00a0\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u043a \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u0434\u0440\u0435\u0439\u0444 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0434\u0440\u0435\u0439\u0444\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u043c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f\u043c \u0441\u043c\u044f\u0433\u0447\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439.<\/p>\n<p>\u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043a\u0443\u0434\u0430 \u043b\u0435\u0433\u0447\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u0440\u043e \u0434\u0440\u0435\u0439\u0444, Feature Store \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f ML \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043c\u044b \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043e\u0431\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 NoML:<\/p>\n<p><a href=\"https:\/\/t.me\/noml_digest\"><strong><u>\u041a\u0430\u043d\u0430\u043b \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439<\/u><\/strong><\/a><\/p>\n<p><a href=\"https:\/\/t.me\/noml_community\"><strong><u>\u0427\u0430\u0442<\/u><\/strong><\/a><\/p>\n<p><a href=\"https:\/\/youtu.be\/LuBPN2KtCKQ\"><strong><u>\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u043c\u0438\u043d\u0430\u0440\u0430 \u043f\u043e \u0414\u0440\u0435\u0439\u0444\u0443 \u0434\u0430\u043d\u043d\u044b\u0445<\/u><\/strong><\/a><\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>\u041d\u0430\u0434 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438:\u00a0<a href=\"https:\/\/anna-mur\/\">\u0410\u043d\u043d\u0430 \u041c\u0443\u0440\u0430\u0432\u044c\u0435\u0432\u0430<\/a>,\u00a0<a href=\"https:\/\/avkosov\/\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041a\u043e\u0441\u043e\u0432<\/a>,\u00a0<a href=\"https:\/\/lazarev_adrian\/\">\u0410\u0434\u0440\u0438\u0430\u043d \u041b\u0430\u0437\u0430\u0440\u0435\u0432<\/a><\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0433\u0438\u0442: <a href=\"https:\/\/github.com\/Anna-Mur\/Data_drift_detection\">https:\/\/github.com\/Anna-Mur\/Data_drift_detection<\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/glowbyte\/blog\/681772\/\"> https:\/\/habr.com\/ru\/company\/glowbyte\/blog\/681772\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435 \u0441\u0444\u0435\u0440\u044b \u0436\u0438\u0437\u043d\u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u041c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438, \u0437\u0430\u043a\u0443\u043f\u043e\u0447\u043d\u044b\u0435 \u0446\u0435\u043d\u044b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0443\u0441\u043b\u0443\u0433 \u0438 \u0434\u0430\u0436\u0435 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u044b \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b. \u042d\u0442\u043e \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a \u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0438 \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438 \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u043c\u0438, \u0432\u0435\u0434\u044c \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0435\u0439\u0444\u0443\u044e\u0442, \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u043c\u0438, \u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432, \u043c\u043e\u0433\u0443\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0431\u0438\u0437\u043d\u0435\u0441.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u2013 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 Advanced Analytics GlowByte \u2013 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u0438\u043f\u0430\u0445 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0445 \u0434\u0440\u0435\u0439\u0444\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435:<\/strong><\/p>\n<ol>\n<li>\n<p><a href=\"#1\">\u041f\u043e \u043a\u0430\u043a\u0438\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\">\u041e \u0434\u0440\u0435\u0439\u0444\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\">\u041e\u0431\u0449\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\">\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#4.1\">Adaptive Windowing (ADWIN)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4.2\">Drift Detection Method (DDM)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4.3\">Early Drift Detection Method (EDDM)<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#5\">\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#5.1\">\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5.2\">Adversarial validation<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5.3\">Isolation Forest<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#5.3.1\">\u041e\u043f\u044b\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Isolation Forest \u0432 Feature Store<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#6\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/a><\/p>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h3>\u041f\u043e \u043a\u0430\u043a\u0438\u043c \u0435\u0449\u0451 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438  <\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0434\u0440\u0435\u0439\u0444\u0435, \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0434\u0443\u0431\u043b\u0438,<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437-\u0437\u0430 <strong>\u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438\u043b\u0438 <strong>\u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432<\/strong>.\u00a0 \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h3>\u041e \u0434\u0440\u0435\u0439\u0444\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/h3>\n<p>\u0412 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 \u0434\u0440\u0435\u0439\u0444\u0430: <strong>\u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/strong> \u0438 <strong>\u0434\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.<\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c <em>P(\u0425)<\/em> \u043a\u0430\u043a \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>,<br \/><em>P(y|\u0425)<\/em> \u2014 \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u0440\u0433\u0435\u0442\u043e\u0432 y \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 <em>\u0425<\/em>.<\/p>\n<p><strong>\u0414\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/strong> \u2014 \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(y|X)<\/em>, \u0442.\u0435. \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <em>y<\/em> \u043e\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>. \u041f\u0440\u0438 \u0434\u0440\u0435\u0439\u0444\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c\u0438. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0434\u0440\u0435\u0439\u0444 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u043e\u0434\u0435\u043b\u044c, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0435\u043d\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0439 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439. \u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 y \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 <em>y<\/em> \u043e\u0442 <em>X<\/em>.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0435 \u0438\u0437-\u0437\u0430 Covid: \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u0438 \u043b\u044e\u0434\u0438 \u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e, \u0441\u043f\u0440\u043e\u0441 \u043d\u0430 \u0433\u0443\u0431\u043d\u0443\u044e \u043f\u043e\u043c\u0430\u0434\u0443 \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0437\u0438\u043b\u0441\u044f, \u0430 \u0448\u0442\u0430\u043d\u043e\u0432 \u0434\u043b\u044f \u0439\u043e\u0433\u0438 \u2014 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0432\u043e\u0437\u0440\u043e\u0441 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.<\/p>\n<p><strong>\u0414\u0440\u0435\u0439\u0444 \u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u2014<strong> <\/strong>\u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(X)<\/em>. \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 <em>X<\/em> \u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 <em>y<\/em>. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <em>P(X)<\/em> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c <em>P(y|X)<\/em>. \u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 <em>X<\/em>.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u201c\u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0432 \u043d\u0435\u0434\u0435\u043b\u044e\u201d \u0438 \u201c\u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0447\u0435\u043a\u201d. <\/p>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0434\u0440\u0435\u0439\u0444\u0430<\/h4>\n<p>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0440\u0435\u0439\u0444 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0438 \u0435\u0433\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u044b\u0435 \u0438\u043b\u0438 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443. \u042f\u0440\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 &#8212; \u044d\u0442\u043e \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u044f Covid \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0430\u043d\u043a\u0446\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438 \u043c\u0435\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442 \u043f\u043e\u0442\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0440\u0435\u0437\u043a\u043e\u043c\u0443 \u0434\u0440\u0435\u0439\u0444\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u201c\u043f\u043e\u0441\u0435\u0449\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u201d.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>\u041e\u0431\u0449\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430<\/h2>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0434\u0440\u0435\u0439\u0444, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c 2 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 \u043d\u043e\u0432\u044b\u0439. \u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c\u0438, \u043d\u043e \u043e\u0431\u0449\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 1<\/strong>. <strong>\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430 \u043e\u043a\u043d\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0442\u0440\u0443\u0434\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043e\u0431 \u043e\u0431\u0449\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 2<\/strong>. <strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/strong> \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0435\u0439\u0444.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 3.<\/strong> <strong>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\/\u0441\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439.<\/strong> \u041e\u0446\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043b\u0438\u0431\u043e \u043e\u0446\u0435\u043d\u043a\u0443 (\u0441\u043a\u043e\u0440) \u043c\u043e\u0434\u0435\u043b\u0438, \u043b\u0438\u0431\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0442\u0435\u0441\u0442\u0430.<\/p>\n<p><strong>\u042d\u0442\u0430\u043f 4.<\/strong> <strong>\u041f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u0434\u0440\u0435\u0439\u0444\u0435.<\/strong> \u042d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438\/\u0441\u043a\u043e\u0440\u0430 \u0438\u0437 \u044d\u0442\u0430\u043f\u0430 3.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u0434\u0440\u0435\u0439\u0444\u0430<\/h3>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 2 \u0442\u0438\u043f\u0430:\u00a0<\/p>\n<ul>\n<li>\n<p>\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445<\/strong> <strong>\u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u043c\u043e\u0433\u0443\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0437\u0430 \u0440\u0430\u0437 (\u0445\u043e\u0442\u044f \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438) \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0434\u0440\u0435\u0439\u0444\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0440\u0430\u0437\u0443, \u043a\u0430\u043a \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u0440\u0435\u0437\u044b \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442 \u0438\u0445 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 <\/strong>\u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<br \/><\/strong>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 <strong>\u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong> \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c 3 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e 1000 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c:<\/p>\n<pre><code class=\"python\">random_state = np.random.RandomState(seed=42)  data_stream_1 = random_state.normal(0.8, 0.05, 1000) data_stream_2 = random_state.normal(0.4, 0.02, 1000) data_stream_3 = random_state.normal(0.6, 0.1, 1000)  data_stream_abrupt_drift = np.concatenate((data_stream_1, data_stream_2, data_stream_3))<\/code><\/pre>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u044f\u0434 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<br \/>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043d\u0430 3 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e 1000 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u044d\u0442\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 <strong>\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong> \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u043d\u0435\u043c\u0443 \u0448\u0443\u043c.<\/p>\n<pre><code class=\"python\"># \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u044b y = lambda x: 1\/2*np.sin(x) x = np.linspace(-1.8, 1.5, 3000) sin_x = y(x)  # \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0448\u0443\u043c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u043a \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0435 random_state = np.random.RandomState(seed=42) row = random_state.normal(0.8, 0.05, 3000) data_stream_slow_drift = row + sin_x<\/code><\/pre>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u044f\u0434 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c.<br \/>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u0442\u043e\u043a \u043d\u0430 3 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e 1000 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u044d\u0442\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/riverml.xyz\/0.11.1\/\">River<\/a>. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<pre><code class=\"python\">def stream_drift_detecton(data_stream, drift_detector, reset_after_drift=False):     \"\"\"     \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445,      \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.          data_stream - \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445     drift_detector - \u043c\u0435\u0442\u043e\u0434 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 River     reset_after_drift - \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c drift_detector \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430,                          \u0442.\u0435. \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e \u0434\u0440\u0435\u0444\u0430 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.     \"\"\"     drift_index = []     for i, val in enumerate(data_stream):         drift_detector.update(val)          # \u041c\u0435\u0442\u043e\u0434 update \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043e\u043a\u043d\u043e, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443,          # \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u0440\u0435\u0434\u043d\u0435\u0435, \u0448\u0438\u0440\u0438\u043d\u0443 \u043e\u043a\u043d\u0430 \u0438 \u043e\u0431\u0449\u0443\u044e \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e.         if drift_detector.change_detected:             # \u0414\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u0434\u0440\u0435\u0439\u0444\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u0442\u044c \u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445             print(f'\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u0440\u0435\u0439\u0444 \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 {i}')             drift_index.append(i)             if reset_after_drift:                 # \u0421\u0431\u0440\u043e\u0441 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439                 drift_detector.reset()                  return drift_index    # \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430 \u0441 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 def final_chart_dots(data_stream, drift_index, drift_values, names, abrupt_drift=False):     fig = plt.figure(figsize=(10,5), tight_layout=True)     plt.title(names['title'])     plt.xlabel(names['xlabel'])     plt.ylabel(names['ylabel'])     plt.plot(data_stream, label=names['label'], color='silver', linewidth=1)     plt.scatter(drift_index, drift_values, color='r',                 label='\u0417\u043e\u043d\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0434\u0440\u0435\u0439\u0444\u0430\/\u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438', zorder=2, s=30)     if abrupt_drift:         plt.vlines(drift_index_fact, ymin=min(data_stream), ymax=max(data_stream),                     colors='black', linestyles='dashed', lw=2,                     zorder=5, label='\u0417\u043e\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430')     plt.legend()     plt.show()<\/code><\/pre>\n<p><a class=\"anchor\" name=\"4.1\" id=\"4.1\"><\/a><\/p>\n<h3>Adaptive Windowing (ADWIN)<\/h3>\n<p><a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.144.2279&amp;rep=rep1&amp;type=pdf\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e<\/u><\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/riverml.xyz\/0.11.1\/api\/drift\/ADWIN\/\"><strong><u>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/u><\/strong><\/a><\/p>\n<p>ADWIN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\u00a0<\/p>\n<ol>\n<li>\n<p>\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e W;<\/p>\n<\/li>\n<li>\n<p>\u043e\u043a\u043d\u043e W \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 2 \u043f\u043e\u0434\u043e\u043a\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b W0 \u0438 W1, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b W0 + W1 = W;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 W0 \u0438 W1 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c:<\/p>\n<ol>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0434\u0440\u0435\u0439\u0444 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e \u0434\u0440\u0435\u0439\u0444\u0435, \u0430 \u043f\u043e\u0434\u043e\u043a\u043d\u043e W0 \u00a0\u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u043e\u043a\u043d\u043e W \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0412\u0445\u043e\u0434:<\/strong> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p><strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/strong>:<br \/><strong><em>delta<\/em><\/strong>: float (default=0.002), delta \u0404 (0, 1).<br \/>\u0427\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u043a 1 \u2013 \u0442\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435.<\/p>\n<p><strong>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 <\/strong>\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0434\u0440\u0435\u0439\u0444\u0430.<\/p>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 ADWIN \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0435\u0437\u043a\u0438\u043c \u0434\u0440\u0435\u0439\u0444\u043e\u043c<\/strong><\/p>\n<pre><code class=\"python\">from river.drift import<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-336850","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=336850"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336850\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=336850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=336850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}