Дэвид Хэнд "Темные данные. Практическое руководство по принятию правильных решений в мире недостающих данных"

grade 4,3 - Рейтинг книги по мнению 50+ читателей Рунета

Человечество научилось собирать, обрабатывать и использовать в науке, бизнесе и повседневной жизни огромные массивы данных. Но что делать с данными, которых у нас нет? Допустимо ли игнорировать то, чего мы не замечаем? Британский статистик Дэвид Хэнд считает, что это по меньшей мере недальновидно, а порой – крайне опасно. В своей книге он выделяет 15 влияющих на наши решения и действия видов данных, которые остаются в тени. Например, речь идет об учете сигналов бедствия, которые могли бы подать жители бедных районов, если бы у них были смартфоны, результатах медицинского исследования, которые намеренно утаили или случайно исказили, или данных, ставших «темными» из-за плохого набора критериев для включения в выборку. Хэнд также рассказывает о том, какие меры могут сгладить эффект «темных данных» и как их можно обратить себе на пользу. Книга будет интересна широкому кругу читателей, интересующихся дата-сайенс, программированием и статистикой.

date_range Год издания :

foundation Издательство :Альпина Диджитал

person Автор :

workspaces ISBN :9785961458930

child_care Возрастное ограничение : 12

update Дата обновления : 14.06.2023

Темные данные. Практическое руководство по принятию правильных решений в мире недостающих данных
Дэвид Хэнд

Человечество научилось собирать, обрабатывать и использовать в науке, бизнесе и повседневной жизни огромные массивы данных. Но что делать с данными, которых у нас нет? Допустимо ли игнорировать то, чего мы не замечаем? Британский статистик Дэвид Хэнд считает, что это по меньшей мере недальновидно, а порой – крайне опасно. В своей книге он выделяет 15 влияющих на наши решения и действия видов данных, которые остаются в тени. Например, речь идет об учете сигналов бедствия, которые могли бы подать жители бедных районов, если бы у них были смартфоны, результатах медицинского исследования, которые намеренно утаили или случайно исказили, или данных, ставших «темными» из-за плохого набора критериев для включения в выборку. Хэнд также рассказывает о том, какие меры могут сгладить эффект «темных данных» и как их можно обратить себе на пользу. Книга будет интересна широкому кругу читателей, интересующихся дата-сайенс, программированием и статистикой.

Дэвид Хэнд

Темные данные. Практическое руководство по принятию правильных решений в мире недостающих данных




Переводчик М. Белоголовский

Редактор В. Ионов

Главный редактор С. Турко

Руководитель проекта А. Василенко

Корректоры Е. Аксёнова, А. Кондратова

Компьютерная верстка К. Свищёвв

Художественное оформление и макет Ю. Буга

© 2020 by David J. Hand

This edition published by arrangement with the Science Factory, Louisa Pritchard Associates and The Van Lear Agency LLC.

© Издание на русском языке, перевод, оформление. ООО «Альпина Паблишер», 2021

Все права защищены. Данная электронная книга предназначена исключительно для частного использования в личных (некоммерческих) целях. Электронная книга, ее части, фрагменты и элементы, включая текст, изображения и иное, не подлежат копированию и любому другому использованию без разрешения правообладателя. В частности, запрещено такое использование, в результате которого электронная книга, ее часть, фрагмент или элемент станут доступными ограниченному или неопределенному кругу лиц, в том числе посредством сети интернет, независимо от того, будет предоставляться доступ за плату или безвозмездно.

Копирование, воспроизведение и иное использование электронной книги, ее частей, фрагментов и элементов, выходящее за пределы частного использования в личных (некоммерческих) целях, без согласия правообладателя является незаконным и влечет уголовную, административную и гражданскую ответственность.

?

Посвящается Шелли

Предисловие

Перед вами необычная книга. Почти все, что издается на эту тему – будь то популярная литература о больших или открытых данных, обработке данных или пособия по статистическому анализу, – основывается на том, что у вас уже есть. Речь идет об информации, хранящейся в компьютере, ящиках рабочего стола или аудио-, видеозаписях вашего смартфона. Но эта книга совсем о другом. Она о данных, которых у вас нет. Возможно, вы пытаетесь получить их прямо сейчас или когда-то безуспешно пытались сделать это, а может быть, ошибочно полагаете, что они у вас имеются. Как бы то ни было, речь пойдет о данных, которых у вас нет.

Я утверждаю и далее продемонстрирую это на многих примерах, что отсутствующие данные важны не менее тех, которыми мы располагаем. Вы сможете сами убедиться, что неизвестные нам данные являются причиной многих заблуждений, порой имеющих катастрофические последствия. Я покажу, как и почему это происходит. Затем я расскажу, как этого можно избежать – на что именно стоит обращать внимание, чтобы обойти неприятности. А в завершение, когда вы поймете, как возникают темные данные и как они создают нам проблемы, я покажу, как с их помощью перевернуть с ног на голову традиционное представление об анализе данных и, если вы достаточно проницательны, глубже вникнуть в свою область, улучшить процесс принятия решений и выбора действий.

Мое собственное понимание темных данных развивалось постепенно, на протяжении всей карьеры. Я благодарю всех, кто подкидывал мне проблемы, которые, как я постепенно осознал, были не чем иным, как проблемами темных данных. Я выражаю признательность всем, кто вместе со мной искал способы их решения. Сферы, где возникали эти проблемы, варьировались от медицинских исследований и фармацевтической промышленности до государственной и социальной политики, финансового сектора и производства – ни одна сфера человеческой деятельности не свободна от рисков, которые несут с собой темные данные.

Отдельно хочу поблагодарить тех, кто любезно согласился пожертвовать своим временем, чтобы прочитать рукопись этой книги, а именно Кристофороса Анагностопулоса, Нила Ченнона, Найла Адамса и трех анонимных читателей от издательства. Они помогли мне избежать неловкости перед вами, сократив число допущенных ошибок. Питер Таллак, мой агент, помог найти идеального издателя для этой работы, любезно давал мне советы и направлял работу над книгой в целом. Мой редактор из издательства Princeton University Press Ингрид Гнерлих была мудрым и ценным гидом в вопросах оформления проекта. Наконец, я особенно признателен своей жене профессору Шелли Ченнон, за ее вдумчивую критику моих рукописей. Благодаря ее вкладу книга стала значительно лучше.

    Имперский колледж, Лондон

Часть I

Темные данные

Происхождение и последствия

Глава 1

Темные данные

Незримая сила, которая формирует наш мир

Призрак данных

Как-то во время прогулки я встретил странного пожилого человека, который что-то высыпал на пешеходную дорожку примерно через каждые 15 м. Я не смог сдержать любопытства и поинтересовался, что это он такое делает.

– Рассыпаю слоновий порошок, – совершенно серьезно ответил он. – Слоны не выносят его запах, поэтому держатся подальше.

– Постойте, но в наших краях нет слонов, – улыбнулся я.

– Вот именно! – воскликнул он. – Это очень эффективное средство.

Этот забавный случай служит хорошим прологом для вещей куда более серьезных, о которых я собираюсь рассказать.

Каждый год корь убивает почти 100 000 человек. Один из 500 заболевших умирает от осложнений, многие страдают от необратимой потери слуха или от поражения головного мозга. К счастью, для Соединенных Штатов это редкое заболевание – например, в 1999 г. было зарегистрировано всего 99 случаев. Однако внезапная вспышка кори в январе 2019 г. привела к тому, что в штате Вашингтон была объявлена чрезвычайная ситуация. Некоторые штаты также сообщили о резком увеличении числа случаев заражения корью[1 - https://blog.uvahealth.com/2019/01/30/measles-outbreaks/ (https://blog.uvahealth.com/2019/01/30/measles-outbreaks/), accessed 16 April 2019.]. Подобное отмечалось и в других местах. На Украине в середине февраля 2019 г. число заразившихся превысило 21 000[2 - http://outbreaknewstoday.com/measles-outbreak-ukraine-21000-cases-2019/ (http://outbreaknewstoday.com/measles-outbreak-ukraine-21000-cases-2019/), accessed 16 April 2019.]. В Европе в 2017 г. было отмечено 25 863 случая, а в 2018 г. – уже более 82 000[3 - https://www.theglobeandmail.com/canada/article-canada-could-see-large-amount-of-measles-outbreaks-health-experts/ (https://www.theglobeandmail.com/canada/article-canada-could-see-large-amount-of-measles-outbreaks-health-experts/), accessed 16 April 2019.]. С 1 января 2016 г. по конец марта 2017 г. в Румынии зарегистрировано более 4000 случаев заражения и 18 летальных исходов.

Корь – коварное заболевание, распространяющееся незаметно, поскольку симптомы проявляются лишь через несколько недель после инфицирования. Болезнь поражает организм намного раньше, чем обнаруживаются ее признаки.

Это не означает, что корь нельзя предотвратить. Простая вакцинация способна иммунизировать организм, эффективно снижая риск заражения. И, действительно, национальные программы вакцинации, подобные тем, которые проводились в Соединенных Штатах, доказали свой успех. В результате большинство родителей в странах, где осуществляются такие программы, никогда не видели и тем более не испытывали на себе ужасных последствий этого заболевания.

Именно поэтому, когда родителям рекомендуют делать детям прививку от кори – заболевания, которого они и в глаза не видели, которым не болели ни их друзья, ни соседи и которое Центр по контролю и профилактике заболеваний признал неэндемичным для Соединенных Штатов, – они принимают такой совет с изрядной долей скепсиса.

Вакцинировать от того, чего вроде бы нет? Это то же самое, что использовать слоновий порошок.

Правда, в отличие от слонов, риск заражения все-таки существует, причем такой же реальный, как и раньше. Просто информация и данные, которые нужны родителям для принятия решений, отсутствуют, и риски становятся неочевидными.

Для многочисленных видов отсутствующих данных я использую обобщающий термин «темные данные». Темные данные скрыты от нас, и этот факт означает, что мы рискуем недооценить опасность, сделать неправильный вывод и принять неверное решение. Иначе говоря, наше неведение становится причиной ошибок.

Понятие «темные данные» возникло из аналогии с другим, физическим, термином – темной материей. Около 27 % Вселенной состоит из этого таинственного вещества, которое не взаимодействует со светом или каким-либо другим электромагнитным излучением и потому остается невидимым. Поскольку темная материя не видна, когда-то астрономы не подозревали о ее существовании. Но затем наблюдения за вращением галактик показали, что звезды более удаленные от центра движутся ничуть не медленнее звезд, расположенных ближе к центру галактики, что противоречит нашему пониманию гравитации. Эта аномалия вращения галактик на сегодняшний день объясняется предположением, что галактики имеют более значительную массу, чем та, о которой мы можем судить по звездам и другим видимым в телескопы объектам. Поскольку эта дополнительная масса не видна, ее назвали темной материей. И она может быть весьма значительной: согласно оценкам, наша галактика Млечный Путь содержит в 10 раз больше темной материи, чем обычной.

Темные данные ведут себя аналогично темной материи: мы не видим их, они не обнаруживаются, но все же способны оказывать существенное влияние на наши выводы, решения и действия. И, как я покажу на дальнейших примерах, если не осознать саму вероятность существования чего-то неизвестного, то последствия такой слепоты могут быть катастрофическими и даже фатальными.

Цель этой книги – исследовать, как и почему возникают темные данные. Мы рассмотрим различные виды темных данных, проследим, что приводит к их появлению, и выясним, как не допустить этого. Мы разберемся с тем, какие меры имеет смысл предпринимать, когда становится ясно, что темные данные все же имеются. А еще мы посмотрим, как этими данными, несмотря на их отсутствие, можно воспользоваться. Хотя это кажется странным, даже парадоксальным, но мы можем обернуть наше незнание себе во благо, учась принимать более правильные решения и повышая эффективность своих действий. На практике разумное использование неизвестности означает более крепкое здоровье, дополнительные деньги и меньшие риски. Я вовсе не имею в виду сокрытие информации от других (хотя, как мы увидим, намеренно скрытые сведения – это весьма распространенный вид темных данных). Речь идет о гораздо более тонких методах, которые могут стать выгодными для всех.

Темные данные принимают различные формы, возникают по разным причинам, и эта книга среди прочего содержит классификацию типов темных данных, обозначаемых как DD-тип x. Всего я насчитал 15 таких DD-типов, но не берусь утверждать, что эта классификация является исчерпывающей. Учитывая большое разнообразие причин, по которым возникают темные данные, не исключено, что полная классификация просто невозможна. Более того, многие образцы темных данных соединяют в себе несколько DD-типов – они могут действовать независимо друг от друга, а могут проявлять некое подобие синергии, усиливая негативный эффект. Но, несмотря на это, обладание информацией о DD-типах и изучение темных данных на конкретных примерах помогает вовремя выявить проблему и защититься от возможных угроз. Список DD-типов, упорядоченных по сходству, вы найдете в конце этой главы, а в главе 10 я опишу их более подробно. В книге есть указания на то, где можно встретить примеры того или иного типа, однако я намеренно не пытался перечислить все возможные места существования темных данных – в этой книге такой подход был бы излишним.

Давайте перейдем к одному из таких примеров. В медицине понятие «травма» означает повреждение с возможными долговременными последствиями. Травмы являются одной из наиболее серьезных причин сокращения продолжительности жизни и инвалидности, а также самой распространенной причиной гибели людей в возрасте до 40 лет. Компьютерная база данных TARN является самой большой медицинской базой данных о травмах в Европе. В нее стекаются данные о полученных травмах из более чем 200 больниц, в числе которых 93 % всех больниц Англии и Уэльса, а также больницы в Ирландии, Нидерландах и Швейцарии. Безусловно, это очень большой объем данных для прогнозирования и изучения эффективности медицинского вмешательства при травмах.

Доктор Евгений Миркес и его коллеги из Лестерского университета в Великобритании провели исследование этой базы данных и выяснили: из 165 559 зарегистрированных травм исход 19 289 случаев оказался неизвестным[4 - E. M. Mirkes, T. J. Coats, J. Levesley, and A. N. Gorban, “Handling missing data in large healthcare dataset: A case study of unknown trauma outcomes.” Computers in Biology and Medicine 75 (2016): 203-16.]. «Исход» в данном случае определяется тем, выживает пациент или нет в течение 30 дней после травмы. Иначе говоря, 30-дневная выживаемость неизвестна для более чем 11 % пациентов. Этот пример иллюстрирует распространенную форму темных данных – DD-тип 1: данные, о которых мы знаем, что они отсутствуют. Иначе говоря, нам известно, что травмы у этих пациентов чем-то закончились, – мы просто не знаем, чем именно.

Можно, конечно, сказать: «Нет проблем, давайте просто проанализируем 146 270 пациентов, для которых исход известен, и будем делать выводы и прогнозы на основе этой информации». В конце концов, 146 270 тоже немало – в сфере медицины это уже большие данные. Поэтому мы можем смело утверждать, что понимание, основанное на этих данных, будет верным.

Но так ли это на самом деле? Возможно, 19 289 недостающих случаев сильно отличаются от других. В конце концов, их необычность уже в самой неизвестности исхода, так почему же они не могут отличаться и чем-то другим? Как следствие, анализ 146 270 пациентов с известными исходами может быть ошибочным по отношению к общей совокупности пациентов с травмами. Таким образом, действия, предпринимаемые на основе подобного анализа, могут быть в корне неверными и привести к ошибочным прогнозам, ложным предписаниям и несоответствующим режимам лечения с неблагоприятными и даже фатальными последствиями для пациентов.

Давайте возьмем нарочито неправдоподобную, крайнюю ситуацию: предположим, что все 146 270 человек с известными исходами выжили и выздоровели без лечения, а 19 289 с неизвестными исходами умерли в течение двух дней после обращения в больницу. Если бы мы игнорировали последних, то неизбежно пришли бы к выводу, что беспокоиться не о чем – ведь все пациенты с травмами выздоравливают сами собой. Исходя из этого, мы бы просто не стали их лечить, ожидая естественного выздоровления. И вскоре были бы шокированы и озадачены тем фактом, что более 11 % пациентов умерли.

Прежде чем продолжить, я должен вас успокоить – в реальности все обстоит не так уж плохо. Во-первых, приведенный выше сценарий действительно наихудший из возможных, а во-вторых, доктор Миркес и его коллеги являются экспертами по анализу недостающих данных. Они прекрасно осознают опасность и разрабатывают статистические методы решения проблемы, о которых мы поговорим позже. Я привел такой ужасающий пример лишь для того, чтобы показать: вещи могут быть не такими, какими кажутся. В самом деле, если бы мне нужно было сформулировать основную идею этой книги, она бы, пожалуй, звучала примерно так: хотя иметь много данных полезно, большие данные, то есть объем, – это еще далеко не все. И то, чего вы не знаете, те данные, которых у вас нет, могут быть важнее для понимания происходящего, чем те, которыми вы располагаете. Во всяком случае, как мы увидим дальше, проблемы темных данных – это не только проблемы больших данных: они характерны и для малых наборов данных. Они вездесущи.

Пример с базой данных TARN, конечно, преувеличен, но он служит предупреждением. Возможно, результаты 19 289 пациентов не были зарегистрированы именно потому, что все они умерли в течение 30 дней. Ведь если исход заносился в базу на основании опроса пациентов через 30 дней после обращения, чтобы оценить их состояние, то никто из умерших просто не ответил на вопросы. Если бы мы не допускали возможность этого, то никогда бы не фиксировали смерть таких пациентов.

На первый взгляд это кажется нелепым, но в реальности такие ситуации возникают довольно часто. Допустим, модель прогнозирования эффективности того или иного лечения основывается на результатах предыдущих пациентов, которые получали такое лечение. Но что, если время лечения предыдущих пациентов было недостаточным для достижения результата? Тогда для некоторых из них конечный исход окажется неизвестен, а модель, построенная только на известных результатах, будет вводить в заблуждение.

Похожая ситуация возникает и с опросами, когда отсутствие ответов становится источником затруднений. Исследователи обычно имеют некий идеальный список людей, от которых они хотели бы получить ответы, но, как правило, отвечают не все. Если все те, кто отвечает, каким-то образом отличаются от тех, кто этого не делает, то у исследователей появляется основание усомниться в достоверности статистической сводки для данной группы населения. В конце концов, если бы некий журнал затеял опрос своих подписчиков, задав им единственный вопрос: «Отвечаете ли вы на журнальные опросы?», тот факт, что 100 % ответивших скажут «да», еще не говорил бы о том, что все подписчики отвечают на подобные опросы.

Предыдущие примеры иллюстрируют первый тип темных данных. Мы знаем, что данные для пациентов TARN существуют, даже если не все значения учтены. Мы знаем, что у людей в списке опроса были ответы, даже если они их не давали. В общем, мы знаем, что существуют некоторые значения данных, но не знаем, какие именно.

Следующие примеры познакомят нас с другим типом темных данных – DD-тип 2: данные, о которых мы не знаем, что они отсутствуют.

Многие города сталкиваются с проблемой выбоин в дорожном покрытии. Вода попадает в мелкие трещины, замерзает зимой, расширяя их, а колеса автомобилей довершают разрушительную работу. В результате у машин портятся колеса и подвеска. Бостон решил бороться с этой проблемой с помощью современных технологий. Он выпустил приложение для смартфона, которое использовало внутренний акселерометр устройства, чтобы определять тряску автомобиля, проехавшего по выбоине, а затем с помощью GPS автоматически передавать ее координаты городским властям.

Фантастика! Теперь люди, обслуживающие шоссе, будут точно знать, куда ехать, чтобы залатать выбоины. Однако это элегантное и дешевое решение реальной проблемы, основанное на современных технологиях анализа данных, не учитывает того, что владельцы автомобилей и дорогих моделей смартфонов с акселерометрами концентрируются в более богатых районах. Это повышает вероятность того, что выбоины на дорогах в районах победнее не будут обнаружены, а значит, аварийная опасность таких дорог будет все возрастать. Вместо того чтобы решить проблему в целом, такой подход усугубляет социальное неравенство. Ситуация в этом примере отличается от ситуации с базой данных TARN, когда мы точно знали, что отсутствуют некоторые данные. Здесь мы этого не знаем.

Вот еще одна иллюстрация темных данных такого рода. В конце октября 2012 г. сильнейший ураган, получивший название «Сэнди»[5 - https://www.livescience.com/24380-hurricane-sandy-status-data.html (https://www.livescience.com/24380-hurricane-sandy-status-data.html).], обрушился на восточное побережье Соединенных Штатов. На тот момент это был второй по разрушительности ураган в истории США и крупнейший в истории атлантический ураган, причинивший ущерб в $75 млрд и унесший жизни более 200 человек в восьми странах. «Сэнди» затронул 24 штата (от Флориды на юге до Висконсина и штата Мэн на севере страны) и спровоцировал закрытие финансовых рынков из-за отключения электроэнергии. Надо признать, что поэтому он стал еще и косвенной причиной всплеска рождаемости спустя девять месяцев после описываемых событий.

Ураган «Сэнди» также стал настоящим триумфом современных СМИ. Ураган сопровождался шквалом сообщений в твиттер, который позволяет обсуждать происходящее сразу же и с тем, кто непосредственно участвует в событии. Вообще, социальные платформы – это способ быть в курсе событий в реальном времени, и «Сэнди» стал именно таким событием. В период с 27 октября по 1 ноября 2012 г. было опубликовано более 20 млн твитов об урагане. Очевидно, что это идеальный материал, на основе которого можно получить непрерывную картину стихийного бедствия по мере его развития – вы видите, какие районы пострадали больше всего и куда направить экстренную помощь.

Однако спустя какое-то время анализ показал, что наибольшее количество твитов о «Сэнди» пришло с Манхэттена и лишь немногие поступали из таких районов, как Рокуэй и Кони-Айленд. Означало ли это, что Рокуэй и Кони-Айленд пострадали не так серьезно? Метро и улицы Манхэттена были затоплены, это правда, но едва ли его можно назвать самым пострадавшим районом даже в пределах Нью-Йорка. Причина того, что из каких-то районов было послано меньше твитов, заключалась не в том, что ураган пощадил их, а в том, что на их территории оказалось меньше пользователей твиттера и меньшее число смартфонов, чтобы отправить твит.

Давайте снова представим себе крайний вариант этой ситуации. Если бы ураган «Сэнди» полностью уничтожил какой-нибудь населенный пункт, то оттуда вообще бы не поступало никаких твитов и создалось бы впечатление, что там все просто замечательно. Но на самом деле мы опять имеем дело с темными данными.

Примеры второго типа темных данных, когда мы не знаем, что чего-то не достает, встречаются не менее часто, чем примеры первого типа. Они варьируются от необнаруженных мошенничеств до незафиксированных убийств, выпадающих из результатов опроса жертв преступлений.

Как-то на информационном брифинге бывший министр обороны США Дональд Рамсфелд охарактеризовал темные данные второго типа, да так удачно, что его высказывание стало знаменитым: «Есть известные неизвестные; то есть мы знаем, что есть какие-то вещи, которых мы не знаем. Но есть также неизвестные неизвестные – те, о которых мы не знаем, что мы их не знаем»[6 - D. Rumsfeld, Department of Defense News Briefing, 12 February 2002.]. Этот замысловатый пассаж стал объектом насмешек для разнообразных СМИ, но их критика была несправедливой. То, что сказал Рамсфелд, было сущей правдой и имело глубокий смысл.

Эти первые два типа темных данных только начало. Далее мы познакомимся со множеством других, которые вкупе и составляют основу этой книги. Как вы увидите, темные данные разнообразны и до тех пор, пока мы не осознаем, что наши данные могут быть неполными; наблюдение чего-либо не означает наблюдения всего; процедура измерения может быть неточной; а то, что мы измеряем, на самом деле может оказаться не тем, что мы хотим измерить, мы рискуем получать результаты, далекие от истины, что зачастую и происходит. Тот факт, что никто не слышит, как в лесу падает дерево, не означает, что оно падает бесшумно.

Так вы думаете, у вас есть все данные?

Покупатель подходит к кассе супермаркета, выкладывает на ленту выбранные товары, лазер сканирует их штрихкоды, и каждый раз кассовый аппарат издает звуковой сигнал, сообщая, что суммирует цены. В результате этой процедуры покупатель получает чек и расплачивается. Однако история его покупки на этом не заканчивается. Данные о купленных товарах и их стоимости отправляются в базу данных. Позже статистики и аналитики будут изучать их, создавая картину поведения покупателей на основе того, что они купили, какие из товаров были куплены вместе и, конечно, какие клиенты покупали эти товары. Казалось бы, здесь просто нельзя ничего пропустить. Данные о транзакциях собираются во всех случаях, кроме отключения электроэнергии, сбоя кассового аппарата или мошенничества.

Вроде бы собираются все данные. Иначе говоря, в базу попадают данные не по некоторым транзакциям или некоторым купленным товарам, а по всем транзакциям, совершенным всеми покупателями, и по всем товарам в конкретном супермаркете. Такие данные еще называют исчерпывающими.

Все книги на сайте предоставены для ознакомления и защищены авторским правом