{"id":466515,"date":"2025-07-08T21:00:23","date_gmt":"2025-07-08T21:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=466515"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=466515","title":{"rendered":"<span>LIME for ECG Time Series Dataset Example<\/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<p><strong>LIME (Local Interpretable Model-Agnostic Explanations)<\/strong> \u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043c\u043e\u0434\u0435\u0442 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0434\u0435\u0435 \u2014 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043e\u0446\u0435\u043d\u0449\u0438\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438) \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u2014 \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439\/\u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0435\u0439.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c LIME \u043c\u043e\u0436\u043d\u043e \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 [<a href=\"https:\/\/github.com\/marcotcr\/lime\" rel=\"noopener noreferrer nofollow\">lime<\/a>](<a href=\"https:\/\/github.com\/marcotcr\/lime\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/marcotcr\/lime<\/a>). \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 LIME \u043a, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0440\u044f\u0434\u0430\u043c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. <\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c<em>, <\/em>\u0430 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438: \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0436\u0435\u043d \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441 20-\u0439 \u043f\u043e 30-\u044e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0443?<\/p>\n<\/li>\n<li>\n<p> \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c: \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043d\u0430 \u0448\u0443\u043c, \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435 lime \u0434\u043b\u044f TimeSeries \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c. \u0418 \u0432 \u044d\u0442\u043e\u043c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e! \ud83d\ude42<\/p>\n<p>\u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0432\u044b:<\/p>\n<ul>\n<li>\n<p>\u0423\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c LIME \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u042d\u041a\u0413;<\/p>\n<\/li>\n<li>\n<p> \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0443\u0447\u0438\u0442\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u042d\u041a\u0413 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 <strong>PyTorch + Scikit-learn<\/strong>. \u0412\u0435\u0441\u044c \u043a\u043e\u0434, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431. <\/p>\n<h2>Step 0. Loading and Preprocessing the Dataset<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e \u042d\u041a\u0413. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0432 \u043d\u0430\u0448\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u042d\u041a\u0413 \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0443\u0441\u043e\u0432\u044b\u0439 \u0440\u0438\u0442\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0440\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0440\u0438\u0442\u043c\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0416\u0435\u043b\u0443\u0434\u043e\u0447\u043a\u043e\u0432\u0430\u044f \u0442\u0430\u0445\u0438\u043a\u0430\u0440\u0434\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0440\u0434\u0435\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u0441\u0442\u0443\u043f. <\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442 [<a href=\"https:\/\/iopscience.iop.org\/article\/10.1088\/1361-6579\/abc960\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>].<\/p>\n<pre><code class=\"python\"># Path to the dataset file_path_train = 'https:\/\/github.com\/SadSabrina\/XAI-open_materials\/blob\/main\/LIME_for_Time_Series\/data\/ecg_train.csv?raw=True' file_path_test = 'https:\/\/github.com\/SadSabrina\/XAI-open_materials\/blob\/main\/LIME_for_Time_Series\/data\/ecg_test.csv?raw=True'  # Training dataset ecg_train = pd.read_csv(file_path_train, header=None) # Testing dataset ecg_test = pd.read_csv(file_path_test, header=None)<\/code><\/pre>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0448\u0430\u0433\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0438, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u0431\u0435\u0440\u0435\u043c \u0438\u0445. \u0417\u0430\u0442\u0435\u043c, \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 X \u0438 y, \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0438 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0448\u0430\u0433\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435, \u043d\u0430 \u043d\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c. <\/p>\n<h2>Step 1. Building a CNN Model<\/h2>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435, \u043e\u0444\u043e\u0440\u043c\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0432 \u0441\u0438\u043b\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0446\u0435\u043b\u044c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u2014 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u043d\u044b\u0445 \u044f\u0449\u0438\u043a\u043e\u0432 \u2014 \u0440\u0435\u0448\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<pre><code class=\"python\">class ECGCNN(nn.Module):     def __init__(self, input_shape, num_classes):         \"\"\"         input_shape: tuple time_steps, channels (exmaple 140, 1)         num_classes: number of output classes         \"\"\"         super(ECGCNN, self).__init__()         time_steps, channels = input_shape          self.conv1 = nn.Conv1d(in_channels=channels, out_channels=64, kernel_size=3)         self.pool = nn.MaxPool1d(kernel_size=2)         self.dropout = nn.Dropout(0.5)          # Compute output length after conv and pooling         conv_output_length = time_steps - 2  # kernel_size=3 reduces by 2         pool_output_length = conv_output_length \/\/ 2  # MaxPool1d(pool_size=2)          self.flattened_size = 64 * pool_output_length         self.fc1 = nn.Linear(self.flattened_size, 100)         self.fc2 = nn.Linear(100, num_classes)      def forward(self, x):         \"\"\"         x: Tensor of shape (batch_size, time_steps, channels)         \"\"\"         if type(x) != torch.Tensor:           x = torch.Tensor(x)          x = x.permute(0, 2, 1)  # Change to (batch_size, channels, time_steps)         x = F.relu(self.conv1(x))         x = self.pool(x)         x = self.dropout(x)         x = x.contiguous().view(x.size(0), -1)  # Flatten         x = F.relu(self.fc1(x))         x = self.fc2(x)         return torch.log_softmax(x, dim=1)  # Use CrossEntropyLoss, so no softmax here (pyTorch CrossEntropyLoss expects unbounded scores)      def forward_probs(self, x):        x = self.forward(x)       return torch.exp(x) <\/code><\/pre>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u0442\u0430\u043a\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a LIME!<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a13\/4ec\/2db\/a134ec2db0d812924ba11b81827925d9.png\" width=\"1182\" height=\"864\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a13\/4ec\/2db\/a134ec2db0d812924ba11b81827925d9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a13\/4ec\/2db\/a134ec2db0d812924ba11b81827925d9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h2>Step 2. LIME for Time Seris Domain<\/h2>\n<p>\u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 LIME \u2014 \u044d\u0442\u043e <strong>\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 <strong>\u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/strong> $x \\in \\mathbb{R}^d$ ($d$ \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435).<\/p>\n<p>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\xi(x) = \\arg\\min_{g \\in \\mathcal{G}} \\; \\mathcal{L}(f, g, \\pi_x) + \\Omega(g)\" alt=\"\\xi(x) = \\arg\\min_{g \\in \\mathcal{G}} \\; \\mathcal{L}(f, g, \\pi_x) + \\Omega(g)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/079\/5b9\/e09\/0795b9e09611446b90e9189319c246b4.svg\" width=\"283\" height=\"35\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/079\/5b9\/e09\/0795b9e09611446b90e9189319c246b4.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/079\/5b9\/e09\/0795b9e09611446b90e9189319c246b4.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"f\" alt=\"f\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c7\/514\/bdb\/3c7514bdb14e684fc51c991cc0cde2d0.svg\" width=\"11\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c7\/514\/bdb\/3c7514bdb14e684fc51c991cc0cde2d0.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c7\/514\/bdb\/3c7514bdb14e684fc51c991cc0cde2d0.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f (\u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f) \u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"g \\in \\mathcal{G} \" alt=\"g \\in \\mathcal{G} \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0e\/a41\/b62\/a0ea41b6238ffbdb184dec36bb2e8379.svg\" width=\"46\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0e\/a41\/b62\/a0ea41b6238ffbdb184dec36bb2e8379.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0e\/a41\/b62\/a0ea41b6238ffbdb184dec36bb2e8379.svg 781w\" loading=\"lazy\" decode=\"async\"\/>\u2014 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c (\u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f), G \u043a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u0437\u0434\u0435\u0441\u044c \u2014\u00a0\u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\pi_x(z) \" alt=\"\\pi_x(z) \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f72\/790\/ce9\/f72790ce9e03c492ee8c0c53ebdc2620.svg\" width=\"46\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f72\/790\/ce9\/f72790ce9e03c492ee8c0c53ebdc2620.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f72\/790\/ce9\/f72790ce9e03c492ee8c0c53ebdc2620.svg 781w\" loading=\"lazy\" decode=\"async\"\/>\u2014 \u0432\u0435\u0441, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"z\" alt=\"z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/183\/f33\/a0e\/183f33a0e7bbf6c7ad4d7e397e24dc36.svg\" width=\"10\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/183\/f33\/a0e\/183f33a0e7bbf6c7ad4d7e397e24dc36.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/183\/f33\/a0e\/183f33a0e7bbf6c7ad4d7e397e24dc36.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043a <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c36\/be0\/3d4\/c36be03d4d1c92e609a3040cd7ec0475.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c36\/be0\/3d4\/c36be03d4d1c92e609a3040cd7ec0475.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c36\/be0\/3d4\/c36be03d4d1c92e609a3040cd7ec0475.svg 781w\" loading=\"lazy\" decode=\"async\"\/>; \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\pi_x(z) = \\exp(-\\frac{D(x, z)^2}{\\sigma^2})\" alt=\"\\pi_x(z) = \\exp(-\\frac{D(x, z)^2}{\\sigma^2})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e41\/944\/dcd\/e41944dcd631f34755a1428150fe83d3.svg\" width=\"208\" height=\"48\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e41\/944\/dcd\/e41944dcd631f34755a1428150fe83d3.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e41\/944\/dcd\/e41944dcd631f34755a1428150fe83d3.svg 781w\" loading=\"lazy\" decode=\"async\"\/>, \u0433\u0434\u0435 D \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043d\u043e\u0435), <img decoding=\"async\" class=\"formula inline\" source=\"\\sigma\" alt=\"\\sigma\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/499\/761\/7d8\/4997617d869becafd235f22ed6f441b5.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/499\/761\/7d8\/4997617d869becafd235f22ed6f441b5.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/499\/761\/7d8\/4997617d869becafd235f22ed6f441b5.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u0448\u0438\u0440\u0438\u043d\u0430 \u044f\u0434\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p> <img decoding=\"async\" class=\"formula inline\" source=\"\\mathcal{L}(f, g, \\pi_x)\" alt=\"\\mathcal{L}(f, g, \\pi_x)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c64\/fd8\/5e9\/c64fd85e91bc6cbe714be199254855b3.svg\" width=\"87\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c64\/fd8\/5e9\/c64fd85e91bc6cbe714be199254855b3.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c64\/fd8\/5e9\/c64fd85e91bc6cbe714be199254855b3.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c, \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0449\u0430\u044f \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e <img decoding=\"async\" class=\"formula inline\" source=\"g\" alt=\"g\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ebd\/633\/023\/ebd6330237b2f9f1f66d196fe7119a45.svg\" width=\"10\" height=\"17\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ebd\/633\/023\/ebd6330237b2f9f1f66d196fe7119a45.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ebd\/633\/023\/ebd6330237b2f9f1f66d196fe7119a45.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"f\" alt=\"f\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f1\/eee\/35c\/6f1eee35c966332809e416a0b31cde06.svg\" width=\"11\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f1\/eee\/35c\/6f1eee35c966332809e416a0b31cde06.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f1\/eee\/35c\/6f1eee35c966332809e416a0b31cde06.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/126\/0bb\/f28\/1260bbf28d73725a0bd315992a064a92.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/126\/0bb\/f28\/1260bbf28d73725a0bd315992a064a92.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/126\/0bb\/f28\/1260bbf28d73725a0bd315992a064a92.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c MSE;<\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\Omega(g)\" alt=\"\\Omega(g)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b9c\/3c5\/04a\/b9c3c504acd113b36b2e6e68ee1e1de9.svg\" width=\"39\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b9c\/3c5\/04a\/b9c3c504acd113b36b2e6e68ee1e1de9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b9c\/3c5\/04a\/b9c3c504acd113b36b2e6e68ee1e1de9.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0438\u0441\u043b\u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/337\/3b7\/c1a\/3373b7c1a439b2f4372ae6d513154c6d.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/337\/3b7\/c1a\/3373b7c1a439b2f4372ae6d513154c6d.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/337\/3b7\/c1a\/3373b7c1a439b2f4372ae6d513154c6d.svg 781w\" loading=\"lazy\" decode=\"async\"\/> &#8212;\u00a0\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p> \u0422\u043e, \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0440\u044f\u0434\u0443 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0435\u043c\u0433\u0435\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u2014  \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"z_1, \\dots, z_N\" alt=\"z_1, \\dots, z_N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/da9\/52c\/67fda952c2a6bbfefea76d5773d58307.svg\" width=\"86\" height=\"15\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/da9\/52c\/67fda952c2a6bbfefea76d5773d58307.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/da9\/52c\/67fda952c2a6bbfefea76d5773d58307.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0432\u043e\u043a\u0440\u0443\u0433 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a6\/c06\/ab8\/9a6c06ab8a9d5a1c8f601d0f629b48aa.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a6\/c06\/ab8\/9a6c06ab8a9d5a1c8f601d0f629b48aa.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a6\/c06\/ab8\/9a6c06ab8a9d5a1c8f601d0f629b48aa.svg 781w\" loading=\"lazy\" decode=\"async\"\/>;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u2014 <img decoding=\"async\" class=\"formula inline\" source=\"f(z_i)\" alt=\"f(z_i)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e26\/b9e\/8a8\/e26b9e8a8f39dc0dfa68ed0c9ed5c572.svg\" width=\"42\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e26\/b9e\/8a8\/e26b9e8a8f39dc0dfa68ed0c9ed5c572.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e26\/b9e\/8a8\/e26b9e8a8f39dc0dfa68ed0c9ed5c572.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c <img decoding=\"async\" class=\"formula inline\" source=\"g\" alt=\"g\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dc7\/ae8\/3ff\/dc7ae83ffbabf93a1b79e255858c0614.svg\" width=\"10\" height=\"17\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dc7\/ae8\/3ff\/dc7ae83ffbabf93a1b79e255858c0614.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dc7\/ae8\/3ff\/dc7ae83ffbabf93a1b79e255858c0614.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043d\u0430 \u0442\u043e\u0447\u043a\u0430\u0445 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 (\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0435\u0441\u043e\u0432 <img decoding=\"async\" class=\"formula inline\" source=\"\\pi_x(z_i)\" alt=\"\\pi_x(z_i)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c05\/8b3\/fa3\/c058b3fa38b903a7e60e5124bb754e09.svg\" width=\"53\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c05\/8b3\/fa3\/c058b3fa38b903a7e60e5124bb754e09.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c05\/8b3\/fa3\/c058b3fa38b903a7e60e5124bb754e09.svg 781w\" loading=\"lazy\" decode=\"async\"\/>), \u0432\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c;<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043e\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0451 \u043f\u043e \u0448\u0430\u0433\u0430\u043c. <\/p>\n<p><strong>\u0428\u0430\u0433 1. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0438 \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430. \u0423 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 11\u0439. <\/p>\n<pre><code class=\"python\">idx_ecg = 11                         # \u0441hoose interested index from rows instance_ecg = ecg_test_x.iloc[idx_ecg, :].values     # extract the selected instance from the test dataset  plt.figure(figsize=(16, 5)) plt.plot(instance_ecg) plt.title('ECG instance to explain');<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/816\/bac\/20f\/816bac20f5679dcab986b7a8c225fac4.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\" width=\"2630\" height=\"918\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/816\/bac\/20f\/816bac20f5679dcab986b7a8c225fac4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/816\/bac\/20f\/816bac20f5679dcab986b7a8c225fac4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043a\u043b\u0430\u0441\u0441. <\/p>\n<pre><code class=\"python\"># Predict the class of the selected signal by trained model probability_vector = model.forward_probs(torch.Tensor(np.expand_dims(instance_ecg.reshape(1, -1), axis=2)))  print(\"Probability vector of the selected instance:\", probability_vector)  # Probability vector of the selected instance: tensor([[3.3614e-06, 8.0830e-01, 1.9169e-01, 1.8729e-06]],       # grad_fn=&lt;ExpBackward0&gt;)    # class labels class_labels = [0, 1, 2, 3]  predicted_class = torch.argmax(probability_vector).item()  print(\"Available classes:\", class_labels) print(\"Predicted Class for the selected instance:\", predicted_class)  # Available classes: [0, 1, 2, 3] # Predicted Class for the selected instance: 1<\/code><\/pre>\n<p><strong>\u0428\u0430\u0433 2. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432-\u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432.<\/strong> <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434\u043e\u043c &#171;\u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430&#187; \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0438\u0440\u043e\u0434\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u0430.<\/p>\n<p>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u2014 \u043d\u0430\u0440\u0435\u0437\u043a\u043e\u0439 \u0440\u044f\u0434\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u0440\u044f\u0434\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"T\" alt=\"T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/745\/747\/83b\/74574783b911138b4751e6c52dae2122.svg\" width=\"14\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/745\/747\/83b\/74574783b911138b4751e6c52dae2122.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/745\/747\/83b\/74574783b911138b4751e6c52dae2122.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0448\u0430\u0433\u0430\u043c\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"t_0, t_1, \\dots, t_L\" alt=\"t_0, t_1, \\dots, t_L\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b53\/621\/d2d\/b53621d2db9262d676727e95bfabcf75.svg\" width=\"103\" height=\"20\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b53\/621\/d2d\/b53621d2db9262d676727e95bfabcf75.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b53\/621\/d2d\/b53621d2db9262d676727e95bfabcf75.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043c\u044b \u0434\u0435\u043b\u0438\u043c \u0435\u0433\u043e \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"K\" alt=\"K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e5c\/3b6\/cf8\/e5c3b6cf8389906fb8356b53cd7df527.svg\" width=\"18\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e5c\/3b6\/cf8\/e5c3b6cf8389906fb8356b53cd7df527.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e5c\/3b6\/cf8\/e5c3b6cf8389906fb8356b53cd7df527.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"l = \\left\\lfloor \\frac{L}{K} \\right\\rfloor\" alt=\"l = \\left\\lfloor \\frac{L}{K} \\right\\rfloor\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef6\/868\/e1d\/ef6868e1d81bae9abe5c9d6ecf477727.svg\" width=\"80\" height=\"51\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef6\/868\/e1d\/ef6868e1d81bae9abe5c9d6ecf477727.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef6\/868\/e1d\/ef6868e1d81bae9abe5c9d6ecf477727.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb3\/fa1\/6db\/cb3fa16dbeb50657a57dfce1568f9100.svg\" width=\"6\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb3\/fa1\/6db\/cb3fa16dbeb50657a57dfce1568f9100.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb3\/fa1\/6db\/cb3fa16dbeb50657a57dfce1568f9100.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u0434\u043b\u0438\u043d\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0433\u0440\u0430\u043d\u0438\u0446 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\text{Segment}_i = T[t_{i \\cdot l} : t_{(i+1) \\cdot l}], \\quad i = 0, \\dots, K-2\" alt=\"\\text{Segment}_i = T[t_{i \\cdot l} : t_{(i+1) \\cdot l}], \\quad i = 0, \\dots, K-2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/341\/81d\/5e4\/34181d5e473b17f5d567f5a6155c6561.svg\" width=\"384\" height=\"26\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/341\/81d\/5e4\/34181d5e473b17f5d567f5a6155c6561.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/341\/81d\/5e4\/34181d5e473b17f5d567f5a6155c6561.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0413\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c &#171;\u0445\u0432\u043e\u0441\u0442&#187;:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\text{Segment}_{K-1} = T[t_{(K-1) \\cdot l} : t_L]\" alt=\"\\text{Segment}_{K-1} = T[t_{(K-1) \\cdot l} : t_L]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/373\/cf1\/763\/373cf176344e53c80832bda8871bdc06.svg\" width=\"248\" height=\"26\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/373\/cf1\/763\/373cf176344e53c80832bda8871bdc06.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/373\/cf1\/763\/373cf176344e53c80832bda8871bdc06.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u0430 \u0440\u044f\u0434\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"L\" alt=\"L\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d5\/fef\/65a\/3d5fef65ac0428dd4e3c37debc8822ec.svg\" width=\"13\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d5\/fef\/65a\/3d5fef65ac0428dd4e3c37debc8822ec.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d5\/fef\/65a\/3d5fef65ac0428dd4e3c37debc8822ec.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043d\u0435 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"K\" alt=\"K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ce\/437\/445\/2ce437445c546bde7f6bb8863faa9bfa.svg\" width=\"18\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ce\/437\/445\/2ce437445c546bde7f6bb8863faa9bfa.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ce\/437\/445\/2ce437445c546bde7f6bb8863faa9bfa.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043d\u0430\u0446\u0435\u043b\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0442\u043e\u0447\u043a\u0438.<\/p>\n<pre><code class=\"python\">L = len(instance_ecg) # TS length K = 13 # number of slices  l = L \/\/ K # slice width  # Segment start points segment_edges = [i * l for i in range(K)] + [L] # Segment centers  segment_centers = [(segment_edges[i] + segment_edges[i+1]) \/\/ 2 for i in range(K)] # Segment labels segment_labels = [f'{i+1}' for i in range(K)]  # Plot segmented instance plt.figure(figsize=(12, 3)) plt.plot(instance_ecg, label='Original signal')  for i in range(1, K):   plt.axvline(x=i*l, color='r', linestyle='--')  plt.xticks(ticks=segment_centers, labels=segment_labels, fontsize=9) plt.title('Segmented the instance ECG signal') plt.xlabel('Segment index') plt.ylabel('Signal Amplitude') plt.legend() plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90e\/f00\/0e8\/90ef000e80b63fbb7c38e2b0d3dcbba6.png\" alt=\"\u0421\u0438\u0433\u043d\u0430\u043b \u042d\u041a\u0413, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b\" title=\"\u0421\u0438\u0433\u043d\u0430\u043b \u042d\u041a\u0413, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b\" width=\"2116\" height=\"646\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/90e\/f00\/0e8\/90ef000e80b63fbb7c38e2b0d3dcbba6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90e\/f00\/0e8\/90ef000e80b63fbb7c38e2b0d3dcbba6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0438\u0433\u043d\u0430\u043b \u042d\u041a\u0413, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0428\u0430\u0433 3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438.<\/strong><\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u043b\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/60a\/5ca\/870\/60a5ca870c9c5e5fc89c0fb6ed7b7910.svg\" width=\"12\" height=\"13\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/60a\/5ca\/870\/60a5ca870c9c5e5fc89c0fb6ed7b7910.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/60a\/5ca\/870\/60a5ca870c9c5e5fc89c0fb6ed7b7910.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/26e\/2d8\/c1e\/26e2d8c1e6292c1ca9a51a9f845cdfbc.svg\" width=\"11\" height=\"18\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/26e\/2d8\/c1e\/26e2d8c1e6292c1ca9a51a9f845cdfbc.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/26e\/2d8\/c1e\/26e2d8c1e6292c1ca9a51a9f845cdfbc.svg 781w\" loading=\"lazy\" decode=\"async\"\/>, \u0438 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u043d\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>&#171;mean&#187; \u2014 \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p>&#171;noise&#187; \u2014 \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0441\u043e \u0441\u0440\u0435\u0434\u043d\u0438\u043c \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p>&#171;zero&#187; \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u0437\u0430\u043c\u0435\u043d\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u043a\u0443\u0441\u043e\u0447\u043a\u0430\u043c <img decoding=\"async\" class=\"formula inline\" source=\"Segment_i=T[t_{il}, t_{(i_1)l}]\" alt=\"Segment_i=T[t_{il}, t_{(i_1)l}]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/488\/b4d\/d00\/488b4dd00b1b9b6f3876ed9738b6e8ab.svg\" width=\"195\" height=\"26\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/488\/b4d\/d00\/488b4dd00b1b9b6f3876ed9738b6e8ab.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/488\/b4d\/d00\/488b4dd00b1b9b6f3876ed9738b6e8ab.svg 781w\" loading=\"lazy\" decode=\"async\"\/>. <\/p>\n<pre><code class=\"python\"># Segment slices function def split_series(series, num_slices):      length = series.shape[0]     slice_len = int(np.ceil(length \/ num_slices))     return [(i * slice_len, min((i + 1) * slice_len, length)) for i in range(num_slices)]  slices = split_series(instance_ecg, 13)   def generate_perturbations(series, slices, num_samples, replacement=\"mean\", pertub_power=0.2):     perturbed = []     masks = []     for _ in range(num_samples):         mask = np.ones(len(slices), dtype=int)         idx_to_perub = np.random.choice(len(slices), size=int(len(slices)*pertub_power), replace=False) # \u043c\u0435\u043d\u044f\u0442\u044c \u0437\u0430 \u0440\u0430\u0437 \u0431\u0443\u0434\u0435\u043c pertub_power% \u043e\u0442 \u0432\u0441\u0435\u0445 \u043a\u0443\u0441\u043e\u0447\u043a\u043e\u0432         mask[idx_to_perub] = 0          copy = series.copy()         for i in idx_to_perub:             start, end = slices[i]             if replacement == \"mean\":                 copy[start:end] = np.mean(series[start:end])             elif replacement == \"zero\":                 copy[start:end] = 0             elif replacement == \"noise\":                 copy[start:end] = np.random.normal(series[start:end].mean(), series[start:end].std(), end - start) #.reshape(1, -1)         perturbed.append(copy)         masks.append(mask)      return np.array(perturbed), np.array(masks)<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/361\/4d7\/5af\/3614d75afd02ac45668421ab558f0778.png\" alt=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u0437\u0430\u043c\u0435\u043d\u044b &quot;noise&quot;\" title=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u0437\u0430\u043c\u0435\u043d\u044b &quot;noise&quot;\" width=\"2708\" height=\"756\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/361\/4d7\/5af\/3614d75afd02ac45668421ab558f0778.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/361\/4d7\/5af\/3614d75afd02ac45668421ab558f0778.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u0437\u0430\u043c\u0435\u043d\u044b &#171;noise&#187;<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c\u0438 <strong>\u043c\u0430\u0441\u043a\u0438 (masks)<\/strong>. \u0414\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0440\u0430\u0432\u0435\u043d 1, \u0435\u0441\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d, \u0438 0, \u0435\u0441\u043b\u0438 \u043e\u043d \u0431\u044b\u043b \u0438\u0441\u043a\u0430\u0436\u0435\u043d. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LIME \u0434\u043b\u044f [<a href=\"https:\/\/christophm.github.io\/interpretable-ml-book\/lime.html?utm_source=chatgpt.com\" rel=\"noopener noreferrer nofollow\">\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a>]. <\/p>\n<p><strong>\u0428\u0430\u0433 4. \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438.<\/strong> <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u043c, \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f <em>\u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438<\/em> \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044c-\u0447\u0435\u0440\u043d\u044b\u0439 \u044f\u0449\u0438\u043a. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u0442\u0430\u043a\u0438\u0435 \u0436\u0435, \u043a\u0430\u043a\u0438\u043c\u0438 \u0438\u0445 \u0434\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.<\/p>\n<p>\u041e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u043c <strong><em>\u043d\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044f\u0445<\/em><\/strong> \u0438 \u0432 <strong><em>\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u044e<\/em><\/strong> \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0447\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u043e\u043d \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443, \u0442\u0435\u043c \u0432\u0435\u0441\u043e\u043c\u0435\u0435 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bc1\/2a9\/0d0\/bc12a90d04d431501058b9c9939669ed.png\" alt=\"\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u0438 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b\" title=\"\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u0438 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b\" width=\"2068\" height=\"920\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bc1\/2a9\/0d0\/bc12a90d04d431501058b9c9939669ed.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bc1\/2a9\/0d0\/bc12a90d04d431501058b9c9939669ed.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u0438 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<pre><code class=\"python\"># Probabilities for all observations from the neighborhood  probs = np.exp(model(np.expand_dims(pertub, axis=2)).detach().numpy())  # Calculate the distances  distances = cosine_distances(pertub, instance_ecg.reshape(1, -1)).ravel()<\/code><\/pre>\n<pre><code class=\"python\"> def train_lime_ridge(perturbations, predictions, distances, target_class, alpha=1.0, kernel_width=0.25):     \"\"\"     Train interpretable model (Ridge)      Parameters:         perturbations (np.array): features [N x K], mask         predictions (np.array): \u043c\u0430\u0442\u0440\u0438\u0446\u0430 [N x C], \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432         distances (np.array): \u0434\u043b\u0438\u043d\u0430 N, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0430         target_class (int): \u0438\u043d\u0434\u0435\u043a\u0441 \u043a\u043b\u0430\u0441\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f         alpha (float): \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u0438 Ridge         kernel_width (float): \u0448\u0438\u0440\u0438\u043d\u0430 \u044f\u0434\u0440\u0430 \u0434\u043b\u044f \u0432\u0435\u0441\u043e\u0432      Returns:         (weights, intercept, score): \u043a\u043e\u044d\u0444. \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0447\u043b\u0435\u043d, R^2 \u043d\u0430 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435     \"\"\"     # LIME exponential kernel     weights = np.exp(- (distances ** 2) \/ (kernel_width ** 2))      # target     y = predictions[:, target_class]      # simple Ridge-regression train     model = Ridge(alpha=alpha)     model.fit(perturbations, y, sample_weight=weights)      return model.coef_, model.intercept_, model.score(perturbations, y, sample_weight=weights)  w, b, score = train_lime_ridge(masks, probs, distances, 0, alpha=.8)<\/code><\/pre>\n<p>B \u0442\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0432\u0435\u0441\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432. \u041a\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d \u0432 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9c9\/138\/e9c\/9c9138e9cccd084cd8732a1c5d27bfc9.png\" alt=\"\u0412\u0435\u0441\u0430 LIME \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\" title=\"\u0412\u0435\u0441\u0430 LIME \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\" width=\"2668\" height=\"802\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9c9\/138\/e9c\/9c9138e9cccd084cd8732a1c5d27bfc9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9c9\/138\/e9c\/9c9138e9cccd084cd8732a1c5d27bfc9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u0435\u0441\u0430 LIME \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/299\/b55\/b6e\/299b55b6e80e975814fb9dca5fd8cf29.png\" alt=\"\u0412\u0435\u0441\u0430 LIME \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u043e\u043b\u0431\u0447\u0430\u0442\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\" title=\"\u0412\u0435\u0441\u0430 LIME \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u043e\u043b\u0431\u0447\u0430\u0442\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\" width=\"2098\" height=\"1192\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/299\/b55\/b6e\/299b55b6e80e975814fb9dca5fd8cf29.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/299\/b55\/b6e\/299b55b6e80e975814fb9dca5fd8cf29.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u0435\u0441\u0430 LIME \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u043e\u043b\u0431\u0447\u0430\u0442\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0413\u043e\u0442\u043e\u0432\u043e! \u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0434\u0440\u0443\u0437\u044c\u044f! <\/strong><\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <strong>LIME<\/strong> \u043a \u0437\u0430\u0434\u0430\u0447\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u042d\u041a\u0413-\u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u042d\u041a\u0413;<\/p>\n<\/li>\n<li>\n<p> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u043a \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0442\u0430\u043a \u0438 \u0432 \u0432\u0438\u0434\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u0435\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>LIME \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043d\u0430\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0435\u0451 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435. <\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, LIME \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043c\u043e\u0449\u043d\u044b\u043c \u0438 \u0433\u0438\u0431\u043a\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0438\u0441\u043b\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432) \u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 &#171;\u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438&#187; (\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439  \u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0448\u0430\u0442\u043d\u0443\u0442\u0441\u044f \u0432\u0435\u0441\u0430).<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430:<\/p>\n<p>[1](<a href=\"https:\/\/github.com\/mdhabibi\/LIME-for-Time-Series\/tree\/main?tab=readme-ov-file\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/mdhabibi\/LIME-for-Time-Series\/tree\/main?tab=readme-ov-file<\/a>)<br \/>[2](<a href=\"https:\/\/github.com\/emanuel-metzenthin\/Lime-For-Time\/tree\/master\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/emanuel-metzenthin\/Lime-For-Time\/tree\/master<\/a>)<br \/>[3](<a href=\"https:\/\/arxiv.org\/abs\/1602.04938\" rel=\"noopener noreferrer nofollow\">https:\/\/arxiv.org\/abs\/1602.04938<\/a>). <\/p>\n<p><strong>\u041d\u043e\u0432\u044b\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u044b:<\/strong><\/p>\n<p>\u0417\u0430 \u043d\u0438\u043c\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0436\u0434\u0443 \u0432\u0430\u0441 \u0432 [<a href=\"https:\/\/t.me\/jdata_blog\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u0442\u0430-\u0431\u043b\u043e\u0433\u0435<\/a>]! <br \/>\u041e\u0431\u0435\u0449\u0430\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0447\u0430\u0449\u0435! \ud83d\ude42<\/p>\n<p>\u0421\u043e \u0432\u0441\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u043e\u0431\u0440\u044b\u043c, <\/p>\n<p>\u0412\u0430\u0448 \u0414\u0430\u0442\u0430-\u0430\u0432\u0442\u043e\u0440!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/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\/articles\/926082\/\"> https:\/\/habr.com\/ru\/articles\/926082\/<\/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<p><strong>LIME (Local Interpretable Model-Agnostic Explanations)<\/strong> \u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043c\u043e\u0434\u0435\u0442 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0434\u0435\u0435 \u2014 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043e\u0446\u0435\u043d\u0449\u0438\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438) \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u2014 \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439\/\u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0435\u0439.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c LIME \u043c\u043e\u0436\u043d\u043e \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 [<a href=\"https:\/\/github.com\/marcotcr\/lime\" rel=\"noopener noreferrer nofollow\">lime<\/a>](<a href=\"https:\/\/github.com\/marcotcr\/lime\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/marcotcr\/lime<\/a>). \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 LIME \u043a, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0440\u044f\u0434\u0430\u043c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. <\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c<em>, <\/em>\u0430 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438: \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0436\u0435\u043d \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441 20-\u0439 \u043f\u043e 30-\u044e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0443?<\/p>\n<\/li>\n<li>\n<p> \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c: \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043d\u0430 \u0448\u0443\u043c, \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435 lime \u0434\u043b\u044f TimeSeries \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c. \u0418 \u0432 \u044d\u0442\u043e\u043c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e! \ud83d\ude42<\/p>\n<p>\u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0432\u044b:<\/p>\n<ul>\n<li>\n<p>\u0423\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c LIME \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u042d\u041a\u0413;<\/p>\n<\/li>\n<li>\n<p> \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0443\u0447\u0438\u0442\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u042d\u041a\u0413 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 <strong>PyTorch + Scikit-learn<\/strong>. \u0412\u0435\u0441\u044c \u043a\u043e\u0434, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431. <\/p>\n<h2>Step 0. Loading and Preprocessing the Dataset<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e \u042d\u041a\u0413. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0432 \u043d\u0430\u0448\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u042d\u041a\u0413 \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0443\u0441\u043e\u0432\u044b\u0439 \u0440\u0438\u0442\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0440\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0440\u0438\u0442\u043c\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0416\u0435\u043b\u0443\u0434\u043e\u0447\u043a\u043e\u0432\u0430\u044f \u0442\u0430\u0445\u0438\u043a\u0430\u0440\u0434\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0440\u0434\u0435\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u0441\u0442\u0443\u043f. <\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442 [<a href=\"https:\/\/iopscience.iop.org\/article\/10.1088\/1361-6579\/abc960\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>].<\/p>\n<pre><code class=\"python\"># Path to the dataset file_path_train = 'https:\/\/github.com\/SadSabrina\/XAI-open_materials\/blob\/main\/LIME_for_Time_Series\/data\/ecg_train.csv?raw=True' file_path_test = 'https:\/\/github.com\/SadSabrina\/XAI-open_materials\/blob\/main\/LIME_for_Time_Series\/data\/ecg_test.csv?raw=True'  # Training dataset ecg_train = pd.read_csv(file_path_train, header=None) # Testing dataset ecg_test = pd.read_csv(file_path_test, header=None)<\/code><\/pre>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0448\u0430\u0433\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0438, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u0431\u0435\u0440\u0435\u043c \u0438\u0445. \u0417\u0430\u0442\u0435\u043c, \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 X \u0438 y, \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0438 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0448\u0430\u0433\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435, \u043d\u0430 \u043d\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c. <\/p>\n<h2>Step 1. Building a CNN Model<\/h2>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435, \u043e\u0444\u043e\u0440\u043c\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0432 \u0441\u0438\u043b\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0446\u0435\u043b\u044c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u2014 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u043d\u044b\u0445 \u044f\u0449\u0438\u043a\u043e\u0432 \u2014 \u0440\u0435\u0448\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<pre><code class=\"python\">class ECGCNN(nn.Module):     def __init__(self, input_shape, num_classes):         \"\"\"         input_shape: tuple time_steps, channels (exmaple 140, 1)         num_classes: number of output classes         \"\"\"         super(ECGCNN, self).__init__()         time_steps, channels = input_shape          self.conv1 = nn.Conv1d(in_channels=channels, out_channels=64, kernel_size=3)         self.pool = nn.MaxPool1d(kernel_size=2)         self.dropout = nn.Dropout(0.5)          # Compute output length after conv and pooling         conv_output_length = time_steps - 2  # kernel_size=3 reduces by 2         pool_output_length = conv_output_length \/\/ 2  # MaxPool1d(pool_size=2)          self.flattened_size = 64 * pool_output_length         self.fc1 = nn.Linear(self.flattened_size, 100)         self.fc2 = nn.Linear(100, num_classes)      def forward(self, x):         \"\"\"         x: Tensor of shape (batch_size, time_steps, channels)         \"\"\"         if type(x) != torch.Tensor:           x = torch.Tensor(x)          x = x.permute(0, 2, 1)  # Change to (batch_size, channels, time_steps)         x = F.relu(self.conv1(x))         x = self.pool(x)         x = self.dropout(x)         x = x.contiguous().view(x.size(0), -1)  # Flatten         x = F.relu(self.fc1(x))         x = self.fc2(x)         return torch.log_softmax(x, dim=1)  # Use CrossEntropyLoss, so no softmax here (pyTorch CrossEntropyLoss expects unbounded scores)      def forward_probs(self, x):        x = self.forward(x)       return torch.exp(x) <\/code><\/pre>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u0442\u0430\u043a\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a LIME!<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>Step 2. LIME for Time Seris Domain<\/h2>\n<p>\u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 LIME \u2014 \u044d\u0442\u043e <strong>\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 <strong>\u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/strong> $x \\in \\mathbb{R}^d$ ($d$ \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435).<\/p>\n<p>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p>\u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p> \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f (\u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f) \u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u2014 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c (\u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f), G \u043a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u0437\u0434\u0435\u0441\u044c \u2014\u00a0\u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u2014 \u0432\u0435\u0441, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430  \u043a ; \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a:<\/p>\n<p>, \u0433\u0434\u0435 D \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043d\u043e\u0435),  \u2014 \u0448\u0438\u0440\u0438\u043d\u0430 \u044f\u0434\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>  \u2014 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c, \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0449\u0430\u044f \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e  \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442  \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438  \u2014 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c MSE;<\/p>\n<\/li>\n<li>\n<p> \u2014 \u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0438\u0441\u043b\u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435  &#8212;\u00a0\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p> \u0422\u043e, \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0440\u044f\u0434\u0443 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0435\u043c\u0433\u0435\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u2014  \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439  \u0432\u043e\u043a\u0440\u0443\u0433 ;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u2014  \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c  \u043d\u0430 \u0442\u043e\u0447\u043a\u0430\u0445 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 (\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0435\u0441\u043e\u0432 ), \u0432\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c;<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043e\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0451 \u043f\u043e \u0448\u0430\u0433\u0430\u043c. <\/p>\n<p><strong>\u0428\u0430\u0433 1. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0438 \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430. \u0423 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 11\u0439. <\/p>\n<pre><code class=\"python\">idx_ecg = 11                         # \u0441hoose interested index from rows instance_ecg = ecg_test_x.iloc[idx_ecg, :].values     # extract the selected instance from the test dataset  plt.figure(figsize=(16, 5)) plt.plot(instance_ecg) plt.title('ECG instance to explain');<\/code><\/pre>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043a\u043b\u0430\u0441\u0441. <\/p>\n<pre><code class=\"python\"># Predict the class of the selected signal by trained model probability_vector = model.forward_probs(torch.Tensor(np.expand_dims(instance_ecg.reshape(1, -1), axis=2)))  print(\"Probability vector of the selected instance:\", probability_vector)  # Probability vector of the selected instance: tensor([[3.3614e-06, 8.0830e-01, 1.9169e-01, 1.8729e-06]],       # grad_fn=&lt;ExpBackward0&gt;)    # class labels class_labels = [0, 1, 2, 3]  predicted_class = torch.argmax(probability_vector).item()  print(\"Available classes:\", class_labels) print(\"Predicted Class for the selected instance:\", predicted_class)  # Available classes: [0, 1, 2, 3] # Predicted Class for the selected instance: 1<\/code><\/pre>\n<p><strong>\u0428\u0430\u0433 2. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432-\u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432.<\/strong> <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434\u043e\u043c &#171;\u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430&#187; \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0438\u0440\u043e\u0434\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u0430.<\/p>\n<p>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u2014 \u043d\u0430\u0440\u0435\u0437\u043a\u043e\u0439 \u0440\u044f\u0434\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0441\u043e\u0447\u043a\u0438. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u0440\u044f\u0434\u0430  \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0448\u0430\u0433\u0430\u043c\u0438  \u043c\u044b \u0434\u0435\u043b\u0438\u043c \u0435\u0433\u043e \u043d\u0430  \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b:<\/p>\n<\/p>\n<p>\u0433\u0434\u0435  \u2014 \u0434\u043b\u0438\u043d\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0433\u0440\u0430\u043d\u0438\u0446 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<\/p>\n<p>\u0413\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c &#171;\u0445\u0432\u043e\u0441\u0442&#187;:<\/p>\n<p>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u0430 \u0440\u044f\u0434\u0430  \u043d\u0435 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430  \u043d\u0430\u0446\u0435\u043b\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0442\u043e\u0447\u043a\u0438.<\/p>\n<pre><code class=\"python\">L = len(instance_ecg) # TS length K = 13 # number of slices  l = L \/\/ K # slice width  # Segment start points segment_edges = [i * l for i in range(K)] + [L] # Segment centers  segment_centers = [(segment_edges[i] + segment_edges[i+1]) \/\/ 2 for i in range(K)] # Segment labels segment_labels = [f'{i+1}' for i in range(K)]  # Plot segmented instance plt.figure(figsize=(12, 3)) plt.plot(instance_ecg, label='Original signal')  for i in range(1, K):   plt.axvline(x=i*l, color='r', linestyle='--')  plt.xticks(ticks=segment_centers, labels=segment_labels, fontsize=9) plt.title('Segmented the instance ECG signal') plt.xlabel('Segment index') plt.ylabel('Signal Amplitude') plt.legend() plt.show()<\/code><\/pre>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0438\u0433\u043d\u0430\u043b \u042d\u041a\u0413, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0428\u0430\u0433 3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438.<\/strong><\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u043b\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f  \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 , \u0438 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u043d\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>&#171;mean&#187; \u2014 \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p>&#171;noise&#187; \u2014 \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0441\u043e \u0441\u0440\u0435\u0434\u043d\u0438\u043c \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p>&#171;zero&#187; \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u0437\u0430\u043c\u0435\u043d\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u043a\u0443\u0441\u043e\u0447\u043a\u0430\u043c . <\/p>\n<pre><code class=\"python\"># Segment slices function def split_series(series, num_slices):      length = series.shape[0]     slice_len = int(np.ceil(length \/ num_slices))     return [(i * slice_len, min((i + 1) * slice_len, length)) for i in range(num_slices)]  slices = split_series(instance_ecg, 13)   def generate_perturbations(series, slices, num_samples, replacement=\"mean\", pertub_power=0.2):     perturbed = []     masks = []     for _ in range(num_samples):         mask = np.ones(len(slices), dtype=int)         idx_to_perub = np.random.choice(len(slices), size=int(len(slices)*pertub_power), replace=False) # \u043c\u0435\u043d\u044f\u0442\u044c \u0437\u0430 \u0440\u0430\u0437 \u0431\u0443\u0434\u0435\u043c pertub_power% \u043e\u0442 \u0432\u0441\u0435\u0445 \u043a\u0443\u0441\u043e\u0447\u043a\u043e\u0432         mask[idx_to_perub] = 0          copy = series.copy()         for i in idx_to_perub:             start, end = slices[i]             if replacement == \"mean\":                 copy[start:end] = np.mean(series[start:end])             elif replacement == \"zero\":                 copy[start:end] = 0             elif replacement == \"noise\":                 copy[start:end] = np.random.normal(series[start:end].mean(), series[start:end].std(), end - start) #.reshape(1, -1)         perturbed.append(copy)         masks.append(mask)      return np.array(perturbed), np.array(masks)<\/code><\/pre>\n<figure class=\"full-width\">\n<div><figcaption>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0438\u0437 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u0437\u0430\u043c\u0435\u043d\u044b &#171;noise&#187;<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c\u0438 <strong>\u043c\u0430\u0441\u043a\u0438 (masks)<\/strong>. \u0414\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0440\u0430\u0432\u0435\u043d 1, \u0435\u0441\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d, \u0438 0, \u0435\u0441\u043b\u0438 \u043e\u043d \u0431\u044b\u043b \u0438\u0441\u043a\u0430\u0436\u0435\u043d. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LIME \u0434\u043b\u044f [<a href=\"https:\/\/christophm.github.io\/interpretable-ml-book\/lime.html?utm_source=chatgpt.com\" rel=\"noopener noreferrer nofollow\">\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/a>]. <\/p>\n<p><strong>\u0428\u0430\u0433 4.<\/strong><\/p>\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-466515","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/466515","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=466515"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/466515\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=466515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=466515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=466515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}