{"id":325603,"date":"2021-06-28T09:01:13","date_gmt":"2021-06-28T09:01:13","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=325603"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=325603","title":{"rendered":"ML-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0413\u043e\u0441\u0434\u0443\u043c\u044b (2016-2021)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ox\/5d\/xt\/ox5dxti83weehof_8lvwhrsdkyi.png\"><\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442 <a href=\"http:\/\/vote.duma.gov.ru\">vote.duma.gov.ru<\/a>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0413\u043e\u0441\u0434\u0443\u043c\u044b \u0420\u0424 \u0437\u0430 \u0432\u0435\u0441\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u0441 1994-\u0433\u043e \u0433\u043e\u0434\u0430 \u043f\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c. \u041c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>  <\/p>\n<ol>\n<li>\u041a\u0430\u043a\u043e\u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u0440\u0442\u0438\u0439? \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u043b\u0438 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u043b\u043e\u0441\u0443\u044e\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0432 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0438?<\/li>\n<li>\u0421\u043c\u043e\u0433\u0443\u0442 \u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0434\u0443\u043c\u044b \u043d\u0430 \u0444\u0440\u0430\u043a\u0446\u0438\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u043d\u0438 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0438\u0445 \u0433\u043e\u043b\u043e\u0441\u0430\u0445?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u043d\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f?<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u043b\u044e\u0434\u044f\u043c, \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b 1, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0432\u044b\u0432\u043e\u0434\u044b \u2014 \u0442\u0430\u043c \u0434\u0430\u043d\u0430 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e\u0435\u0445\u0430\u043b\u0438.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043f\u0440\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435 \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f.<br \/>  \u0423 \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0435\u0441\u0442\u044c API, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0441\u043b\u0435\u0433\u043a\u0430 \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0432\u0435\u0431-\u0432\u0435\u0440\u0441\u0438\u0438. \u041a\u043e\u0434 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 (\u0438 \u0432\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u0434, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Python, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b) \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/drheavy\/GD_vote\">GitHub<\/a>. \u0414\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u044f \u0441\u043a\u0430\u0447\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0413\u043e\u0441\u0434\u0443\u043c\u044b 7-\u0433\u043e \u0441\u043e\u0437\u044b\u0432\u0430 (2016 \u2014 2021 \u0433\u0433.). \u0411\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e 16249 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f\u043c (\u0434\u0430\u0442\u0430 \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 07.06.2021).<br \/>  \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>law_name<\/th>\n<th>vote_result<\/th>\n<th>\u0410\u0432\u0434\u0435\u0435\u0432 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/th>\n<th>\u0410\u0434\u0443\u0447\u0438\u0435\u0432 \u0411\u0430\u0442\u043e\u0440 \u041a\u0430\u043d\u0443\u0440\u043e\u0432\u0438\u0447<\/th>\n<th>\u0410\u0437\u0438\u043c\u043e\u0432 \u0420\u0430\u0445\u0438\u043c \u0410\u0437\u0438\u0437\u0431\u043e\u0435\u0432\u0438\u0447<\/th>\n<th>\u0410\u043a\u0441\u0430\u043a\u043e\u0432 \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447<\/th>\n<th>\u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0430 \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041e\u043b\u0435\u0433\u043e\u0432\u043d\u0430<\/th>\n<th>\u0410\u043b\u0438\u043c\u043e\u0432\u0430 \u041e\u043b\u044c\u0433\u0430 \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u043d\u0430<\/th>\n<th>\u0410\u043b\u044c\u0448\u0435\u0432\u0441\u043a\u0438\u0445 \u0410\u043d\u0434\u0440\u0435\u0439 \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447<\/th>\n<th>\u0410\u043d\u0430\u043d\u0441\u043a\u0438\u0445 \u0418\u0433\u043e\u0440\u044c \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>114731<\/td>\n<td>(\u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435) \u041e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043a\u043e\u043d\u0430 \u2116 785659-7 &quot;\u041e \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u041b\u0435\u0441\u043d\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u0441 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u043a\u0442\u044b \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0447\u0430\u0441\u0442\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043b\u0435\u0441\u0430\u0445&quot;<\/td>\n<td>\u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>114730<\/td>\n<td>(\u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435) \u041e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043a\u043e\u043d\u0430 \u2116 1105089-7 &quot;\u041e \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u044e 7 \u0424\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043a\u043e\u043d\u0430 &quot;\u041e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u043b\u0435\u0433\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (\u043e\u0442\u043c\u044b\u0432\u0430\u043d\u0438\u044e) \u0434\u043e\u0445\u043e\u0434\u043e\u0432, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c, \u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0435\u0440\u0440\u043e\u0440\u0438\u0437\u043c\u0430&quot; (\u0432 \u0447\u0430\u0441\u0442\u0438 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043b\u0438\u0446, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u043c\u0435\u043d\u0443 \u0431\u0430\u043d\u043a\u043d\u043e\u0442)<\/td>\n<td>\u043f\u0440\u0438\u043d\u044f\u0442<\/td>\n<td>-1<\/td>\n<td>-1<\/td>\n<td>-1<\/td>\n<td>2<\/td>\n<td>-1<\/td>\n<td>-1<\/td>\n<td>-1<\/td>\n<td>2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 vote.duma.gov.ru, \u0434\u0430\u043b\u0435\u0435 \u0438\u0434\u0451\u0442 \u0442\u0435\u043a\u0441\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0444\u0430\u043c\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043e\u0437\u044b\u0432 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f.<br \/>  \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043e\u0437\u044b\u0432, \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u043b\u0435\u0433\u043a\u0430 \u043c\u0435\u043d\u044f\u043b\u0441\u044f, \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0442\u0435\u0445, \u043a\u0442\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0434\u0443\u043c\u044b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 10 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0432\u0441\u0435\u0445 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439. \u041e\u0441\u0442\u0430\u0432\u0448\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0438 \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c &quot;2&quot;, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u0435\u043f\u0443\u0442\u0430\u0442 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0434\u0443\u043c\u044b, \u043d\u043e \u043f\u043e \u0442\u0435\u043c \u0438\u043b\u0438 \u0438\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432: &quot;1&quot; \u2014 &quot;\u043f\u0440\u043e\u0442\u0438\u0432&quot;, &quot;0&quot; \u2014 &quot;\u0432\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f&quot;, &quot;-1&quot; \u2014 &quot;\u0437\u0430&quot;.<\/p>\n<p>  <\/p>\n<h2 id=\"1-korrelyacii\">1. \u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns  # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 df_full = pd.read_csv('.\/data\/df_full_cr.csv', index_col=0)  # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0439 dep_df_cr = pd.read_csv('.\/data\/dep_df_cr.csv', index_col=0, squeeze=True)  # \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0442\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0439 def corr_func(df, annot=True, figsize=(15,10)):     corr = df.corr()     mask = np.triu(np.ones_like(corr, dtype=bool))     plt.figure(figsize=figsize)     sns.heatmap(corr, mask=mask, annot=annot, fmt='.2f')<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0439 \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u0430 (\u0438\u043d\u0430\u0447\u0435 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0443\u043b\u044c\u0449\u0438\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u0442.\u0435. \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e), \u044f \u0440\u0435\u0448\u0438\u043b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0433\u043e\u043b\u043e\u0441\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0433\u043e\u043b\u043e\u0441\u043e\u043c \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0438. \u0422.\u0435. \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0434\u0435\u043f\u0443\u0442\u0430\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u043e\u043d \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u0433\u043e\u043b\u043e\u0441 \u043f\u0430\u0440\u0442\u0438\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u0438\u0442\u043e\u0433\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f def vote_result(row):     v_sum = 0     for v in row:         if np.abs(v) == 1:             v_sum += v     return v_sum  # \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u0433\u043e\u043b\u043e\u0441\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u0430 \u043d\u0430 &quot;\u0433\u043e\u043b\u043e\u0441 \u043f\u0430\u0440\u0442\u0438\u0438&quot; def votes_olny(row):     for i, v in enumerate(row):         if v == 2:             row[i] = row['party_result']     return row<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0421\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">df = {}  # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0434\u043b\u044f \u043f\u0430\u0440\u0442\u0438\u0438 df['\u0421\u0420'] = df_full.loc[:, dep_df_cr[dep_df_cr == '\u0421\u0420'].index]  # \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043e\u0431\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043b\u044f \u043f\u0430\u0440\u0442\u0438\u0438 df['\u0421\u0420']['party_result'] = df['\u0421\u0420'].apply(vote_result, axis='columns').map(lambda x: int(abs(x)\/x) if x != 0 else 0)  # \u041c\u0435\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &quot;2&quot; (\u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b) \u043d\u0430 'party_result' df['\u0421\u0420'].apply(votes_olny, axis='columns')  # \u0421\u0442\u0440\u043e\u0438\u043c \u0442\u0435\u043f\u043b\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u041f\u0438\u0440\u0441\u043e\u043d\u0430 corr_func(df['\u0421\u0420'])<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/13e\/b5e\/d16\/13eb5ed16b2b7ab6d7be590df723081b.png\"><\/p>\n<p>  <\/p>\n<p>\u0414\u0435\u043f\u0443\u0442\u0430\u0442\u044b, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0442\u0451\u043c\u043d\u044b\u0435 \u043a\u043b\u0435\u0442\u043a\u0438, \u0433\u043e\u043b\u043e\u0441\u0443\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e, \u0447\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0442\u043b\u044b\u0435 \u043a\u043b\u0435\u0442\u043e\u0447\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0430\u0440\u044b \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0433\u043e\u043b\u043e\u0441\u0443\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0442\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><strong>\u041b\u0414\u041f\u0420<\/strong><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/86a\/524\/46e\/86a52446ed8db7e7a8eebd4a01035e52.png\"><\/p>\n<p>  <\/p>\n<p>(\u0412\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e \u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439)<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u041f\u0420\u0424<\/strong><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c25\/bfc\/f0b\/c25bfcf0be94defca1bafddf3cc5d7ac.png\"><\/p>\n<p>  <\/p>\n<p><strong>\u0415\u0434\u0438\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u044f<\/strong><br \/>  (\u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0445\u043e\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043b\u0443\u0447\u0448\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435)<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/5e9\/142\/9f9\/5e91429f9d780cd3f966d946218ada43.jpg\"><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0431\u043e\u043b\u0435\u0435 0,91 (\u0432 \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u2014 \u0431\u043e\u043b\u0435\u0435 0,97). <\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0441\u044c \u0441\u043e\u0437\u044b\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0439\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u043b\u043e\u0441\u0430 &quot;\u0437\u0430&quot; \u0438 &quot;\u043f\u0440\u043e\u0442\u0438\u0432&quot;).<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432, \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0432 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0438 def ident_deps(df_party):     deps_party_full = list(df_party.drop(columns=['party_result']).columns.values)     deps_party_ident = deps_party_full.copy()      for ind in df_party.index.values:         for d in deps_party_ident:             vote = df_party.loc[ind, d]             if vote != df_party.loc[ind, 'party_result'] and (vote != 0 and vote != 2):                 deps_party_ident.remove(d)         if len(deps_party_ident) == 0:             break     return deps_party_ident, deps_party_full<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0421\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">deps_SR_ident, deps_SR_full = ident_deps(df['\u0421\u0420'])  # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 len(deps_SR_ident)  &gt;&gt;&gt; 0    <\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041b\u0414\u041f\u0420<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">deps_LDPR_ident, deps_LDPR_full = ident_deps(df['\u041b\u0414\u041f\u0420'])  # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 len(deps_LDPR_ident)  &gt;&gt;&gt; 5  # \u0414\u043e\u043b\u044f &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u043f\u0430\u0440\u0442\u0438\u0438 np.round(len(deps_LDPR_ident) \/ len(deps_LDPR_full), 2)  &gt;&gt;&gt; 0.16  # \u0421\u043f\u0438\u0441\u043e\u043a &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 deps_LDPR_ident  &gt;&gt;&gt; ['\u0416\u0438\u0440\u0438\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0412\u043e\u043b\u044c\u0444\u043e\u0432\u0438\u0447',  '\u041a\u0443\u043b\u0438\u0435\u0432\u0430 \u0412\u0430\u0441\u0438\u043b\u0438\u043d\u0430 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u043d\u0430',  '\u041c\u043e\u0440\u043e\u0437\u043e\u0432 \u0410\u043d\u0442\u043e\u043d \u042e\u0440\u044c\u0435\u0432\u0438\u0447',  '\u041f\u0430\u0448\u0438\u043d \u0412\u0438\u0442\u0430\u043b\u0438\u0439 \u041b\u044c\u0432\u043e\u0432\u0438\u0447',  '\u0421\u0432\u0438\u0449\u0435\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447']<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u041f\u0420\u0424<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">deps_KPRF_ident, deps_KPRF_full = ident_deps(df['\u041a\u041f\u0420\u0424'])  # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 len(deps_KPRF_ident)  &gt;&gt;&gt; 0    <\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0415\u0434\u0438\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">deps_ER_ident, deps_ER_full = ident_deps(df['\u0415\u0420'])  # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 len(deps_ER_ident)  &gt;&gt;&gt; 59  # \u0414\u043e\u043b\u044f &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u043f\u0430\u0440\u0442\u0438\u0438 np.round(len(deps_ER_ident) \/ len(deps_ER_full), 2)  &gt;&gt;&gt; 0.19  # \u0421\u043f\u0438\u0441\u043e\u043a &quot;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 deps_ER_ident  &gt;&gt;&gt;<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">['\u0410\u0437\u0438\u043c\u043e\u0432 \u0420\u0430\u0445\u0438\u043c \u0410\u0437\u0438\u0437\u0431\u043e\u0435\u0432\u0438\u0447',  '\u0410\u043b\u044c\u0448\u0435\u0432\u0441\u043a\u0438\u0445 \u0410\u043d\u0434\u0440\u0435\u0439 \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447',  '\u0410\u0441\u043a\u0435\u043d\u0434\u0435\u0440\u043e\u0432 \u0417\u0430\u0443\u0440 \u0410\u0441\u0435\u0432\u043e\u0432\u0438\u0447',  '\u0411\u0430\u043b\u044b\u0431\u0435\u0440\u0434\u0438\u043d \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',  '\u0411\u0438\u043a\u0431\u0430\u0435\u0432 \u0418\u043b\u044c\u0434\u0430\u0440 \u0417\u0438\u043d\u0443\u0440\u043e\u0432\u0438\u0447',  '\u0411\u043e\u0433\u0443\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0418\u0440\u0435\u043a \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0438\u0447',  '\u0411\u043e\u0435\u0432\u0430 \u041d\u0430\u0442\u0430\u043b\u044c\u044f \u0414\u043c\u0438\u0442\u0440\u0438\u0435\u0432\u043d\u0430',  '\u0412\u0430\u043b\u0443\u0435\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447',  '\u0412\u0435\u0442\u043b\u0443\u0436\u0441\u043a\u0438\u0445 \u0410\u043d\u0434\u0440\u0435\u0439 \u041b\u0435\u043e\u043d\u0438\u0434\u043e\u0432\u0438\u0447',  '\u0412\u043e\u0435\u0432\u043e\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447',  '\u0413\u0430\u043d\u0438\u0435\u0432 \u0424\u0430\u0440\u0438\u0442 \u0413\u043b\u044e\u0441\u043e\u0432\u0438\u0447',  '\u0414\u0435\u043b\u0438\u043c\u0445\u0430\u043d\u043e\u0432 \u0410\u0434\u0430\u043c \u0421\u0443\u043b\u0442\u0430\u043d\u043e\u0432\u0438\u0447',  '\u0414\u0435\u0440\u044f\u0431\u043a\u0438\u043d \u0412\u0438\u043a\u0442\u043e\u0440 \u0415\u0444\u0438\u043c\u043e\u0432\u0438\u0447',  '\u0418\u0437\u043e\u0442\u043e\u0432 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u0438\u0447',  '\u0418\u0448\u0441\u0430\u0440\u0438\u043d \u0420\u0430\u043c\u0437\u0438\u043b \u0420\u0430\u0444\u0430\u0438\u043b\u043e\u0432\u0438\u0447',  '\u041a\u0430\u043b\u0438\u0447\u0435\u043d\u043a\u043e \u0410\u043d\u0434\u0440\u0435\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',  '\u041a\u0430\u043d\u0430\u0435\u0432 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0412\u0430\u043b\u0435\u0440\u0438\u0430\u043d\u043e\u0432\u0438\u0447',  '\u041a\u0430\u0440\u043f\u043e\u0432 \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0415\u0432\u0433\u0435\u043d\u044c\u0435\u0432\u0438\u0447',  '\u041a\u043e\u043b\u0435\u0441\u043d\u0438\u043a\u043e\u0432 \u041e\u043b\u0435\u0433 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0438\u0447',  '\u041a\u0440\u0430\u0432\u0447\u0435\u043d\u043a\u043e \u0414\u0435\u043d\u0438\u0441 \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0438\u0447',  '\u041a\u0440\u0438\u0432\u043e\u043d\u043e\u0441\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',  '\u041a\u0443\u0432\u0448\u0438\u043d\u043e\u0432\u0430 \u041d\u0430\u0442\u0430\u043b\u044c\u044f \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u043d\u0430',  '\u041a\u0443\u0434\u0440\u044f\u0432\u0446\u0435\u0432 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u0435\u043e\u0440\u0433\u0438\u0435\u0432\u0438\u0447',  '\u041b\u0435\u0432\u0438\u0446\u043a\u0438\u0439 \u042e\u0440\u0438\u0439 \u0410\u043d\u0434\u0440\u0435\u0435\u0432\u0438\u0447',  '\u041c\u0430\u043a\u0438\u0435\u0432 \u0417\u0443\u0440\u0430\u0431 \u0413\u0430\u0439\u043e\u0437\u043e\u0432\u0438\u0447',  '\u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432\u0430 \u0421\u0432\u0435\u0442\u043b\u0430\u043d\u0430 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u043d\u0430',  '\u041c\u043e\u0441\u043a\u0432\u0438\u043d \u0414\u0435\u043d\u0438\u0441 \u041f\u0430\u0432\u043b\u043e\u0432\u0438\u0447',  '\u041c\u043e\u0441\u043a\u0432\u0438\u0447\u0435\u0432 \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447',  '\u041c\u0443\u0446\u043e\u0435\u0432 \u0417\u0435\u043b\u0438\u043c\u0445\u0430\u043d \u0410\u043b\u0438\u043a\u043e\u0435\u0432\u0438\u0447',  '\u041d\u0430\u0437\u0430\u0440\u043e\u0432\u0430 \u041d\u0430\u0442\u0430\u043b\u044c\u044f \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u043d\u0430',  '\u041d\u0438\u043a\u043e\u043d\u043e\u0432 \u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0438\u0447',  '\u041e\u0433\u0443\u043b\u044c \u041b\u0435\u043e\u043d\u0438\u0434 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447',  '\u041e\u043a\u0443\u043d\u0435\u0432\u0430 \u041e\u043b\u044c\u0433\u0430 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430',  '\u041f\u0435\u0440\u043c\u0438\u043d\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447',  '\u041f\u0435\u0442\u0440\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u0412\u0430\u043b\u0435\u0440\u0438\u0435\u0432\u0438\u0447',  '\u041f\u0435\u0442\u0440\u043e\u0432 \u042e\u0440\u0438\u0439 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447',  '\u041f\u0435\u0442\u0440\u0443\u043d\u0438\u043d \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u042e\u0440\u044c\u0435\u0432\u0438\u0447',  '\u041f\u0438\u043b\u044e\u0441 \u041d\u0430\u0442\u0430\u043b\u0438\u044f \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u043d\u0430',  '\u041f\u0438\u0440\u043e\u0433 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u042e\u0440\u044c\u0435\u0432\u0438\u0447',  '\u041f\u0438\u0441\u043a\u0430\u0440\u0435\u0432 \u0412\u0430\u0441\u0438\u043b\u0438\u0439 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447',  '\u041f\u0443\u0448\u043a\u0430\u0440\u0435\u0432 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447',  '\u0420\u043e\u043c\u0430\u043d\u0435\u043d\u043a\u043e \u0420\u043e\u043c\u0430\u043d \u042e\u0440\u044c\u0435\u0432\u0438\u0447',  '\u0421\u0430\u0437\u043e\u043d\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u0430\u043b\u0435\u0440\u044c\u0435\u0432\u0438\u0447',  '\u0421\u0430\u0440\u0430\u043b\u0438\u0435\u0432 \u0428\u0430\u043c\u0441\u0430\u0438\u043b \u042e\u043d\u0443\u0441\u043e\u0432\u0438\u0447',  '\u0421\u043a\u043b\u044f\u0440 \u0413\u0435\u043d\u043d\u0430\u0434\u0438\u0439 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447',  '\u0421\u043b\u044b\u0449\u0435\u043d\u043a\u043e \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432\u0438\u0447',  '\u0421\u043c\u0438\u0440\u043d\u043e\u0432 \u042e\u0440\u0438\u0439 \u0412\u0430\u043b\u0435\u043d\u0442\u0438\u043d\u043e\u0432\u0438\u0447',  '\u0421\u043e\u043b\u043d\u0446\u0435\u0432\u0430 \u0421\u0432\u0435\u0442\u043b\u0430\u043d\u0430 \u042e\u0440\u044c\u0435\u0432\u043d\u0430',  '\u0421\u0443\u0440\u0430\u0435\u0432 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447',  '\u0422\u0435\u0440\u0435\u0448\u043a\u043e\u0432\u0430 \u0412\u0430\u043b\u0435\u043d\u0442\u0438\u043d\u0430 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u043d\u0430',  '\u0422\u0443\u0440\u043e\u0432 \u0410\u0440\u0442\u0451\u043c \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447',  '\u0422\u0443\u0442\u043e\u0432\u0430 \u041b\u0430\u0440\u0438\u0441\u0430 \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u043d\u0430',  '\u0424\u043e\u043a\u0438\u043d \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447',  '\u0425\u0430\u0440\u0441\u0438\u0435\u0432 \u0410\u043b\u0438\u0445\u0430\u043d \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447',  '\u0425\u0430\u0441\u0430\u043d\u043e\u0432 \u041c\u0443\u0440\u0430\u0442 \u0420\u0443\u0441\u043b\u0430\u043d\u043e\u0432\u0438\u0447',  '\u0426\u044b\u0431\u0438\u0437\u043e\u0432\u0430 \u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u0418\u0433\u043e\u0440\u0435\u0432\u043d\u0430',  '\u0427\u0435\u043f\u0438\u043a\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',  '\u0428\u043e\u0439\u0433\u0443 \u041b\u0430\u0440\u0438\u0441\u0430 \u041a\u0443\u0436\u0443\u0433\u0435\u0442\u043e\u0432\u043d\u0430',  '\u042f\u043c\u043f\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u0415\u043b\u0435\u043d\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u043d\u0430']<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>&quot;\u0418\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435&quot; \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0432 \u0434\u0432\u0443\u0445 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0439, \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0446\u0435\u043b\u044b\u0445 59 \u0447\u0435\u043b\u043e\u0432\u0435\u043a (19%).<\/p>\n<p>  <\/p>\n<h2 id=\"2-klasterizaciya\">2. \u041a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">from sklearn.metrics import silhouette_score from sklearn.cluster import KMeans, AgglomerativeClustering from sklearn.decomposition import PCA from MulticoreTSNE import MulticoreTSNE as TSNE import umap  # \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0435 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f &quot;\u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b&quot; (2) \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u0435\u043d\u044b \u043a &quot;\u0432\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f&quot; (0). for d in df_full.drop(columns=['law_name', 'vote_result']).columns:     df_full[d] = df_full[d].map(lambda x: 0 if x == 2 else x)  # \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 df_t = df_full.transpose().drop(index=['law_name', 'vote_result']) df_t.iloc[:3, :7] &gt;&gt;&gt;<\/code><\/pre>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>114772<\/th>\n<th>114771<\/th>\n<th>114770<\/th>\n<th>114769<\/th>\n<th>114768<\/th>\n<th>114767<\/th>\n<th>114766<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0410\u0432\u0434\u0435\u0435\u0432 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/td>\n<td>-1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>\u0410\u0434\u0443\u0447\u0438\u0435\u0432 \u0411\u0430\u0442\u043e\u0440 \u041a\u0430\u043d\u0443\u0440\u043e\u0432\u0438\u0447<\/td>\n<td>-1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>\u0410\u0437\u0438\u043c\u043e\u0432 \u0420\u0430\u0445\u0438\u043c \u0410\u0437\u0438\u0437\u0431\u043e\u0435\u0432\u0438\u0447<\/td>\n<td>-1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"plaintext\">X = df_t # \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 y = dep_df_cr # \u0414\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u0430\u0440\u0442\u0438\u0439\u043d\u043e\u0439 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u0438  def plot(x1, x2, hue=None, name=None):     plt.figure(figsize=(10,10))     sns.scatterplot(x1, x2, hue=hue, palette=&quot;bright&quot;)     plt.title(name, fontsize=18)     plt.show()<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432 \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PCA, UMAP \u0438 t-SNE \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p>  <\/p>\n<p><strong>PCA<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">pca = PCA(random_state=7) pca.fit(X)  PCA_transformed = PCA(n_components=2, random_state=7).fit_transform(X)  plot(PCA_transformed[:, 0], PCA_transformed[:, 1], hue=y, name='PCA')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f31\/19f\/588\/f3119f588e269c2aee47e976417391fb.png\"><\/p>\n<p>  <\/p>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e PCA \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u043f\u043b\u043e\u0445\u043e\u0432\u0430\u0442\u043e, \u0441\u043c\u0435\u0448\u0430\u0432 \u0421\u0420 \u0438 \u041b\u0414\u041f\u0420 \u0432 \u043e\u0434\u043d\u0443 \u043a\u0443\u0447\u0443.<\/p>\n<p>  <\/p>\n<p><strong>t-SNE<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">tsne = TSNE(n_jobs=-1, random_state=7) tsne_transformed = tsne.fit_transform(X)  plot(tsne_transformed[:,0], tsne_transformed[:,1], hue=y, name='t-SNE')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8d3\/54e\/a2a\/8d354ea2a7a10f5f3b1b5cde7b60246e.png\"><\/p>\n<p>  <\/p>\n<p><strong>UMAP<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">reducer = umap.UMAP(random_state=7) embedding = reducer.fit_transform(X)  plot(embedding[:, 0], embedding[:, 1], hue=y, name='UMAP')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9bf\/33c\/006\/9bf33c0067b1ea3dbc659f0737a20306.png\"><\/p>\n<p>  <\/p>\n<p>\u0410 \u0432\u043e\u0442 t-SNE\/UMAP \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u0447\u0451\u0442\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0432 \u0432\u0441\u0435 4 \u043f\u0430\u0440\u0442\u0438\u0438. \u0413\u043b\u044f\u0434\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a \u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c.<\/p>\n<p>  <\/p>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c k-means<\/strong><\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0441\u0438\u043b\u0443\u044d\u0442\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">silhouette = [] for i in range(2,11):     kmeans = KMeans(n_clusters=i, random_state=7, n_jobs=-1).fit(X)     labels = kmeans.labels_     score = silhouette_score(X, labels)     silhouette.append(score)  plt.plot(range(2,11), silhouette, marker='o')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2de\/5cb\/e4d\/2de5cbe4dbb59554452ee7e6b655ca2d.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0430\u0432\u043d\u043e 4.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kmeans_4 = KMeans(n_clusters=4, random_state=7, n_jobs=-1).fit(X) labels_km_4 = kmeans_4.labels_  plot(tsne_transformed[:,0], tsne_transformed[:,1], hue=labels_km_4, name='t-SNE')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/88a\/3ed\/12a\/88a3ed12a70f25db16f7dc66457c8d65.png\"><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">plot(embedding[:, 0], embedding[:, 1], hue=labels_km_4, name='UMAP')<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/65b\/9ce\/7a3\/65b9ce7a3a074a7e07ff10f1a42d8696.png\"><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, K-means \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0442\u0430\u043a\u0436\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c (AgglomerativeClustering) \u2014 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u0434 \u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0442.\u043a. \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439.<\/p>\n<p>  <\/p>\n<h2 id=\"3-prognozirovanie-rezultatov-golosovaniya\">3. \u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<pre><code class=\"plaintext\">from sklearn.linear_model import LogisticRegressionCV from sklearn.ensemble import RandomForestClassifier from sklearn.ensemble import GradientBoostingClassifier from xgboost.sklearn import XGBClassifier from lightgbm import LGBMClassifier from sklearn.neighbors import KNeighborsClassifier  from sklearn.model_selection import train_test_split  from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score from sklearn.metrics import roc_auc_score, roc_curve  from nltk.corpus import stopwords from sklearn.feature_extraction.text import TfidfVectorizer from pymystem3 import Mystem from joblib import Parallel, delayed  # \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 df_full.vote_result.value_counts()  &gt;&gt;&gt; \u043f\u0440\u0438\u043d\u044f\u0442         12770 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d        3328 \u0420\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432\u043e\u0435      151  # \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 &quot;\u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432\u044b\u0445&quot; \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 df_lem = df_full.drop(index=df_full[df_full['vote_result'] == '\u0420\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432\u043e\u0435'].index)  # \u041f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0440\u0433\u0435\u0442\u0430 \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u0443\u044e \u0444\u043e\u0440\u043c\u0443 df_lem.vote_result = df_lem.vote_result.map(lambda s: 1 if s=='\u043f\u0440\u0438\u043d\u044f\u0442' else 0)  # \u0421\u043f\u0438\u0441\u043e\u043a \u0441 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f law_list_p = df_lem.law_name.astype('str').tolist()<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u0439 \u043b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/503420\/\">\u044d\u0442\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u0435. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u044e\u0437\u0435\u0440\u0430\u043c <a href=\"https:\/\/habr.com\/ru\/users\/codex1\/\" class=\"user_link\">Codex1<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/serhit\/\" class=\"user_link\">serhit<\/a>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0432 \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 (\u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b pymystem3) def lemma3(text):     m = Mystem()     merged_text = &quot;&quot;.join(txt + ' br ' for txt in text)      doc = ''     res = []      for t in m.lemmatize(merged_text):         if t != '\\n':             if t != 'br':                 doc += t             else:                 res.append(doc)                 doc = ''      return res  text_batch = [law_list_p[i: i + 1000] for i in range(0, len(law_list_p), 1000)]  # \u041b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u044f\u0434\u0435\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 law_list_p_clean = Parallel(n_jobs=-1)(delayed(lemma3)(t) for t in text_batch)  # \u041f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 law_list_p_clean_list = [] for l in law_list_p_clean:     for b in l:         law_list_p_clean_list.append(b)  df_law_clean = pd.DataFrame(law_list_p_clean_list)  # \u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043d\u0430 train \u0438 test X_train, X_test, y_train, y_test = train_test_split(     df_law_clean[0],      df_lem.vote_result,      test_size=0.3,     stratify = df_lem.vote_result,     random_state = 7 )      # \u0412\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432 v = TfidfVectorizer(stop_words=stopwords.words('russian'), ngram_range=(1, 2), max_df=0.95, min_df=0.002, norm=None) X_train_tfid = v.fit_transform(X_train).todense() X_test_tfid = v.transform(X_test).todense()  models = {}  # \u041b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f models[0] = LogisticRegressionCV()  # Random Forest models[1] = RandomForestClassifier(n_estimators=400, min_samples_split=3, random_state=7)  # \u0413\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0431\u0443\u0441\u0442\u0438\u043d\u0433 (sklearn) models[2] = GradientBoostingClassifier(random_state=7)  # XGB models[3] = XGBClassifier(n_jobs=-1, random_state=7)  # LightGBM models[4] = LGBMClassifier(n_jobs=-1, random_state=7)  # kNN models[5] = KNeighborsClassifier(n_neighbors=3)  for m in models:     models[m].fit(X_train_tfid, y_train)  model_names = {0: 'log_reg', 1: 'RF_clf', 2: 'GB_clf', 3: 'XGB_clf', 4: 'LGBM_clf', 5: 'knn_clf'}  # \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438  def dataframe_quality_metrics(actual, prediction):     stats = [         accuracy_score(actual, prediction),         precision_score(actual, prediction),         recall_score(actual, prediction),         f1_score(actual, prediction)     ]     return stats  def metrics_all(models, model_names, y_test):     measured_quality_metrics = pd.DataFrame({&quot;Test_quality&quot;:[&quot;Accuracy&quot;, &quot;Precision&quot;, &quot;Recall&quot;, &quot;f1_score&quot;]})     measured_quality_metrics.set_index(&quot;Test_quality&quot;)      y_test_baseline = np.array([1]*len(y_test))     measured_quality_metrics[&quot;baseline&quot;] = dataframe_quality_metrics(y_test_baseline, y_test)      for m in models:         measured_quality_metrics[model_names[m]] = dataframe_quality_metrics(models[m].predict(X_test_tfid), y_test)      return measured_quality_metrics<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422.\u043a. \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0438\u0441\u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043a\u043e\u043b\u043e 80% \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u2014 &quot;\u043f\u0440\u0438\u043d\u044f\u0442&quot;), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0431\u0435\u0439\u0437\u043b\u0430\u0439\u043d\u0430 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u043f\u0440\u0435\u0434\u0438\u043a\u0442\u043e\u0440, \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &quot;\u043f\u0440\u0438\u043d\u044f\u0442&quot;.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># \u0412\u044b\u0432\u043e\u0434 \u043c\u0435\u0442\u0440\u0438\u043a metrics_all(models=models, model_names=model_names, y_test=y_test)<\/code><\/pre>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>Test_quality<\/th>\n<th>baseline<\/th>\n<th>log_reg<\/th>\n<th>RF_clf<\/th>\n<th>GB_clf<\/th>\n<th>XGB_clf<\/th>\n<th>LGBM_clf<\/th>\n<th>knn_clf<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0<\/td>\n<td>Accuracy<\/td>\n<td>0.793168<\/td>\n<td>0.895652<\/td>\n<td>0.903313<\/td>\n<td>0.883023<\/td>\n<td>0.896687<\/td>\n<td>0.9<\/td>\n<td>0.873499<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Precision<\/td>\n<td>1<\/td>\n<td>0.949622<\/td>\n<td>0.95432<\/td>\n<td>0.979901<\/td>\n<td>0.947794<\/td>\n<td>0.944923<\/td>\n<td>0.956408<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Recall<\/td>\n<td>0.793168<\/td>\n<td>0.921246<\/td>\n<td>0.926039<\/td>\n<td>0.88496<\/td>\n<td>0.923919<\/td>\n<td>0.930113<\/td>\n<td>0.891918<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>f1_score<\/td>\n<td>0.884655<\/td>\n<td>0.935219<\/td>\n<td>0.939967<\/td>\n<td>0.930014<\/td>\n<td>0.935704<\/td>\n<td>0.93746<\/td>\n<td>0.923038<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0421\u0443\u0434\u044f \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c, \u0432\u0441\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0445\u043e\u0440\u043e\u0448\u043e. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043b kNN, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u044f\u0436\u0435\u043b\u043e \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442 \u0441 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 (\u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 16 \u0442\u044b\u0441.) \u0414\u0443\u043c\u0430\u044e, \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043a\u0440\u043e\u0441\u0441-\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0435\u0449\u0451 \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u043e\u0441\u0438\u043b\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0448\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u0436\u0430\u043b\u043a\u043e, \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c ROC-\u043a\u0440\u0438\u0432\u044b\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\"># \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 ROC-\u043a\u0440\u0438\u0432\u044b\u0445 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 def plot_roc_curve_all(models, model_names, y_test):     i = 1     ax = {}     row_len = 3     nrows = len(models) \/\/ row_len + 1      plt.figure(figsize=(20,18))          for m in models:         prob_prediction = models[m].predict_proba(X_test_tfid)[:,1]          fpr, tpr, thresholds = roc_curve(y_test, prob_prediction)         auc_score = roc_auc_score(y_test, prob_prediction)          ax[i] = plt.subplot(nrows, row_len, i)         ax[i].plot(fpr, tpr, label='ROC curve ')         ax[i].plot([0, 1], [0, 1])         ax[i].set_xlim([0.0, 1.0])         ax[i].set_ylim([0.0, 1.05])         ax[i].set_xlabel('False Positive Rate')         ax[i].set_ylabel('True Positive Rate')         ax[i].set_title('{} ROC AUC: {:.3f}'.format(model_names[m], auc_score))         i += 1      plt.show()  plot_roc_curve_all(models=models, model_names=model_names, y_test=y_test)<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/315\/f91\/19c\/315f9119c304dfc62d3098fbd17e4c0c.png\"><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">df = pd.DataFrame(X_train_tfid, columns=v.get_feature_names())  # \u0421\u043b\u043e\u0432\u0430\/\u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 &quot;\u043f\u0440\u0438\u043d\u044f\u0442&quot; featureImportance = pd.DataFrame({&quot;feature&quot;: df.columns,                                    &quot;importance&quot;: models[0].coef_[0]})  featureImportance.set_index('feature', inplace=True) featureImportance.sort_values([&quot;importance&quot;], ascending=False, inplace=True) featureImportance[&quot;importance&quot;][:30].plot(kind='bar', figsize=(18, 6))<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/414\/24f\/e23\/41424fe23401b815dbffcca4bffce2f3.png\"><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># \u0421\u043b\u043e\u0432\u0430\/\u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 &quot;\u043f\u0440\u0438\u043d\u044f\u0442&quot; featureImportance = pd.DataFrame({&quot;feature&quot;: df.columns,                                    &quot;importance&quot;: models[0].coef_[0]})  featureImportance.set_index('feature', inplace=True) featureImportance.sort_values([&quot;importance&quot;], ascending=True, inplace=True) featureImportance[&quot;importance&quot;][:30].plot(kind='bar', figsize=(18, 6))<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/bcc\/af1\/6de\/bccaf16decfce3a3386521c760c0e726.png\"><\/p>\n<p>  <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0435 \u0438\u043b\u0438 \u0442\u0440\u0435\u0442\u044c\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u0430 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u043e\u0435, \u043b\u0438\u0431\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u043d\u0435\u0441\u0435\u043d \u043d\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u043c \u2014 \u043f\u043e\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f. \u0418\u0437 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0437\u0430\u043a\u043e\u043d\u043e\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"vyvody\">\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0439\u0434\u0443\u0441\u044c \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u043f\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0421\u0442\u0435\u043f\u0435\u043d\u044c \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0433\u043e\u043b\u043e\u0441\u043e\u0432 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u041f\u0438\u0440\u0441\u043e\u043d\u0430 \u043a\u043e\u043b\u0435\u0431\u0430\u043b\u0438\u0441\u044c \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 0,91-0,999. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u0434\u0432\u0443\u0445 \u043f\u0430\u0440\u0442\u0438\u044f\u0445 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u044b, \u0433\u043e\u043b\u043e\u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043e \u0432\u0441\u0435\u0445 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043c\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u0440\u0442\u0438\u0439\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 (\u0432\u0430\u0440\u0438\u0430\u043d\u0442 &quot;\u0432\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f&quot; \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0441\u044f).<\/li>\n<li>\u0414\u0432\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (k-means \u0438 hierarhical), \u0438\u043c\u0435\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u0430, \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u043f\u043e \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u044f\u043c.<\/li>\n<li>\u041e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044f\u0441\u044c \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 ML-\u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438\u0442\u043e\u0433 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043a\u043e\u043b\u043e 90% (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 Accuracy \u2014 0,9, f1-score \u2014 0,94, ROC AUC \u2014 0,96).<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e <a href=\"https:\/\/www.linkedin.com\/in\/sergeyevdmitry\/\">\u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0430<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/golovinds\/\">\u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0413\u043e\u043b\u043e\u0432\u0438\u043d\u0430<\/a> \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0432 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<hr>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 Demo Day \u043a\u0443\u0440\u0441\u0430 <strong><a href=\"https:\/\/otus.pw\/WL9T\/\">&quot;\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 ML \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445&quot;<\/a><\/strong>. <em>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0435\u0431\u0438\u043d\u0430\u0440\u0430 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430\u043c\u0438 OTUS, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043e \u043a\u0443\u0440\u0441\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/em><\/p>\n<p>  <\/p>\n<hr>\n<p>  <\/p>\n<p>\u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<\/div>\n<p> \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\/otus\/blog\/564806\/\"> https:\/\/habr.com\/ru\/company\/otus\/blog\/564806\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ox\/5d\/xt\/ox5dxti83weehof_8lvwhrsdkyi.png\"><\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442 <a href=\"http:\/\/vote.duma.gov.ru\">vote.duma.gov.ru<\/a>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0413\u043e\u0441\u0434\u0443\u043c\u044b \u0420\u0424 \u0437\u0430 \u0432\u0435\u0441\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u0441 1994-\u0433\u043e \u0433\u043e\u0434\u0430 \u043f\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c. \u041c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>  <\/p>\n<ol>\n<li>\u041a\u0430\u043a\u043e\u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u0440\u0442\u0438\u0439? \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u043b\u0438 \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u043b\u043e\u0441\u0443\u044e\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0432 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0438?<\/li>\n<li>\u0421\u043c\u043e\u0433\u0443\u0442 \u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0435\u043f\u0443\u0442\u0430\u0442\u043e\u0432 \u0434\u0443\u043c\u044b \u043d\u0430 \u0444\u0440\u0430\u043a\u0446\u0438\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u043d\u0438 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0438\u0445 \u0433\u043e\u043b\u043e\u0441\u0430\u0445?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u043d\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f?<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u043b\u044e\u0434\u044f\u043c, \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b 1, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0432\u044b\u0432\u043e\u0434\u044b \u2014 \u0442\u0430\u043c \u0434\u0430\u043d\u0430 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e\u0435\u0445\u0430\u043b\u0438.<\/p>\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-325603","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/325603","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=325603"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/325603\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=325603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=325603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=325603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}