/
fedorhub
/
Python_Le
Обзор
Документация
Войти
/
fedorhub
/
Python_Le
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
python/files-04/index.htm
2 706 строк
314 KB
fedorhub
upload files
17 дек 2025, 14:35
17 дек 2025, 14:35
50de53d
Код
Авторство
О чём код?
<!DOCTYPE html> <html class="no-js" lang="ru-RU"> <head> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" > <link rel="profile" href="http://gmpg.org/xfn/11"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <script> MathJax = { tex: { inlineMath: [['$','$'],['\\(','\\)']], processEscapes: true }, options: { ignoreHtmlClass: 'tex2jax_ignore|editor-rich-text' } }; </script> <!-- This site is optimized with the Yoast SEO plugin v23.8 - https://yoast.com/wordpress/plugins/seo/ --> <title>Работа с файлами в Google Colab | Программирование на Питоне</title> <meta name="description" content="В процессе анализа данных и построения модели в Google Colab мы часто работаем с внешними файлами, и нам нужно хорошо в этом разбираться." /> <link rel="canonical" href="https://www.dmitrymakarov.ru/python/files-04/" /> <meta property="og:locale" content="ru_RU" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Работа с файлами в Google Colab | Программирование на Питоне" /> <meta property="og:description" content="В процессе анализа данных и построения модели в Google Colab мы часто работаем с внешними файлами, и нам нужно хорошо в этом разбираться." /> <meta property="og:url" content="https://www.dmitrymakarov.ru/python/files-04/" /> <meta property="og:site_name" content="Машинное обучение" /> <meta property="article:modified_time" content="2024-10-12T18:19:07+00:00" /> <meta property="og:image" content="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab.png" /> <meta property="og:image:width" content="1118" /> <meta property="og:image:height" content="710" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Примерное время для чтения" /> <meta name="twitter:data1" content="25 минут" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.dmitrymakarov.ru/python/files-04/","url":"https://www.dmitrymakarov.ru/python/files-04/","name":"Работа с файлами в Google Colab | Программирование на Питоне","isPartOf":{"@id":"https://www.dmitrymakarov.ru/#website"},"primaryImageOfPage":{"@id":"https://www.dmitrymakarov.ru/python/files-04/#primaryimage"},"image":{"@id":"https://www.dmitrymakarov.ru/python/files-04/#primaryimage"},"thumbnailUrl":"https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-1024x650.png","datePublished":"2021-11-07T09:17:12+00:00","dateModified":"2024-10-12T18:19:07+00:00","description":"В процессе анализа данных и построения модели в Google Colab мы часто работаем с внешними файлами, и нам нужно хорошо в этом разбираться.","breadcrumb":{"@id":"https://www.dmitrymakarov.ru/python/files-04/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://www.dmitrymakarov.ru/python/files-04/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://www.dmitrymakarov.ru/python/files-04/#primaryimage","url":"https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab.png","contentUrl":"https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab.png","width":1118,"height":710},{"@type":"BreadcrumbList","@id":"https://www.dmitrymakarov.ru/python/files-04/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная страница","item":"https://www.dmitrymakarov.ru/"},{"@type":"ListItem","position":2,"name":"Программирование на Питоне","item":"https://www.dmitrymakarov.ru/python/"},{"@type":"ListItem","position":3,"name":"Работа с файлами в Google Colab"}]},{"@type":"WebSite","@id":"https://www.dmitrymakarov.ru/#website","url":"https://www.dmitrymakarov.ru/","name":"Машинное обучение","description":"","publisher":{"@id":"https://www.dmitrymakarov.ru/#/schema/person/3fc221e2d391cc5cfd9d31c9c251c2a4"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.dmitrymakarov.ru/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":["Person","Organization"],"@id":"https://www.dmitrymakarov.ru/#/schema/person/3fc221e2d391cc5cfd9d31c9c251c2a4","name":"DmitryMakarov","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://www.dmitrymakarov.ru/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/2c5f922d990c667feffc00f99517cc0e?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/2c5f922d990c667feffc00f99517cc0e?s=96&d=mm&r=g","caption":"DmitryMakarov"},"logo":{"@id":"https://www.dmitrymakarov.ru/#/schema/person/image/"}}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <link rel="alternate" type="application/rss+xml" title="Машинное обучение » Лента" href="https://www.dmitrymakarov.ru/feed/" /> <link rel="alternate" type="application/rss+xml" title="Машинное обучение » Лента комментариев" href="https://www.dmitrymakarov.ru/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.dmitrymakarov.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='mci-footnotes-no-tooltips-pagelayout-none-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/footnotes/css/footnotes-nottbrpl0.min.css?ver=2.7.3' type='text/css' media='all' /> <link rel='stylesheet' id='urvanov_syntax_highlighter-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/css/min/urvanov_syntax_highlighter.min.css?ver=2.8.37' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-theme-familiar-my-copy-css' href='https://www.dmitrymakarov.ru/wp-content/uploads/urvanov-syntax-highlighter/themes/familiar-my-copy/familiar-my-copy.css?ver=2.8.37' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-font-consolas-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/fonts/consolas.css?ver=2.8.37' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.dmitrymakarov.ru/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='ultimate_blocks-cgb-style-css-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/dist/blocks.style.build.css?ver=672da50d06258' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #121212;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #333;--wp--preset--color--medium-gray: #555;--wp--preset--color--light-gray: #777;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 16px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 18px;--wp--preset--font-size--larger: 28px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='ub-extension-style-css-css' href='https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/src/extensions/style.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='mcluhan-fonts-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/css/fonts.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='fontawesome-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/css/font-awesome.css?ver=6.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='mcluhan-style-css' href='https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/style.css?ver=2.1.1' type='text/css' media='all' /> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" id="urvanov_syntax_highlighter_js-js-extra"> /* <![CDATA[ */ var UrvanovSyntaxHighlighterSyntaxSettings = {"version":"2.8.37","is_admin":"0","ajaxurl":"https:\/\/www.dmitrymakarov.ru\/wp-admin\/admin-ajax.php","prefix":"urvanov-syntax-highlighter-","setting":"urvanov-syntax-highlighter-setting","selected":"urvanov-syntax-highlighter-setting-selected","changed":"urvanov-syntax-highlighter-setting-changed","special":"urvanov-syntax-highlighter-setting-special","orig_value":"data-orig-value","debug":""}; var UrvanovSyntaxHighlighterSyntaxStrings = {"copy":"Copied to the clipboard","minimize":"Click To Expand Code"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/plugins/urvanov-syntax-highlighter/js/min/urvanov_syntax_highlighter.min.js?ver=2.8.37" id="urvanov_syntax_highlighter_js-js"></script> <style>#ub_table-of-contents-7303b7b2-6afa-40ca-97a2-f5377bfc8d26{ }#ub_table-of-contents-7303b7b2-6afa-40ca-97a2-f5377bfc8d26 .ub_table-of-contents-header{ text-align: left; } #ub_divider_a7408823-ade0-4a77-910f-f130e5997083{ }#ub_divider_a7408823-ade0-4a77-910f-f130e5997083 .ub_divider{ border-top:2px solid #ccc; margin-top: 20px; margin-bottom: 20px; width: 60%; } #ub_divider_1ab8e30a-c6a6-4d9b-967f-5d8d20cc9a96{ }#ub_divider_1ab8e30a-c6a6-4d9b-967f-5d8d20cc9a96 .ub_divider{ border-top:2px solid #ccc; margin-top: 20px; margin-bottom: 20px; width: 60%; } #ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d{ }#ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d .wp-block-ub-content-toggle-accordion{ border-color: #f1f1f1; } #ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d .wp-block-ub-content-toggle-accordion-title-wrap{ background-color: #f1f1f1; } #ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d .wp-block-ub-content-toggle-accordion-title{ color: #000000; } #ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d .wp-block-ub-content-toggle-accordion-toggle-wrap{ color: #000000; } .ub-content-toggle-title-9e881ad0-1d3f-48ba-8fff-ee0e9707d6ab > a{ color: inherit; }#ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda{ }#ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda .wp-block-ub-content-toggle-accordion{ border-color: #f1f1f1; } #ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda .wp-block-ub-content-toggle-accordion-title-wrap{ background-color: #f1f1f1; } #ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda .wp-block-ub-content-toggle-accordion-title{ color: #000000; } #ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda .wp-block-ub-content-toggle-accordion-toggle-wrap{ color: #000000; } .ub-content-toggle-title-edc0ed87-e664-4f11-8001-1dd60886d79c > a{ color: inherit; }</style> <!-- Customizer CSS --> <style type="text/css"> body .site-header { background-color:#004235; }.social-menu.desktop { background-color:#004235; }.social-menu a:hover { color:#004235; }.social-menu a.active { color:#004235; }.mobile-menu-wrapper { background-color:#004235; }.social-menu.mobile { background-color:#004235; }.mobile-search.active { background-color:#004235; } </style> <!-- /Customizer CSS --> <script>jQuery( 'html' ).removeClass( 'no-js' ).addClass( 'js' );</script> <style type="text/css">.broken_link, a.broken_link { text-decoration: line-through; }</style><style type="text/css" id="custom-background-css"> body.custom-background { background-color: #fff9ef; } </style> <link rel="icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.dmitrymakarov.ru/wp-content/uploads/2021/08/cropped-wp-favicon-512-270x270.png" /> <style type="text/css" media="all"> .footnotes_reference_container {margin-top: 24px !important; margin-bottom: 0px !important;} .footnote_container_prepare > p {border-bottom: 1px solid #aaaaaa !important;} </style> </head> <body class="page-template page-template-full-width-page-template page-template-full-width-page-template-php page page-id-5942 page-child parent-pageid-1374 custom-background full-width-template"> <a class="skip-link button" href="#site-content">Перейти к содержимому</a> <header class="site-header group"> <p class="site-title"><a href="https://www.dmitrymakarov.ru" class="site-name">Машинное обучение</a></p> <div class="nav-toggle"> <div class="bar"></div> <div class="bar"></div> </div> <div class="menu-wrapper"> <ul class="main-menu desktop"> </ul> </div><!-- .menu-wrapper --> <div class="social-menu desktop"> <ul class="social-menu-inner"> <li class="social-search-wrapper"><a href="https://www.dmitrymakarov.ru/?s="></a></li> </ul><!-- .social-menu-inner --> </div><!-- .social-menu --> </header><!-- header --> <div class="mobile-menu-wrapper"> <ul class="main-menu mobile"> <li class="toggle-mobile-search-wrapper"><a href="#" class="toggle-mobile-search">Поиск</a></li> </ul><!-- .main-menu.mobile --> </div><!-- .mobile-menu-wrapper --> <div class="mobile-search"> <div class="untoggle-mobile-search"></div> <form role="search" method="get" class="search-form" action="https://www.dmitrymakarov.ru/"> <label class="screen-reader-text" for="search-form-672da50d23d73">Поиск:</label> <input type="search" id="search-form-672da50d23d73" class="search-field" placeholder="Введите запрос" value="" name="s" autocomplete="off" /> </button> </form> <div class="mobile-results"> <div class="results-wrapper"></div> </div> </div><!-- .mobile-search --> <div class="search-overlay"> <form role="search" method="get" class="search-form" action="https://www.dmitrymakarov.ru/"> <label class="screen-reader-text" for="search-form-672da50d23dee">Поиск:</label> <input type="search" id="search-form-672da50d23dee" class="search-field" placeholder="Введите запрос" value="" name="s" autocomplete="off" /> </button> </form> </div><!-- .search-overlay --> <main class="site-content" id="site-content"> <article class="post-5942 page type-page status-publish hentry missing-thumbnail"> <header class="entry-header section-inner"> <h1 class="entry-title">Работа с файлами в Google Colab</h1> </header><!-- .entry-header --> <div class="entry-content section-inner"> <p class="has-light-gray-color has-text-color"><a href="https://www.dmitrymakarov.ru/">Все курсы</a> > <a href="https://www.dmitrymakarov.ru/python/">Программирование на Питоне</a> > Занятие 4</p> <p>Для построения модели нам нужны данные. И очень часто эти данные содержатся во внешних файлах. Мы уже столкнулись с этим, когда работали с <a href="https://www.dmitrymakarov.ru/intro/recommender-17/#4-etap-1-podgotovka-dannykh">рекомендательными системами</a> и <a href="https://www.dmitrymakarov.ru/intro/time-series-20/#1-datasety">временными рядами</a>. Предлагаю сегодня рассмотреть этот вопрос более детально.</p> <div class="wp-block-ub-table-of-contents-block ub_table-of-contents" id="ub_table-of-contents-7303b7b2-6afa-40ca-97a2-f5377bfc8d26" data-linktodivider="false" data-showtext="show" data-hidetext="hide" data-scrolltype="auto" data-initiallyhideonmobile="false" data-initiallyshow="true"><div class="ub_table-of-contents-header-container"><div class="ub_table-of-contents-header"> <div class="ub_table-of-contents-title"><strong>Содержание занятия</strong></div></div></div><div class="ub_table-of-contents-extra-container"><div class="ub_table-of-contents-container ub_table-of-contents-1-column "><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#0-obshchee-opisanie-protsessa>Общее описание процесса</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#1-dataset-titanik>Датасет «Титаник»</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#2-etap-1-podgruzka-faylov-v-google-colab>Этап 1. Подгрузка файлов в Google Colab</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#3-sposob-1-vruchnuyu-cherez-vkladku-fayly>Способ 1. Вручную через вкладку «Файлы»</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#4-sposob-2-cherez-obekt-files-biblioteki-googlecolab>Способ 2. Через объект files библиотеки google.colab</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#5-etap-2-chtenie-faylov>Этап 2. Чтение файлов</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#6-prosmotr-soderzhimogo-v-papke-content>Просмотр содержимого в папке /content/</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#7-modul-os-i-metod-walk>Модуль os и метод .walk()</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#8-komanda-ls>Команда !ls</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#9-chtenie-iz-peremennoy-uploaded>Чтение из переменной uploaded</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#10-ispolzovanie-funktsii-open-i-konstruktsii-with-open>Использование функции open() и конструкции with open()</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#11-chtenie-cherez-biblioteku-pandas>Чтение через библиотеку Pandas</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#12-etap-3-postroenie-modeli-i-prognoz>Этап 3. Построение модели и прогноз</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#13-shag-1-obrabotka-i-analiz-dannykh>Шаг 1. Обработка и анализ данных</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#14-issledovatelskiy-analiz-dannykh-eda>Исследовательский анализ данных (EDA)</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#15-propushchennye-znacheniya>Пропущенные значения</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#16-kategorialnye-peremennye>Категориальные переменные</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#17-otbor-priznakov>Отбор признаков</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#18-normalizatsiya-dannykh>Нормализация данных</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#19-shag-2-razdelenie-obuchayushchey-vyborki>Шаг 2. Разделение обучающей выборки</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#20-shag-3-obuchenie-modeli-logisticheskoy-regressii>Шаг 3. Обучение модели логистической регрессии</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#21-shag-4-postroenie-prognoza-na-testovykh-dannykh>Шаг 4. Построение прогноза на тестовых данных</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#22-etap-4-sokhranenie-rezultata-v-novom-fayle-na-servere>Этап 4. Сохранение результата в новом файле на сервере</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#23-etap-5-skachivanie-obratno-na-zhestkiy-disk>Этап 5. Скачивание обратно на жесткий диск</a></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#24-pro-sorevnovaniya-na-kaggle>Про соревнования на Kaggle</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#25-sorevnovanie-titanik>Соревнование «Титаник»</a></li></ul></li><li><a href=https://www.dmitrymakarov.ru/python/files-04/#26-podvedem-itog>Подведем итог</a><ul><li><a href=https://www.dmitrymakarov.ru/python/files-04/#27-voprosy-dlya-zakrepleniya>Вопросы для закрепления</a></li></ul></li></ul></div></div></div> <h2 class="wp-block-heading" id="0-obshchee-opisanie-protsessa">Общее описание процесса</h2> <div class="wp-block-image"> <figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="650" src="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-1024x650.png" alt="работа с внешними файлами в Google Colab" class="wp-image-6386" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-1024x650.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-300x191.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-768x488.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab-600x381.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/files-colab.png 1118w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div> <p>В целом работа с файлами в Google Colab состоит из следующих этапов.</p> <ul class="wp-block-list"> <li><strong>Этап 1</strong>. Подгрузка файлов с локального компьютера на сервер Google</li> <li><strong>Этап 2</strong>. Чтение файла</li> <li><strong>Этап 3</strong>. Построение модели и прогноз</li> <li><strong>Этап 4</strong>. Сохранение результата в новом файле на сервере Google</li> <li><strong>Этап 5</strong>. Скачивание обратно на жесткий диск</li> </ul> <p>Пройдемся по каждому из них. Но прежде поговорим про данные.</p> <h3 class="wp-block-heading" id="1-dataset-titanik">Датасет «Титаник»</h3> <p>На этом занятии предлагаю взять датасет о пассажирах корабля «Титаник», который, как известно, затонул в 1912 году при столкновении с айсбергом. Часть пассажиров выжила, но многие, к сожалению, погибли. В приведенном ниже датасете собрана информация о самих пассажирах (признаки), а также о том, выжили они или нет (целевая переменная).</p> <p>Данные уже разделены на обучающую и тестовую выборки. Скачаем их.</p> <div class="wp-block-file"><a id="wp-block-file--media-8f270bb3-799f-4650-91af-1ca8155c00f4" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/train.csv">train.csv</a><a href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/train.csv" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-8f270bb3-799f-4650-91af-1ca8155c00f4">Скачать</a></div> <div class="wp-block-file"><a id="wp-block-file--media-ceefefc8-8340-4b8c-87da-8c471b8c5d81" href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/test.csv">test.csv</a><a href="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/test.csv" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-ceefefc8-8340-4b8c-87da-8c471b8c5d81">Скачать</a></div> <p class="has-text-align-center has-white-color has-text-color has-background" style="background-color:#004235"><a href="https://colab.research.google.com/drive/1k7vkPDJXuNbZwrHmiJR4zOHFPLTto4Pk?usp=sharing" target="_blank" rel="noreferrer noopener">Также откроем блокнот к этому занятию</a>⧉</p> <h2 class="wp-block-heading" id="2-etap-1-podgruzka-faylov-v-google-colab">Этап 1. Подгрузка файлов в Google Colab</h2> <p>Если внешние файлы хранятся на локальном компьютере, то нам нужно подгрузить их в так называемое «Сессионное хранилище» (session storage, по сути, сервер Google).</p> <p class="has-background" style="background-color:#ffe8c4">Слово «сессионное» указывает на то, что данные, как я уже говорил, хранятся временно и после завершения очередной сессии стираются.</p> <p>Подгрузить данные с локального компьютера можно двумя способами.</p> <h3 class="wp-block-heading" id="3-sposob-1-vruchnuyu-cherez-vkladku-fayly">Способ 1. Вручную через вкладку «Файлы»</h3> <p>Этот способ мы использовали до сих пор. В качестве напоминания приведу скриншоты подгрузки файла train.csv.</p> <figure class="wp-block-image size-large"><img decoding="async" width="1024" height="552" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-1024x552.png" alt="подгрузка вручную через вкладку "Файлы"" class="wp-image-26090" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-1024x552.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-300x162.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-768x414.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-1536x828.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-1200x647.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20-600x323.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-20.png 1688w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <figure class="wp-block-image size-large is-resized"><img decoding="async" width="1024" height="642" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-1024x642.png" alt="подгрузка вручную через вкладку "Файлы" 2" class="wp-image-26091" style="width:785px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-1024x642.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-300x188.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-768x482.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-1200x753.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21-600x376.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-21.png 1476w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <h3 class="wp-block-heading" id="4-sposob-2-cherez-obekt-files-biblioteki-googlecolab">Способ 2. Через объект files библиотеки google.colab</h3> <p>К объекту <strong>files</strong> мы применяем метод <strong>.upload()</strong>, который передает нам словарь. Ключами этого словаря будут названия файлов, а значениями — сами подгруженные данные. Приведем пример с файлом test.csv.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00d8e322772434" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00d8e322772434-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00d8e322772434-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00d8e322772434-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00d8e322772434-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00d8e322772434-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00d8e322772434-1"><span class="crayon-c"># из библиотеки google.colab импортируем класс files</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00d8e322772434-2"><span class="crayon-st">from</span><span class="crayon-h"> </span><span class="crayon-v">google</span><span class="crayon-sy">.</span><span class="crayon-e">colab </span><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-i">files</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00d8e322772434-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00d8e322772434-4"><span class="crayon-c"># создаем объект этого класса, применяем метод .upload()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00d8e322772434-5"><span class="crayon-v">uploaded</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">files</span><span class="crayon-sy">.</span><span class="crayon-e">upload</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0020 seconds] --> </div> <p>Нам будет предложено выбрать файл на жестком диске.</p> <figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="211" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-1024x211.png" alt="подгрузка через объект files библиотеки google.colab" class="wp-image-26092" style="width:709px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-1024x211.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-300x62.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-768x159.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-1200x248.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22-600x124.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-22.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="646" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-1024x646.png" alt="подгрузка через объект files библиотеки google.colab 2" class="wp-image-26093" style="width:793px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-1024x646.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-300x189.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-768x485.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-1200x757.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23-600x379.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-23.png 1463w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00d98958215542" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00d98958215542-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00d98958215542-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00d98958215542-1"><span class="crayon-c"># посмотрим на содержимое переменной uploaded</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00d98958215542-2"><span class="crayon-v">uploaded</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00d9f395074933" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00d9f395074933-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00d9f395074933-1">{'test.csv': b'PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked\r\n892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q\r\n893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S\r\n894,2,... }</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Все что идет после двоеточия и есть наш файл. Он содержится в формате bytes, о чем свидетельствует буква b перед строкой файла (подробнее об этом ниже).</p> <h2 class="wp-block-heading" id="5-etap-2-chtenie-faylov">Этап 2. Чтение файлов</h2> <p>После загрузки оба файла (train.csv и test.csv) оказываются в сессионном хранилище в папке под названием <strong>/content/</strong>.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="595" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-1024x595.png" alt="файлы в сессионном хранилище Google Colab" class="wp-image-26122" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-1024x595.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-300x174.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-768x446.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-1200x697.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7-600x349.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-7.png 1229w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <h3 class="wp-block-heading" id="6-prosmotr-soderzhimogo-v-papke-content">Просмотр содержимого в папке /content/</h3> <h4 class="wp-block-heading" id="7-modul-os-i-metod-walk">Модуль os и метод .walk()</h4> <p>Для того чтобы просмотреть ее содержимое <em>внутри блокнота</em>, мы можем воспользоваться модулем <strong>os</strong> (отвечает за взаимодействие Питона с операционной системой) и, в частности, методом <strong>.walk()</strong> (позволяет «пройтись» по содержимому конкретной папки).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da3059276328" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da3059276328-12">12</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-1"><span class="crayon-c"># импортируем модуль os</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-2"><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-k ">os</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-4"><span class="crayon-c"># выводим пути к папкам (dirpath) и наименования файлов (filenames) и после этого</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-5"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-v">dirpath</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">_</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">filenames </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">os</span><span class="crayon-sy">.</span><span class="crayon-e">walk</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/'</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-7"><span class="crayon-h"> </span><span class="crayon-c"># во вложенном цикле проходимся по названиям файлов</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-8"><span class="crayon-h"> </span><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-e">filename </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-v">filenames</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-9"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-10"><span class="crayon-h"> </span><span class="crayon-c"># и соединяем путь до папок и входящие в эти папки файлы</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-11"><span class="crayon-h"> </span><span class="crayon-c"># с помощью метода path.join()</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da3059276328-12"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-k ">os.path</span><span class="crayon-sy">.</span><span class="crayon-e">join</span><span class="crayon-sy">(</span><span class="crayon-v">dirpath</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">filename</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da5830061658" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da5830061658-22">22</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-1">/content/test.csv</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-2">/content/train.csv</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-3">/content/.config/default_configs.db</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-4">/content/.config/active_config</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-5">/content/.config/.last_opt_in_prompt.yaml</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-6">/content/.config/.last_update_check.json</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-7">/content/.config/config_sentinel</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-8">/content/.config/gce</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-9">/content/.config/.last_survey_prompt.yaml</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-10">/content/.config/logs/2024.04.22/13.24.44.454150.log</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-11">/content/.config/logs/2024.04.22/13.25.10.072541.log</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-12">/content/.config/logs/2024.04.22/13.25.20.190145.log</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-13">/content/.config/logs/2024.04.22/13.25.39.798716.log</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-14">/content/.config/logs/2024.04.22/13.25.40.411451.log</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-15">/content/.config/logs/2024.04.22/13.25.29.231321.log</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-16">/content/.config/configurations/config_default</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-17">/content/sample_data/anscombe.json</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-18">/content/sample_data/README.md</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-19">/content/sample_data/california_housing_test.csv</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-20">/content/sample_data/mnist_train_small.csv</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-21">/content/sample_data/california_housing_train.csv</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da5830061658-22">/content/sample_data/mnist_test.csv</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Первые два файла и есть наши данные. В скрытой подпапке <strong>/.config/</strong> содержатся служебные файлы, а в подпапке <strong>/sample_data/</strong> — примеры датасетов, хранящихся в Google Colab по умолчанию.</p> <h4 class="wp-block-heading" id="8-komanda-ls">Команда !ls</h4> <p>Кроме того, если нас интересуют только видимые файлы и папки, мы можем воспользоваться <strong>командой !ls</strong> (ls означает to list, т.е. «перечислить»).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da6151314278" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da6151314278-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da6151314278-1"><span class="crayon-o">!</span><span class="crayon-v">ls</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da7293154731" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da7293154731-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da7293154731-1">sample_data test.csv train.csv</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Подобным образом мы можем заглянуть внутрь папки sample_data.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da8692142249" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da8692142249-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da8692142249-1"><span class="crayon-o">!</span><span class="crayon-v">ls</span><span class="crayon-h"> </span><span class="crayon-o">/</span><span class="crayon-v">content</span><span class="crayon-o">/</span><span class="crayon-v">sample_data</span><span class="crayon-o">/</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00da9338323567" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00da9338323567-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00da9338323567-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00da9338323567-1">anscombe.json california_housing_train.csv mnist_train_small.csv</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00da9338323567-2">california_housing_test.csv mnist_test.csv README.md</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Теперь прочитаем файл сначала из переменной uploaded, а затем напрямую из папки <strong>/content/</strong>.</p> <h3 class="wp-block-heading" id="9-chtenie-iz-peremennoy-uploaded">Чтение из переменной uploaded</h3> <p>Как мы уже сказали выше, в словаре <strong>uploaded</strong> файл содержится в формате bytes.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00daa098751997" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00daa098751997-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00daa098751997-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00daa098751997-1"><span class="crayon-c"># посмотрим на тип значений словаря uploaded</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00daa098751997-2"><span class="crayon-k ">type</span><span class="crayon-sy">(</span><span class="crayon-v">uploaded</span><span class="crayon-sy">[</span><span class="crayon-s">'test.csv'</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dab016287349" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dab016287349-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dab016287349-1">bytes</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Основная особенность: информация в объекте bytes представляет собой последовательность байтов (byte string), в то время как обычная строка — это последовательность символов (character string). Компьютер понимает первый тип, мы (люди) — второй.</p> <p>Для того чтобы прочитать информацию из объекта bytes, ее нужно декодировать (decode). Если мы захотим вернуть ее обратно в объект bytes, соответственно, закодировать (encode).</p> <div class="wp-block-image"> <figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="424" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-1024x424.png" alt="чтение из переменной uploaded" class="wp-image-26094" style="width:683px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-1024x424.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-300x124.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-768x318.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-1200x497.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24-600x248.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-24.png 1222w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div> <p>Таким образом, чтобы прочитать данные напрямую из словаря <strong>uploaded</strong>, вначале нам нужно преобразовать эти данные в обычную строку.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dac150566484" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dac150566484-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dac150566484-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dac150566484-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dac150566484-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dac150566484-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dac150566484-1"><span class="crayon-c"># обратимся к ключу словаря uploaded и применим метод .decode()</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dac150566484-2"><span class="crayon-v">uploaded_str</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">uploaded</span><span class="crayon-sy">[</span><span class="crayon-s">'test.csv'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">decode</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dac150566484-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dac150566484-4"><span class="crayon-c"># на выходе получаем обычную строку</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dac150566484-5"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-k ">type</span><span class="crayon-sy">(</span><span class="crayon-v">uploaded_str</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dad523693942" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dad523693942-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dad523693942-1"><class 'str'></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Выведем первые 35 значений.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dae372190114" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dae372190114-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dae372190114-1"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">uploaded_str</span><span class="crayon-sy">[</span><span class="crayon-o">:</span><span class="crayon-cn">35</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00daf620657840" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00daf620657840-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00daf620657840-1">PassengerId,Pclass,Name,Sex,Age,Sib</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Если разбить строку методом <strong>.split()</strong> по символам \r (возврат к началу строки) и \n (новая строка), то на выходе мы получим список.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db0669299777" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db0669299777-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db0669299777-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db0669299777-1"><span class="crayon-v">uploaded_list</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">uploaded_str</span><span class="crayon-sy">.</span><span class="crayon-e">split</span><span class="crayon-sy">(</span><span class="crayon-s">'\r\n'</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db0669299777-2"><span class="crayon-k ">type</span><span class="crayon-sy">(</span><span class="crayon-v">uploaded_list</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db1701165344" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db1701165344-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db1701165344-1">list</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Пройдемся по этому списку и выведем первые четыре значения.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db2054666735" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db2054666735-11">11</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-1"><span class="crayon-c"># не забудем создать индекс с помощью функции enumerate()</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-2"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">line </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">enumerate</span><span class="crayon-sy">(</span><span class="crayon-v">uploaded_list</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-4"><span class="crayon-h"> </span><span class="crayon-c"># начнем выводить записи</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-5"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">line</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-7"><span class="crayon-h"> </span><span class="crayon-c"># когда дойдем до четвертой строки</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-8"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-9"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-10"><span class="crayon-h"> </span><span class="crayon-c"># прервемся</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db2054666735-11"><span class="crayon-h"> </span><span class="crayon-st">break</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db3314098028" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db3314098028-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db3314098028-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db3314098028-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db3314098028-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db3314098028-1">PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db3314098028-2">892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db3314098028-3">893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db3314098028-4">894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Вот нам и пригодился <a href="https://www.dmitrymakarov.ru/python/if-and-loops-03/#6-operator-break">оператор break</a>. Как мы видим, первая строка — это заголовок (header), остальные — информация по каждому из пассажиров.</p> <h3 class="wp-block-heading" id="10-ispolzovanie-funktsii-open-i-konstruktsii-with-open">Использование функции open() и конструкции with open()</h3> <p>Такого же результата можно добиться с помощью базовой <strong>функции open()</strong>.</p> <p class="has-background" style="background-color:#ffe8c4">Обратите внимание, здесь мы читаем файл непосредственно из папки <strong>/content/</strong>. Декодировать файл уже не нужно.</p> <p>Функция <strong>open()</strong> возвращает объект, который используется для чтения и изменения файла. Откроем файл train.csv.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db4174936719" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db4174936719-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db4174936719-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db4174936719-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db4174936719-1"><span class="crayon-c"># передадим функции open() адрес файла</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db4174936719-2"><span class="crayon-c"># параметр 'r' означает, что мы хотим прочитать (read) файл</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db4174936719-3"><span class="crayon-v">f1</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-k ">open</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/train.csv'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'r'</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Вначале попробуем применить метод <strong>.read()</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db5712961888" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db5712961888-6">6</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-1"><span class="crayon-c"># метод .read() помещает весь файл в одну строку</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-2"><span class="crayon-c"># выведем первые 142 символа (если параметр не указывать, выведется все содержимое)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-3"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">f1</span><span class="crayon-sy">.</span><span class="crayon-e">read</span><span class="crayon-sy">(</span><span class="crayon-cn">142</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-4"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-5"><span class="crayon-c"># в конце файл необходимо закрыть</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db5712961888-6"><span class="crayon-v">f1</span><span class="crayon-sy">.</span><span class="crayon-e">close</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db6778845202" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db6778845202-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db6778845202-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db6778845202-1">PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db6778845202-2">1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Для наших целей метод <strong>.read()</strong> не очень удобен. Будет лучше пройтись по файлу в цикле <strong>for</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db7836068050" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db7836068050-15">15</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-1"><span class="crayon-c"># снова откроем файл</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-2"><span class="crayon-v">f2</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-k ">open</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/train.csv'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'r'</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-4"><span class="crayon-c"># пройдемся по нашему объекту в цикле for и параллельно создадим индекс</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-5"><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">line </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">enumerate</span><span class="crayon-sy">(</span><span class="crayon-v">f2</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-7"><span class="crayon-h"> </span><span class="crayon-c"># выведем строки без служебных символов по краям</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-8"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">line</span><span class="crayon-sy">.</span><span class="crayon-e">strip</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-10"><span class="crayon-h"> </span><span class="crayon-c"># дойдя до четвертой строки, прервемся</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-11"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-12"><span class="crayon-h"> </span><span class="crayon-st">break</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-13"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-14"><span class="crayon-c"># не забудем закрыть файл</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db7836068050-15"><span class="crayon-v">f2</span><span class="crayon-sy">.</span><span class="crayon-e">close</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db8735914243" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db8735914243-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db8735914243-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db8735914243-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db8735914243-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db8735914243-1">PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db8735914243-2">1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db8735914243-3">2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db8735914243-4">3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Еще один способ — использовать конструкцию <strong>with open()</strong>. В этом случае специально закрывать файл не нужно.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00db9785195523" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00db9785195523-10">10</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-1"><span class="crayon-c"># скажем Питону: "открой файл и назови его f3"</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-2"><span class="crayon-st">with</span><span class="crayon-h"> </span><span class="crayon-k ">open</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/test.csv'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'r'</span><span class="crayon-sy">)</span><span class="crayon-h"> </span><span class="crayon-st">as</span><span class="crayon-h"> </span><span class="crayon-v">f3</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-4"><span class="crayon-h"> </span><span class="crayon-c"># "пройдись по строкам без служебных символов"</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-5"><span class="crayon-h"> </span><span class="crayon-st">for</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-e">line </span><span class="crayon-st">in</span><span class="crayon-h"> </span><span class="crayon-k ">enumerate</span><span class="crayon-sy">(</span><span class="crayon-v">f3</span><span class="crayon-sy">)</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-6"><span class="crayon-h"> </span><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">line</span><span class="crayon-sy">.</span><span class="crayon-e">strip</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-7"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-8"><span class="crayon-h"> </span><span class="crayon-c"># и "прервись на четвертой строке"</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-9"><span class="crayon-h"> </span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-v">i</span><span class="crayon-h"> </span><span class="crayon-o">==</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00db9785195523-10"><span class="crayon-h"> </span><span class="crayon-st">break</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dba675455704" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dba675455704-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dba675455704-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dba675455704-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dba675455704-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dba675455704-1">PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dba675455704-2">892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dba675455704-3">893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dba675455704-4">894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h3 class="wp-block-heading" id="11-chtenie-cherez-biblioteku-pandas">Чтение через библиотеку Pandas</h3> <p>Вероятно наиболее удобный и подходящий для наших целей способ чтения файлов — это преобразование напрямую в датафрейм библиотеки Pandas. С этим методом в целом мы уже знакомы.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dbb569561722" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbb569561722-6">6</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-1"><span class="crayon-c"># импортируем библиотеку</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-2"><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-e">pandas </span><span class="crayon-st">as</span><span class="crayon-h"> </span><span class="crayon-i">pd</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-4"><span class="crayon-c"># применим функцию read_csv() и посмотрим на первые три записи файла train.csv</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-5"><span class="crayon-v">train</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">read_csv</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/train.csv'</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbb569561722-6"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="227" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-1024x227.png" alt="чтение через библиотеку Pandas файла train" class="wp-image-26095" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-1024x227.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-300x66.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-768x170.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-1536x340.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-1200x265.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25-600x133.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-25.png 1668w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dbc874154295" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbc874154295-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbc874154295-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbc874154295-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbc874154295-1"><span class="crayon-c"># сделаем то же самое с файлом test.csv</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbc874154295-2"><span class="crayon-k ">test</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">read_csv</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/test.csv'</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbc874154295-3"><span class="crayon-k ">test</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="152" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-1024x152.png" alt="чтение через библиотеку Pandas файла test" class="wp-image-26096" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-1024x152.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-300x45.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-768x114.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-1536x229.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-1200x179.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26-600x89.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-26.png 1593w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <h2 class="wp-block-heading" id="12-etap-3-postroenie-modeli-i-prognoz">Этап 3. Построение модели и прогноз</h2> <p>Давайте ненедолго отвлечемся от работы с файлами и построим несложную модель, которая предскажет погиб пассажир (обозначим этот факт через 0) или выжил (1). Прежде всего, концептуально обсудим, что нам нужно сделать.</p> <p class="has-background" style="background-color:#ffe8c4">Для понимания дальнейшей работы очень советую пройти или повторить первые три раздела <a href="https://www.dmitrymakarov.ru/">вводного курса</a>. На этом занятии я предполагаю, что вы с ними уже знакомы.</p> <ul class="wp-block-list"> <li><strong>Шаг 1</strong>. Обработать и проанализировать данные;</li> <li><strong>Шаг 2</strong>. Разделить обучающую выборку (train) на признаки (X_train) и целевую переменную (y_train);</li> <li><strong>Шаг 3</strong>. Обучить модель логистической регрессии;</li> <li><strong>Шаг 4</strong>. Подготовить тестовые данные (X_test) и сделать прогноз.</li> </ul> <p>А теперь обо всем по порядку.</p> <h3 class="wp-block-heading" id="13-shag-1-obrabotka-i-analiz-dannykh">Шаг 1. Обработка и анализ данных</h3> <h4 class="wp-block-heading" id="14-issledovatelskiy-analiz-dannykh-eda">Исследовательский анализ данных (EDA)</h4> <p>Напомню, что основная задача EDA — выявить взаимосвязь между признаками и целевой переменной. Воспользуемся методом <strong>.info()</strong>, чтобы обобщенно посмотреть на наши данные.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dbd355690452" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbd355690452-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbd355690452-1"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">info</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dbe305674707" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbe305674707-19">19</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-1"><class 'pandas.core.frame.DataFrame'></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-2">RangeIndex: 891 entries, 0 to 890</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-3">Data columns (total 12 columns):</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-4"> # Column Non-Null Count Dtype </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-5">--- ------ -------------- ----- </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-6"> 0 PassengerId 891 non-null int64 </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-7"> 1 Survived 891 non-null int64 </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-8"> 2 Pclass 891 non-null int64 </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-9"> 3 Name 891 non-null object </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-10"> 4 Sex 891 non-null object </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-11"> 5 Age 714 non-null float64</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-12"> 6 SibSp 891 non-null int64 </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-13"> 7 Parch 891 non-null int64 </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-14"> 8 Ticket 891 non-null object </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-15"> 9 Fare 891 non-null float64</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-16"> 10 Cabin 204 non-null object </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-17"> 11 Embarked 889 non-null object </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-18">dtypes: float64(2), int64(5), object(5)</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbe305674707-19">memory usage: 83.7+ KB</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Как мы видим, у нас 12 переменных. Одна из них (Survived) — зависимая (целевая), остальные — независимые (признаки). Всего в датасете 891 запись, при этом в нескольких переменных есть пропуски.</p> <p>Ниже приведено короткое описание каждой из переменных:</p> <ul class="wp-block-list"> <li>PassengerId — идентификатор пассажира</li> <li>Survived — погиб (0) или выжил (1)</li> <li>Pclass — класс билета: первый (1), второй (2) или третий (3)</li> <li>Name — имя пассажира</li> <li>Sex — пол</li> <li>Age — возраст</li> <li>SibSp — количество братьев и сестер или супругов (siblings and spouses) на борту</li> <li>Parch — количество родителей и детей (parents and children) на борту</li> <li>Ticket — номер билета</li> <li>Fare — стоимость билета</li> <li>Cabin — номер каюты</li> <li>Embarked — порт посадки (C — Шербур; Q — Квинстаун; S — Саутгемптон)</li> </ul> <p>Проведем несложный визуальный анализ данных.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dbf767313017" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dbf767313017-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dbf767313017-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dbf767313017-1"><span class="crayon-c"># для построения графиков воспользуемся новой для нас библиотекой seaborn</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dbf767313017-2"><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-e">seaborn </span><span class="crayon-st">as</span><span class="crayon-h"> </span><span class="crayon-v">sns</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>У нас есть несколько потенциально значимых категориальных переменных, целевая переменная — тоже категориальная. В этом случае удобно использовать <a href="https://www.dmitrymakarov.ru/intro/stats-08/#2-primer-skolko-studentov-uchitsya-na-kazhdom-kurse-universiteta">столбчатую диаграмму</a> (bar chart), где каждый столбец также разбит на категории. В библиотеке seaborn такую диаграмму можно построить с помощью функции <strong>countplot()</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc0336871728" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc0336871728-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc0336871728-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc0336871728-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc0336871728-1"><span class="crayon-c"># посмотрим насколько значим класс билета для выживания пассажира</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc0336871728-2"><span class="crayon-c"># с помощью x и hue мы можем уместить две категориальные переменные на одном графике</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc0336871728-3"><span class="crayon-v">sns</span><span class="crayon-sy">.</span><span class="crayon-e">countplot</span><span class="crayon-sy">(</span><span class="crayon-v">x</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Pclass'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">hue</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Survived'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">data</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">train</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="571" height="432" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image1.png" alt="функция countplot(): выживаемость в зависимости от класса каюты" class="wp-image-26097" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image1.png 571w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image1-300x227.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></figure> <p>Мы видим, что погибших пассажиров в третьем классе гораздо больше, чем выживших. При этом в первом классе больше выживших, чем погибших. Очевидно класс билета имеет значение.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc1486639184" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc1486639184-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc1486639184-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc1486639184-1"><span class="crayon-c"># кто выживал чаще, мужчины или женщины?</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc1486639184-2"><span class="crayon-v">sns</span><span class="crayon-sy">.</span><span class="crayon-e">countplot</span><span class="crayon-sy">(</span><span class="crayon-v">x</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Sex'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">hue</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Survived'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">data</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">train</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="571" height="432" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image2.png" alt="выживаемость в зависимости от пола" class="wp-image-26098" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image2.png 571w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image2-300x227.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></figure> <p>Большинство мужчик погибло. Большая часть женщин выжила. Пол также значим для построения прогноза.</p> <h4 class="wp-block-heading" id="15-propushchennye-znacheniya">Пропущенные значения</h4> <p>Посмотрим, что можно сделать с пропущенными значениями (missing values).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc2707675775" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc2707675775-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc2707675775-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc2707675775-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc2707675775-1"><span class="crayon-c"># выявим пропущенные значения с помощью .isnull()</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc2707675775-2"><span class="crayon-c"># и посчитаем их количество через sum()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc2707675775-3"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">isnull</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-k ">sum</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc3073262807" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc3073262807-13">13</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-1">PassengerId 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-2">Survived 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-3">Pclass 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-4">Name 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-5">Sex 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-6">Age 177</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-7">SibSp 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-8">Parch 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-9">Ticket 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-10">Fare 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-11">Cabin 687</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-12">Embarked 2</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc3073262807-13">dtype: int64</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Больше всего пропущенных значений в переменной Cabin. Они также есть в переменных Age и Embarked.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc4681997095" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc4681997095-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc4681997095-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc4681997095-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc4681997095-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc4681997095-1"><span class="crayon-c"># переменная Cabin (номер каюты), скорее всего, не является самой важной</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc4681997095-2"><span class="crayon-c"># избавимся от нее с помощью метода .drop()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc4681997095-3"><span class="crayon-c"># (параметр axis отвечает за столбцы, inplace = True сохраняет изменения)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc4681997095-4"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">drop</span><span class="crayon-sy">(</span><span class="crayon-v">columns</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Cabin'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc5666750079" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc5666750079-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc5666750079-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc5666750079-1"><span class="crayon-c"># а вот Age (возраст) точно важен, заменим пустые значения средним арифметическим</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc5666750079-2"><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">fillna</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">mean</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <p>В данном случае мы применили метод <strong>.fillna()</strong>, то есть «заполнить пропуски», к столбцу Age (через <span id="urvanov-syntax-highlighter-672da50d00dc6300878342" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline crayon-theme-familiar-my-copy crayon-theme-familiar-my-copy-inline urvanov-syntax-highlighter-font-consolas" style="font-size: 16px !important; line-height: 22px !important;font-size: 16px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 16px !important; line-height: 22px !important;font-size: 16px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span></span></span>) и заполнили пропуски средним значением этого же столбца через <span id="urvanov-syntax-highlighter-672da50d00dc7014805409" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline crayon-theme-familiar-my-copy crayon-theme-familiar-my-copy-inline urvanov-syntax-highlighter-font-consolas" style="font-size: 16px !important; line-height: 22px !important;font-size: 16px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 16px !important; line-height: 22px !important;font-size: 16px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">mean</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></span></span>.</p> <p class="has-background" style="background-color:#ffe8c4">Более подробно с преобразованием датафреймов мы познакомимся на <a href="https://www.dmitrymakarov.ru/data-analysis/">курсе анализа и обработки данных</a>. На данном этапе важно просто понимать логику нашей работы.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc8847550447" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc8847550447-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dc8847550447-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc8847550447-1"><span class="crayon-c"># у нас остаются две пустые строки в Embarked, удалим их</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dc8847550447-2"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">dropna</span><span class="crayon-sy">(</span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Посмотрим на результат.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dc9339043991" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dc9339043991-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dc9339043991-1"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">isnull</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-k ">sum</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dca685241744" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dca685241744-12">12</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-1">PassengerId 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-2">Survived 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-3">Pclass 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-4">Name 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-5">Sex 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-6">Age 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-7">SibSp 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-8">Parch 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-9">Ticket 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-10">Fare 0</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-11">Embarked 0</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dca685241744-12">dtype: int64</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h4 class="wp-block-heading" id="16-kategorialnye-peremennye">Категориальные переменные</h4> <p>Теперь нужно поработать с категориальными переменными (categorical variable). Как мы помним, модель не сможет подобрать веса, если значения выражены словами (например, male и female в переменной Sex или C, Q, S в переменной Embarked).</p> <p>Кроме того, даже когда категория выражена числами, иногда мы все равно не можем оставить ее без изменения. Например, если не трогать переменную Pclass, то модель воспримет классы 1, 2 и 3 как количественную переменную (как если бы это была цена или возраст), а не как категорию.</p> <p>И в первом, и во втором случае к переменным можно применить one-hot encoding. Мы уже познакомились с этим методом, когда разбирали <a href="https://www.dmitrymakarov.ru/intro/neural-21/#hot">нейронные сети</a>. В библиотеке Pandas есть функция <strong>.get_dummies()</strong>, которая как раз и выполнит необходимые преобразования.</p> <p class="has-background" style="background-color:#ffe8c4">В статистике, dummy variable или вспомогательная переменная — это переменная, которая принимает значения True или False (0 или 1) в зависимости от наличия определенного признака.</p> <p>Применим эту функцию на практике.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dcb392291383" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dcb392291383-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dcb392291383-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dcb392291383-1"><span class="crayon-c"># применим one-hot encoding к переменной Sex (пол) с помощью функции pd.get_dummies()</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dcb392291383-2"><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Sex'</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="244" height="237" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-27.png" alt="кодирование переменной с помощью функции pd.get_dummies()" class="wp-image-26099" style="width:153px;height:auto"/></figure> <p>Первый пассажир — мужчина (в колонке male стоит True), второй и третий — женщины (False).</p> <div id="ub_divider_a7408823-ade0-4a77-910f-f130e5997083" class="wp-block-ub-divider ub-divider-orientation-horizontal"><hr class="ub_divider" ></hr></div> <p>Заметим, что в предыдущей версии <strong>pd.get_dummies()</strong> логические значения обозначались через 0 и 1. Теперь же по умолчанию используются True и False. Для того чтобы вернуться к прежнему обозначению можно использовать параметр <em>dtype = int</em>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dcc053000047" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dcc053000047-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dcc053000047-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dcc053000047-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dcc053000047-1"><span class="crayon-c"># вновь скачаем датафрейм с единственным столбцом Sex</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dcc053000047-2"><span class="crayon-v">previous</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">read_csv</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/train.csv'</span><span class="crayon-sy">)</span><span class="crayon-sy">[</span><span class="crayon-sy">[</span><span class="crayon-s">'Sex'</span><span class="crayon-sy">]</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dcc053000047-3"><span class="crayon-v">previous</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="150" height="356" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-28.png" alt="датафрейм из одного столбца Sex" class="wp-image-26100" style="width:89px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-28.png 150w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-28-126x300.png 126w" sizes="(max-width: 150px) 100vw, 150px" /></figure> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dcd695997650" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dcd695997650-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dcd695997650-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dcd695997650-1"><span class="crayon-c"># закодируем переменную через 0 и 1</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dcd695997650-2"><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">previous</span><span class="crayon-sy">[</span><span class="crayon-s">'Sex'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">dtype</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-k ">int</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="239" height="239" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-29.png" alt="кодирование категориальной переменной через 0 и 1" class="wp-image-26101" style="width:134px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-29.png 239w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-29-150x150.png 150w" sizes="(max-width: 239px) 100vw, 239px" /></figure> <p>Заметим, что Питон воспринимает 0 и 1, и True и False как одно и то же, поэтому это изменение никак не повлияет на исполнение другого кода.</p> <div id="ub_divider_1ab8e30a-c6a6-4d9b-967f-5d8d20cc9a96" class="wp-block-ub-divider ub-divider-orientation-horizontal"><hr class="ub_divider" ></hr></div> <p>Помимо этого, если присмотреться, то станет очевидно, что мы можем обойтись только одним столбцом. В частности, в столбце male уже содержится достаточно информации о поле (True — мужчина, False — женщина). Это значит, что первый столбец можно удалить.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dce540195430" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dce540195430-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dce540195430-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dce540195430-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dce540195430-1"><span class="crayon-c"># удалим первый столбец, он избыточен</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dce540195430-2"><span class="crayon-v">sex</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Sex'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dce540195430-3"><span class="crayon-v">sex</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="136" height="237" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-30.png" alt="удаление первого столбца в функции pd.get_dummies()" class="wp-image-26102" style="width:91px;height:auto"/></figure> <p>Сделаем то же самое для переменных Pclass и Embarked.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dcf013179320" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dcf013179320-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dcf013179320-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dcf013179320-1"><span class="crayon-v">embarked</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Embarked'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dcf013179320-2"><span class="crayon-v">pclass</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Pclass'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <p>Еще раз замечу, что переменную Survived трогать не надо. Она уже выражена через 0 и 1.</p> <p>Присоединим новые (закодированные) переменные к исходному датафрейму train. Для этого используем функцию <strong>.concat()</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd0196681531" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd0196681531-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd0196681531-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd0196681531-1"><span class="crayon-v">train</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">concat</span><span class="crayon-sy">(</span><span class="crayon-sy">[</span><span class="crayon-v">train</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">pclass</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">sex</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">embarked</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd0196681531-2"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="294" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-1024x294.png" alt="присоединение закодированных переменных к исходному датафрейму" class="wp-image-26103" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-1024x294.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-300x86.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-768x221.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-1536x441.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-1200x345.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31-600x172.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-31.png 1856w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <h4 class="wp-block-heading" id="17-otbor-priznakov">Отбор признаков</h4> <p>Теперь давайте отберем те переменные (feature selection), которые мы будем использовать в модели.</p> <ul class="wp-block-list"> <li>В первую очередь, удалим исходные (до применения one-hot encoding) переменные Sex, Pclass и Embarked;</li> <li>Кроме того, переменные PassengerId, Name и Ticket вряд ли скажут что-то определенное о шансах на выживание пассажира, удалим и их.</li> </ul> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd1635733904" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd1635733904-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd1635733904-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd1635733904-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd1635733904-1"><span class="crayon-c"># применим метод .drop() к соответствующим столбцам</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd1635733904-2"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">drop</span><span class="crayon-sy">(</span><span class="crayon-sy">[</span><span class="crayon-s">'PassengerId'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Pclass'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Name'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Sex'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Ticket'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Embarked'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd1635733904-3"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1023" height="234" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-32.png" alt="# применение метода .drop(), чтобы удалить лишние столбцы" class="wp-image-26104" style="width:673px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-32.png 1023w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-32-300x69.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-32-768x176.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-32-600x137.png 600w" sizes="(max-width: 1023px) 100vw, 1023px" /></figure> <p>Как вы видите, теперь все переменные либо количественные (Age, SibSp, Parch, Fare), либо категориальные и выражены через True и False (или 0 и 1 в случае Survived).</p> <h4 class="wp-block-heading" id="18-normalizatsiya-dannykh">Нормализация данных</h4> <p>На занятиях по <a href="https://www.dmitrymakarov.ru/intro/classification-15/#4-normalizatsiya-dannykh">классификации</a> и <a href="https://www.dmitrymakarov.ru/intro/clustering-16/#3-o-vazhnosti-normalizatsii-dannykh">кластеризации</a> мы уже говорили о важности приведения количественных переменных к одному масштабу. В противном случае модель может придать неоправданно большое значение признаку с большим масштабом.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd2301101113" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd2301101113-17">17</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-1"><span class="crayon-c"># импортируем класс StandardScaler</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-2"><span class="crayon-st">from</span><span class="crayon-h"> </span><span class="crayon-v">sklearn</span><span class="crayon-sy">.</span><span class="crayon-e">preprocessing </span><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-i">StandardScaler</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-3"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-4"><span class="crayon-c"># создадим объект этого класса</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-5"><span class="crayon-v">scaler</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">StandardScaler</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-7"><span class="crayon-c"># выберем те столбцы, которые мы хотим масштабировать</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-8"><span class="crayon-v">cols_to_scale</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Fare'</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-9"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-10"><span class="crayon-c"># рассчитаем среднее арифметическое и СКО для масштабирования данных</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-11"><span class="crayon-v">scaler</span><span class="crayon-sy">.</span><span class="crayon-e">fit</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-v">cols_to_scale</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-12"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-13"><span class="crayon-c"># применим их</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-14"><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-v">cols_to_scale</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">scaler</span><span class="crayon-sy">.</span><span class="crayon-e">transform</span><span class="crayon-sy">(</span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-v">cols_to_scale</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-15"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-16"><span class="crayon-c"># посмотрим на результат</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd2301101113-17"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0004 seconds] --> </div> <figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="220" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33-1024x220.png" alt="масштабирование количественных переменных" class="wp-image-26105" style="width:647px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33-1024x220.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33-300x65.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33-768x165.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33-600x129.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-33.png 1106w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>Остается небольшой технический момент. Название переменных 2 и 3 (второй и третий классы) выражены числами, а не строками (их выдает отсутствие кавычек в коде ниже). Так быть не должно.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd3483135678" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd3483135678-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd3483135678-1"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd4959753871" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd4959753871-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd4959753871-1">Index(['Survived', 'Age', 'SibSp', 'Parch', 'Fare', 2, 3, 'male', 'Q', 'S'], dtype='object')</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>Преобразуем эти переменные в тип str через функцию <strong>map()</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd5436597178" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd5436597178-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd5436597178-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd5436597178-1"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span><span class="crayon-sy">.</span><span class="crayon-k ">map</span><span class="crayon-sy">(</span><span class="crayon-k ">str</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd5436597178-2"><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd6655657699" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd6655657699-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd6655657699-1">Index(['Survived', 'Age', 'SibSp', 'Parch', 'Fare', '2', '3', 'male', 'Q', 'S'], dtype='object')</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h3 class="wp-block-heading" id="19-shag-2-razdelenie-obuchayushchey-vyborki">Шаг 2. Разделение обучающей выборки</h3> <p>Разделим обучающую выборку на признаки и целевую переменную.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd7368196287" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd7368196287-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd7368196287-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd7368196287-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd7368196287-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd7368196287-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd7368196287-1"><span class="crayon-c"># поместим в X_train все кроме столбца Survived</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd7368196287-2"><span class="crayon-v">X_train</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">train</span><span class="crayon-sy">.</span><span class="crayon-e">drop</span><span class="crayon-sy">(</span><span class="crayon-s">'Survived'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd7368196287-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd7368196287-4"><span class="crayon-c"># столбец 'Survived' станет нашей целевой переменной (y_train)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd7368196287-5"><span class="crayon-v">y_train</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">train</span><span class="crayon-sy">[</span><span class="crayon-s">'Survived'</span><span class="crayon-sy">]</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd8261178179" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd8261178179-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd8261178179-1"><span class="crayon-v">X_train</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="970" height="237" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-34.png" alt="признаки обучающей выборки" class="wp-image-26106" style="width:585px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-34.png 970w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-34-300x73.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-34-768x188.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-34-600x147.png 600w" sizes="(max-width: 970px) 100vw, 970px" /></figure> <h3 class="wp-block-heading" id="20-shag-3-obuchenie-modeli-logisticheskoy-regressii">Шаг 3. Обучение модели логистической регрессии</h3> <p>Воспользуемся <strong>моделью логистической регрессии</strong> из библиотеки sklearn и передадим ей обучающую выборку.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dd9150089430" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dd9150089430-8">8</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-1"><span class="crayon-c"># импортируем логистическую регрессию из модуля linear_model библиотеки sklearn</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-2"><span class="crayon-st">from</span><span class="crayon-h"> </span><span class="crayon-v">sklearn</span><span class="crayon-sy">.</span><span class="crayon-e">linear_model </span><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-i">LogisticRegression</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-4"><span class="crayon-c"># создадим объект этого класса и запишем его в переменную model</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-5"><span class="crayon-v">model</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">LogisticRegression</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-7"><span class="crayon-c"># обучим нашу модель</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dd9150089430-8"><span class="crayon-v">model</span><span class="crayon-sy">.</span><span class="crayon-e">fit</span><span class="crayon-sy">(</span><span class="crayon-v">X_train</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">y_train</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="311" height="62" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-35.png" alt="модель логистической регрессии" class="wp-image-26107" style="width:176px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-35.png 311w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-35-300x60.png 300w" sizes="(max-width: 311px) 100vw, 311px" /></figure> <p>Остается сделать прогноз и оценить качество модели. При этом обратите внимание, что в тестовых данных отсутствует целевая переменная (почему это так, расскажу ниже), поэтому чтобы иметь хоть какое-то представление о качестве модели, нам необходимо вначале использовать обучающую выборку для построения <strong>прогноза</strong>.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00dda062808767" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00dda062808767-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00dda062808767-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00dda062808767-1"><span class="crayon-c"># сделаем предсказание класса на обучающей выборке</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00dda062808767-2"><span class="crayon-v">y_pred_train</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">model</span><span class="crayon-sy">.</span><span class="crayon-e">predict</span><span class="crayon-sy">(</span><span class="crayon-v">X_train</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Теперь мы можем сравнить прогнозные значения с фактическими. Построим <a href="https://www.dmitrymakarov.ru/intro/classification-15/#10-otsenka-kachestva-modeli">матрицу ошибок</a> (confusion matrix).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00ddb822603794" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddb822603794-9">9</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-1"><span class="crayon-c"># построим матрицу ошибок</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-2"><span class="crayon-st">from</span><span class="crayon-h"> </span><span class="crayon-v">sklearn</span><span class="crayon-sy">.</span><span class="crayon-e">metrics </span><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-v">confusion</span><span class="crayon-sy">_</span>matrix</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-4"><span class="crayon-c"># передадим ей фактические и прогнозные значения</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-5"><span class="crayon-v">conf_matrix</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">confusion_matrix</span><span class="crayon-sy">(</span><span class="crayon-v">y_train</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">y_pred_train</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-7"><span class="crayon-c"># преобразуем в датафрейм</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-8"><span class="crayon-v">conf_matrix_df</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">DataFrame</span><span class="crayon-sy">(</span><span class="crayon-v">conf_matrix</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddb822603794-9"><span class="crayon-v">conf_matrix_df</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="182" height="174" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-36.png" alt="матрица ошибок" class="wp-image-26108" style="width:109px;height:auto"/></figure> <p>Для удобства интерпретации добавим подписи.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00ddc405728820" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddc405728820-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddc405728820-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddc405728820-1"><span class="crayon-v">conf_matrix_labels</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">DataFrame</span><span class="crayon-sy">(</span><span class="crayon-v">conf_matrix</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">columns</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-s">'Прогноз погиб'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Прогноз выжил'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">index</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-s">'Факт погиб'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Факт выжил'</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddc405728820-2"><span class="crayon-v">conf_matrix_labels</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="615" height="178" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-37.png" alt="матрица ошибок с подписанными строками и столбцами" class="wp-image-26109" style="width:390px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-37.png 615w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-37-300x87.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-37-600x174.png 600w" sizes="(max-width: 615px) 100vw, 615px" /></figure> <p>Также давайте посмотрим на <a href="https://www.dmitrymakarov.ru/intro/classification-15/#acc">метрику accuracy</a>. Она показывает долю правильно предсказанных значений. То есть мы берем тех, кого верно предсказали как погибших (true negative, TN, таких было 478), и тех, кого верно предсказали как выживших (true positive, TP, 237), и делим на общее число прогнозов.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00ddd117506876" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00ddd117506876-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00ddd117506876-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00ddd117506876-1"><span class="crayon-c"># рассчитаем метрику accuracy вручную</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00ddd117506876-2"><span class="crayon-k ">round</span><span class="crayon-sy">(</span><span class="crayon-sy">(</span><span class="crayon-cn">478</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-cn">237</span><span class="crayon-sy">)</span><span class="crayon-o">/</span><span class="crayon-sy">(</span><span class="crayon-cn">478</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-cn">237</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-cn">71</span><span class="crayon-h"> </span><span class="crayon-o">+</span><span class="crayon-h"> </span><span class="crayon-cn">103</span><span class="crayon-sy">)</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e21052183601" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e21052183601-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e21052183601-1">0.804</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e25170170268" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e25170170268-8">8</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-1"><span class="crayon-c"># импортируем метрику accuracy из sklearn</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-2"><span class="crayon-st">from</span><span class="crayon-h"> </span><span class="crayon-v">sklearn</span><span class="crayon-sy">.</span><span class="crayon-e">metrics </span><span class="crayon-r">import</span><span class="crayon-h"> </span><span class="crayon-v">accuracy</span><span class="crayon-sy">_</span>score</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-4"><span class="crayon-c"># так же передадим ей фактические и прогнозные значения</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-5"><span class="crayon-v">model_accuracy</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">accuracy_score</span><span class="crayon-sy">(</span><span class="crayon-v">y_train</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">y_pred_train</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-7"><span class="crayon-c"># округлим до трех знаков после запятой</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e25170170268-8"><span class="crayon-k ">round</span><span class="crayon-sy">(</span><span class="crayon-v">model_accuracy</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e26772963317" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e26772963317-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e26772963317-1">0.804</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <p>На обучающей выборке наша модель показала результат в 80,4%. При этом <a href="https://www.dmitrymakarov.ru/intro/train-test-13/">только на тестовой выборке</a> мы можем объективно оценить качество нашего алгоритма.</p> <h3 class="wp-block-heading" id="21-shag-4-postroenie-prognoza-na-testovykh-dannykh">Шаг 4. Построение прогноза на тестовых данных</h3> <p>Посмотрим на тестовые данные.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e27318017248" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e27318017248-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e27318017248-1"><span class="crayon-k ">test</span><span class="crayon-sy">.</span><span class="crayon-e">info</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e28005437601" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e28005437601-18">18</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-1"><class 'pandas.core.frame.DataFrame'></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-2">RangeIndex: 418 entries, 0 to 417</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-3">Data columns (total 11 columns):</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-4"> # Column Non-Null Count Dtype </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-5">--- ------ -------------- ----- </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-6"> 0 PassengerId 418 non-null int64 </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-7"> 1 Pclass 418 non-null int64 </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-8"> 2 Name 418 non-null object </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-9"> 3 Sex 418 non-null object </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-10"> 4 Age 332 non-null float64</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-11"> 5 SibSp 418 non-null int64 </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-12"> 6 Parch 418 non-null int64 </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-13"> 7 Ticket 418 non-null object </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-14"> 8 Fare 417 non-null float64</div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-15"> 9 Cabin 91 non-null object </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-16"> 10 Embarked 418 non-null object </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-17">dtypes: float64(2), int64(4), object(5)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e28005437601-18">memory usage: 36.0+ KB</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e29144093603" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e29144093603-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e29144093603-1"><span class="crayon-k ">test</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="155" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-1024x155.png" alt="тестовые данные датасета "Титаник"" class="wp-image-26110" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-1024x155.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-300x45.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-768x116.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-1536x232.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-1200x182.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38-600x91.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-38.png 1593w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>Взглянув на сводку по тестовым данным, становится заметна одна сложность. Мы обучили модель на <em>обработанных</em> данных. В частности, мы заполнили пропуски, закодировали категориальные переменные и убрали лишние признаки. Кроме того, мы масштабировали количественные переменные и превратили названия столбцов в строки.</p> <p>Для того чтобы наша модель смогла работать с тестовой выборкой, нам нужно таким же образом обработать и эти данные.</p> <p class="has-background" style="background-color:#ffe8c4">При этом обратите внимание, мы не нарушаем принципа разделения данных, поскольку меняем тестовую выборку <em>так же</em>, как мы меняли обучающую.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e2a987925095" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e2a987925095-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e2a987925095-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e2a987925095-1"><span class="crayon-c"># для начала дадим датасету привычное название X_test</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e2a987925095-2"><span class="crayon-v">X_test</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-k ">test</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e2e533627202" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e2e533627202-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e2e533627202-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e2e533627202-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e2e533627202-1"><span class="crayon-c"># заполним пропуски в переменных Age и Fare средним арифметическим</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e2e533627202-2"><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">fillna</span><span class="crayon-sy">(</span><span class="crayon-k ">test</span><span class="crayon-sy">[</span><span class="crayon-s">'Age'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">mean</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e2e533627202-3"><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-s">'Fare'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">fillna</span><span class="crayon-sy">(</span><span class="crayon-k ">test</span><span class="crayon-sy">[</span><span class="crayon-s">'Fare'</span><span class="crayon-sy">]</span><span class="crayon-sy">.</span><span class="crayon-e">mean</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0003 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e2f568282187" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e2f568282187-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e2f568282187-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e2f568282187-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e2f568282187-4">4</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e2f568282187-1"><span class="crayon-c"># выполним one-hot encoding категориальных переменных</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e2f568282187-2"><span class="crayon-v">sex</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-s">'Sex'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e2f568282187-3"><span class="crayon-v">embarked</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-s">'Embarked'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e2f568282187-4"><span class="crayon-v">pclass</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">get_dummies</span><span class="crayon-sy">(</span><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-s">'Pclass'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">drop_first</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0004 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e30230846127" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e30230846127-8">8</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-1"><span class="crayon-c"># присоединим новые столбцы к исходному датафрейму</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-2"><span class="crayon-v">X_test</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">concat</span><span class="crayon-sy">(</span><span class="crayon-sy">[</span><span class="crayon-k ">test</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">pclass</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">sex</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">embarked</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-4"><span class="crayon-c"># и удалим данные, которые теперь не нужны</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-5"><span class="crayon-v">X_test</span><span class="crayon-sy">.</span><span class="crayon-e">drop</span><span class="crayon-sy">(</span><span class="crayon-sy">[</span><span class="crayon-s">'PassengerId'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Pclass'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Name'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Sex'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Cabin'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Ticket'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Embarked'</span><span class="crayon-sy">]</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">axis</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">inplace</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">True</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-6"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-7"><span class="crayon-c"># посмотрим на результат</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e30230846127-8"><span class="crayon-v">X_test</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0004 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="864" height="234" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-39.png" alt="преобразование тестовых данных (кроме масштабирования)" class="wp-image-26113" style="width:522px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-39.png 864w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-39-300x81.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-39-768x208.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-39-600x163.png 600w" sizes="(max-width: 864px) 100vw, 864px" /></figure> <p>Теперь нужно масштабировать количественные переменные. Для этого мы будем использовать те параметры (среднее арифметическое и СКО), которые мы получили при обработке обучающей выборки. Так мы сохраним единообразие изменений и избежим <a href="https://www.dmitrymakarov.ru/intro/classification-15/#comment-12">утечки данных</a> (data leakage).</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e31548654465" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e31548654465-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e31548654465-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e31548654465-3">3</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e31548654465-1"><span class="crayon-c"># применим среднее арифметическое и СКО обучающей выборки для масштабирования тестовых данных </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e31548654465-2"><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-v">cols_to_scale</span><span class="crayon-sy">]</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">scaler</span><span class="crayon-sy">.</span><span class="crayon-e">transform</span><span class="crayon-sy">(</span><span class="crayon-v">X_test</span><span class="crayon-sy">[</span><span class="crayon-v">cols_to_scale</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e31548654465-3"><span class="crayon-v">X_test</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="964" height="235" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-40.png" alt="масштабирование тестовых данных" class="wp-image-26115" style="width:554px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-40.png 964w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-40-300x73.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-40-768x187.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-40-600x146.png 600w" sizes="(max-width: 964px) 100vw, 964px" /></figure> <p>Остается превратить название столбцов в строки.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e35334452170" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e35334452170-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e35334452170-1"><span class="crayon-v">X_test</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">X_test</span><span class="crayon-sy">.</span><span class="crayon-v">columns</span><span class="crayon-sy">.</span><span class="crayon-k ">map</span><span class="crayon-sy">(</span><span class="crayon-k ">str</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <p>И сделать прогноз на тестовой выборке.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e36367094211" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e36367094211-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e36367094211-1"><span class="crayon-v">y_pred_test</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">model</span><span class="crayon-sy">.</span><span class="crayon-e">predict</span><span class="crayon-sy">(</span><span class="crayon-v">X_test</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>На выходе мы получаем массив с прогнозами.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e37082738081" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e37082738081-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e37082738081-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e37082738081-1"><span class="crayon-c"># посмотрим на первые 10 прогнозных значений</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e37082738081-2"><span class="crayon-v">y_pred_test</span><span class="crayon-sy">[</span><span class="crayon-o">:</span><span class="crayon-cn">10</span><span class="crayon-sy">]</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e38128867309" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e38128867309-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e38128867309-1">array([0, 0, 0, 0, 1, 0, 1, 0, 1, 0])</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0000 seconds] --> </div> <h2 class="wp-block-heading" id="22-etap-4-sokhranenie-rezultata-v-novom-fayle-na-servere">Этап 4. Сохранение результата в новом файле на сервере</h2> <p>Теперь, когда прогноз готов, мы можем сформировать новый файл, назовем его result.csv, в котором будет содержаться id пассажира и результат, погиб или нет. Приведу <strong>пример</strong> того, что мы хотим получить.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e39801722970" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e39801722970-6">6</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-1"><span class="crayon-c"># файл с примером можно загрузить не с локального компьютера, а из Интернета</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-2"><span class="crayon-v">url</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/titanic_example.csv'</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-4"><span class="crayon-c"># просто поместим его url в функцию read_csv()</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-5"><span class="crayon-v">example</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">read_csv</span><span class="crayon-sy">(</span><span class="crayon-v">url</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e39801722970-6"><span class="crayon-v">example</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-cn">3</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="367" height="232" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-41.png" alt="пример файла с прогнозными значениями" class="wp-image-26116" style="width:239px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-41.png 367w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-41-300x190.png 300w" sizes="(max-width: 367px) 100vw, 367px" /></figure> <p>Перед <strong>созданием нужного нам файла</strong> (1) соберем данные в новый датафрейм.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e3a410263378" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e3a410263378-9">9</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-1"><span class="crayon-c"># возьмем индекс пассажиров из столбца PassengerId тестовой выборки</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-2"><span class="crayon-v">ids</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-k ">test</span><span class="crayon-sy">[</span><span class="crayon-s">'PassengerId'</span><span class="crayon-sy">]</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-4"><span class="crayon-c"># создадим датафрейм из словаря, в котором</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-5"><span class="crayon-c"># первая пара ключа и значения - это id пассажира, вторая - прогноз "на тесте"</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-6"><span class="crayon-v">result</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-v">pd</span><span class="crayon-sy">.</span><span class="crayon-e">DataFrame</span><span class="crayon-sy">(</span><span class="crayon-sy">{</span><span class="crayon-s">'PassengerId'</span><span class="crayon-o">:</span><span class="crayon-h"> </span><span class="crayon-v">ids</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-s">'Survived'</span><span class="crayon-o">:</span><span class="crayon-h"> </span><span class="crayon-v">y_pred_test</span><span class="crayon-sy">}</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-7"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-8"><span class="crayon-c"># посмотрим, что получилось</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e3a410263378-9"><span class="crayon-v">result</span><span class="crayon-sy">.</span><span class="crayon-e">head</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="360" height="353" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-42.png" alt="файл с прогнозными значениями модели" class="wp-image-26118" style="width:237px;height:auto" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-42.png 360w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-42-300x294.png 300w" sizes="(max-width: 360px) 100vw, 360px" /></figure> <p>И (2) создадим новый файл.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e49297663024" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e49297663024-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e49297663024-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e49297663024-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e49297663024-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e49297663024-5">5</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e49297663024-1"><span class="crayon-c"># создадим новый файл result.csv с помощью функции to_csv(), удалив при этом индекс</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e49297663024-2"><span class="crayon-v">result</span><span class="crayon-sy">.</span><span class="crayon-e">to_csv</span><span class="crayon-sy">(</span><span class="crayon-s">'result.csv'</span><span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-v">index</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">False</span><span class="crayon-sy">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e49297663024-3"> </div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e49297663024-4"><span class="crayon-c"># файл будет сохранен в 'Сессионном хранилище' и, если все пройдет успешно, выведем следующий текст:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e49297663024-5"><span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-s">'Файл успешно сохранился в сессионное хранилище!'</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e4a583274920" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e4a583274920-1">1</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e4a583274920-1">Файл успешно сохранился в сессионное хранилище!</div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> </div> <p>Новый файл появится в «Сессионном хранилище».</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="515" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-1024x515.png" alt="файл с прогнозом в "Сессионном хранилище"" class="wp-image-26119" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-1024x515.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-300x151.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-768x386.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-1536x772.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-1200x603.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43-600x302.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-43.png 1685w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <h2 class="wp-block-heading" id="23-etap-5-skachivanie-obratno-na-zhestkiy-disk">Этап 5. Скачивание обратно на жесткий диск</h2> <p>После этого мы можем скачать файл на жесткий диск.</p> <div class="wp-block-urvanov-syntax-highlighter-code-block"><!-- Urvanov Syntax Highlighter v2.8.37 --> <div id="urvanov-syntax-highlighter-672da50d00e4b794746828" class="urvanov-syntax-highlighter-syntax crayon-theme-familiar-my-copy urvanov-syntax-highlighter-font-consolas urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-always" style=" margin-top: 15px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; font-size: 16px !important; line-height: 22px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="show"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 16px !important; line-height: 22px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-672da50d00e4b794746828-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-672da50d00e4b794746828-2">2</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 16px !important; line-height: 22px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-672da50d00e4b794746828-1"><span class="crayon-c"># применим метод .download() объекта files</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-672da50d00e4b794746828-2"><span class="crayon-v">files</span><span class="crayon-sy">.</span><span class="crayon-e">download</span><span class="crayon-sy">(</span><span class="crayon-s">'/content/result.csv'</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0002 seconds] --> </div> <p>Вот что у нас получилось.</p> <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="615" height="613" src="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/res_csv.png" alt="файл result.csv на жестком диске" class="wp-image-6590" style="width:482px;height:480px" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/res_csv.png 615w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/res_csv-300x300.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/res_csv-150x150.png 150w, https://www.dmitrymakarov.ru/wp-content/uploads/2021/11/res_csv-600x598.png 600w" sizes="(max-width: 615px) 100vw, 615px" /></figure> <h2 class="wp-block-heading" id="24-pro-sorevnovaniya-na-kaggle">Про соревнования на Kaggle</h2> <p>Вы вероятно заметили, что мы так и не узнали насколько хорош наш алгоритм на тестовой выборке. У нас просто нет тестовой целевой переменной (y_test). Дело в том, что эти данные взяты с платформы, которая называется <a href="https://www.kaggle.com/" target="_blank" rel="noreferrer noopener">Kaggle</a>⧉.</p> <p>На этой платформе проводятся соревнования по машинному обучению. Участники получают данные, строят модели и затем подгружают свой результат. Kaggle его оценивает и тот или те, чья модель наиболее точна — выигрывают.</p> <h3 class="wp-block-heading" id="25-sorevnovanie-titanik">Соревнование «Титаник»</h3> <p>«Титаник» — одно из стартовых соревнований Kaggle для новичков. Предлагаю прямо сейчас в нем поучавствовать. На странице <a href="https://www.kaggle.com/c/titanic/" target="_blank" rel="noreferrer noopener">соревнования</a>⧉, после того как вы зарегистрировались на сайте и присоединились к самому соревнованию, у вас появится возможность подгрузить файл с результатом.</p> <p>Для этого зайдите на вкладку Submit Prediction, (1) подгрузите файл result.csv с локального компьютера и (2) нажмите кнопку Submit.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="660" height="1024" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-660x1024.png" alt="подгрузка файла с прогнозными значениями на платформу Kaggle" class="wp-image-26125" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-660x1024.png 660w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-193x300.png 193w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-768x1191.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-990x1536.png 990w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8-600x931.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-8.png 1012w" sizes="(max-width: 660px) 100vw, 660px" /></figure> <p>Платформа сама рассчитает accuracy вашего прогноза «на тесте» (Score). В нашем случае accuracy составляет 0,77033 или 77,03%. Чуть хуже, чем показатель «на трейне» (напомню, там было 80,4%).</p> <p>На вкладке Leaderboard можно посмотреть ваше место в рейтинге участников.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="136" src="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-1024x136.png" alt="место участника соревнования на leaderboard" class="wp-image-26126" srcset="https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-1024x136.png 1024w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-300x40.png 300w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-768x102.png 768w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-1536x205.png 1536w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-1200x160.png 1200w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9-600x80.png 600w, https://www.dmitrymakarov.ru/wp-content/uploads/2024/04/image-9.png 1839w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> <p>Мы с вами оказались на 10588-ом месте из примерно 15600 участников. Для первого раза это неплохой результат.</p> <h2 class="wp-block-heading" id="26-podvedem-itog">Подведем итог</h2> <p>Первая часть занятия была посвящена работе с внешними файлами. Мы научились:</p> <ol class="wp-block-list"> <li>Подгружать внешний файл в сессионное хранилище;</li> <li>Читать этот файл внутри блокнота;</li> <li>Обучать модель «на трейне» и делать прогноз на тестовых данных;</li> <li>Подгружать прогноз в сессионное хранилище;</li> <li>Скачивать его на жесткий диск.</li> </ol> <p>Во второй части мы приняли участие в соревновании «Титаник» на платформе Kaggle. Подгрузив прогноз, платформа сообщила нам accuracy нашей модели «на тесте» и наше место в лидерборде. </p> <h3 class="wp-block-heading" id="27-voprosy-dlya-zakrepleniya">Вопросы для закрепления</h3> <p class="has-black-color has-text-color has-background" style="background-color:#ffe8c4">Как вы считаете, что предпочтительнее использовать, функцию <strong>open()</strong> или конструкцию <strong>with open()</strong>?</p> <div class="wp-block-ub-content-toggle" id="ub-content-toggle-85afbcfe-09bb-4a02-b74b-4c744a33af3d" data-mobilecollapse="true" data-desktopcollapse="true"> <div class="wp-block-ub-content-toggle-accordion" id="ub-content-toggle-panel-block-9e881ad0-1d3f-48ba-8fff-ee0e9707d6ab"> <div class="wp-block-ub-content-toggle-accordion-title-wrap"" aria-controls="ub-content-toggle-panel-0-85afbcfe-09bb-4a02-b74b-4c744a33af3d" tabindex="0"> <p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-85afbcfe-09bb-4a02-b74b-4c744a33af3d">Посмотреть правильный ответ</p><div class="wp-block-ub-content-toggle-accordion-toggle-wrap left"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-math-plus"></span> </div></div><div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-85afbcfe-09bb-4a02-b74b-4c744a33af3d"> <p>Ответ: конструкция <strong>with open()</strong> является более предпочтительной, в частности, потому что после отработки блока with open() Питон сам закрывает файл.</p> </div></div> </div> <p class="has-black-color has-text-color has-background" style="background-color:#ffe8c4">Какие данные мы подгрузили на платформу Kaggle?</p> <div class="wp-block-ub-content-toggle" id="ub-content-toggle-6f5de03b-08d7-41ae-b866-aa830552eeda" data-mobilecollapse="true" data-desktopcollapse="true"> <div class="wp-block-ub-content-toggle-accordion" id="ub-content-toggle-panel-block-edc0ed87-e664-4f11-8001-1dd60886d79c"> <div class="wp-block-ub-content-toggle-accordion-title-wrap"" aria-controls="ub-content-toggle-panel-0-6f5de03b-08d7-41ae-b866-aa830552eeda" tabindex="0"> <p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-6f5de03b-08d7-41ae-b866-aa830552eeda">Посмотреть правильный ответ</p><div class="wp-block-ub-content-toggle-accordion-toggle-wrap left"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-math-plus"></span> </div></div><div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-6f5de03b-08d7-41ae-b866-aa830552eeda"> <p>Ответ: мы подгрузили прогноз на тестовой выборке (y_pred_test). Платформа сравнила прогноз с фактическими данными y_test (то есть целевой переменной), которых у нас изначально не было, и рассчитала accuracy. На основе этой метрики нам было присвоено место в рейтинге участников.</p> </div></div> </div> <p>В следующий раз мы подробнее изучим возможности Питона по работе с <a href="https://www.dmitrymakarov.ru/python/datetime-05/">датой и временем</a>.</p> </div> <!-- .content --> </div> <!-- .post --> <footer class="site-footer section-inner"> <!--<p class="copyright">© 2024 <a href="https://www.dmitrymakarov.ru" class="site-name">Машинное обучение</a></p>--> </footer> <!-- footer --> </main> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js?ver=6.6.2" id="mathjax-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/src/blocks/content-toggle/front.build.js?ver=3.2.2" id="ultimate_blocks-content-toggle-front-script-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/plugins/ultimate-blocks/src/blocks/table-of-contents/front.build.js?ver=3.2.2" id="ultimate_blocks-table-of-contents-front-script-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-includes/js/masonry.min.js?ver=4.2.2" id="masonry-js"></script> <script type="text/javascript" id="mcluhan_global-js-extra"> /* <![CDATA[ */ var mcluhan_ajaxpagination = {"ajaxurl":"https:\/\/www.dmitrymakarov.ru\/wp-admin\/admin-ajax.php","query_vars":"{\"page\":\"\",\"pagename\":\"python\\\/files-04\"}"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.dmitrymakarov.ru/wp-content/themes/mcluhan/assets/js/global.js?ver=2.1.1" id="mcluhan_global-js"></script> </body> </html>