Classification Trees in Python, From Start To Finish

Brought by: Coursera

Overview

In this 1-hour long project-based course, you will learn how to build Classification Trees in Python, using a real world dataset that has missing data and categorical data that must be transformed with One-Hot Encoding. We then use Cost Complexity Pruning and Cross Validation to build a tree that is not overfit to the Training Dataset.

This course runs on Coursera's hands-on project platform called Rhyme. On Rhyme, you do projects in a hands-on manner in your browser. You will get instant access to pre-configured cloud desktops containing all of the software and data you need for the project. Everything is already set up directly in your Internet browser so you can just focus on learning. For this project, you’ll get instant access to a cloud desktop with (e.g. Python, Jupyter, and Tensorflow) pre-installed.

Prerequisites:
In order to be successful in this project, you should be familiar with Python and the theory behind Decision Trees, Cost Complexity Pruning, Cross Validation and Confusion Matrices.

Notes:
- This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Classification Trees in Python, from Start To Finish
    • In this lesson we will use scikit-learn and Cost Complexity Pruning to build a Classification Tree, which uses continuous and categorical data from the UCI Machine Learning Repository to predict whether or not a patient has heart disease.

Taught by

Josh Starmer

Classification Trees in Python, From Start To Finish
Go to course

Classification Trees in Python, From Start To Finish

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version786msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (514ms)
    • Application (270ms)
    • 1 x Booting (65.41%)
      513.91ms
      1 x Application (34.35%)
      269.87ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed8.3ms
      • select * from `courses` where `slug_en` = 'classification-trees-in-python,-from-start-to-finish' limit 1
        6.39ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. classification-trees-in-python,-from-start-to-finish
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-29 20:59:32' where `id` = 1335
        720μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-29 20:59:32
        • 1. 1335
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (4)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1328 limit 1
        290μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1328
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        XzOoEpPhu5CxHGwRd6XBhaPy5rdvWBKEkMpk7x6f
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/classification-trees-in-python,-from-star...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/classification-trees-in-python,-from-start-to-finish
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.78" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.78" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "966f8a638a95a1e6-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.78" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.78" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "966f8a638a95a1e6-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "40576" "REMOTE_ADDR" => "108.162.242.32" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/classification-trees-in-python,-from-start-to-finish" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753822772.0093 "REQUEST_TIME" => 1753822772 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 29 Jul 2025 20:59:32 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IktpcEpoWkNhU3FjcXVCR2hqbW1NYXc9PSIsInZhbHVlIjoiWUxyZ1IrUXNGZjJFWTVFeUVEbHV3eFRkMFdYMjM1YWhkTk5VYVZRQW0yMkpBVDU2bTZoV2lON0FMSmd1Wmh0S0pxWFBXbW1rU3I2akNTdytiSjBHYzZ3RE0vVnVERjIxenpFcEZYbm1ZMGNicEMveFMvT1I2Tjhsa0ZpMmZsVTIiLCJtYWMiOiI2ZGY4NzljODM4N2YwZDE1MWExYzk4N2ZhMGU2NGE2MmM2ZGRmZGViMDExZGUwYzc5OTlkYmFmNTZhNDdjZmFhIiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 22:59:32 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IktpcEpoWkNhU3FjcXVCR2hqbW1NYXc9PSIsInZhbHVlIjoiWUxyZ1IrUXNGZjJFWTVFeUVEbHV3eFRkMFdYMjM1YWhkTk5VYVZRQW0yMkpBVDU2bTZoV2lON0FMSmd1Wmh0S0pxWFBXb" 1 => "laravel_session=eyJpdiI6InZDQzgwQTQ3VzNrK21zSk02Sy9qcnc9PSIsInZhbHVlIjoiVEF4bG9ieUJ3YXhENDQ2OFpsaEswdTM5dytQb1ZydDJ6WnJ3RUFYV253ekJDbWdXcElVSUJ1OHdyTWxMeW15aTNSMFo5dzFWV0NOTnVnZGJKS29LVm9tVWkxbUxVdUcrVUlkTWRWcjUzWXJEaWhtRThXc3ZSdU00Z1J4VUJmU2MiLCJtYWMiOiIzOTdmOTBmMTRkZTRkMGI5MzRhNmQ4YTM1NjIyNDIwNDA0ODIyZTY0NDUwZGM5YjFkMDk4M2MzMjFhNjMzMWY0IiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 22:59:32 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InZDQzgwQTQ3VzNrK21zSk02Sy9qcnc9PSIsInZhbHVlIjoiVEF4bG9ieUJ3YXhENDQ2OFpsaEswdTM5dytQb1ZydDJ6WnJ3RUFYV253ekJDbWdXcElVSUJ1OHdyTWxMeW15aTNS" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IktpcEpoWkNhU3FjcXVCR2hqbW1NYXc9PSIsInZhbHVlIjoiWUxyZ1IrUXNGZjJFWTVFeUVEbHV3eFRkMFdYMjM1YWhkTk5VYVZRQW0yMkpBVDU2bTZoV2lON0FMSmd1Wmh0S0pxWFBXbW1rU3I2akNTdytiSjBHYzZ3RE0vVnVERjIxenpFcEZYbm1ZMGNicEMveFMvT1I2Tjhsa0ZpMmZsVTIiLCJtYWMiOiI2ZGY4NzljODM4N2YwZDE1MWExYzk4N2ZhMGU2NGE2MmM2ZGRmZGViMDExZGUwYzc5OTlkYmFmNTZhNDdjZmFhIiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 22:59:32 GMT; path=/XSRF-TOKEN=eyJpdiI6IktpcEpoWkNhU3FjcXVCR2hqbW1NYXc9PSIsInZhbHVlIjoiWUxyZ1IrUXNGZjJFWTVFeUVEbHV3eFRkMFdYMjM1YWhkTk5VYVZRQW0yMkpBVDU2bTZoV2lON0FMSmd1Wmh0S0pxWFBXb" 1 => "laravel_session=eyJpdiI6InZDQzgwQTQ3VzNrK21zSk02Sy9qcnc9PSIsInZhbHVlIjoiVEF4bG9ieUJ3YXhENDQ2OFpsaEswdTM5dytQb1ZydDJ6WnJ3RUFYV253ekJDbWdXcElVSUJ1OHdyTWxMeW15aTNSMFo5dzFWV0NOTnVnZGJKS29LVm9tVWkxbUxVdUcrVUlkTWRWcjUzWXJEaWhtRThXc3ZSdU00Z1J4VUJmU2MiLCJtYWMiOiIzOTdmOTBmMTRkZTRkMGI5MzRhNmQ4YTM1NjIyNDIwNDA0ODIyZTY0NDUwZGM5YjFkMDk4M2MzMjFhNjMzMWY0IiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 22:59:32 GMT; path=/; httponlylaravel_session=eyJpdiI6InZDQzgwQTQ3VzNrK21zSk02Sy9qcnc9PSIsInZhbHVlIjoiVEF4bG9ieUJ3YXhENDQ2OFpsaEswdTM5dytQb1ZydDJ6WnJ3RUFYV253ekJDbWdXcElVSUJ1OHdyTWxMeW15aTNS" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "XzOoEpPhu5CxHGwRd6XBhaPy5rdvWBKEkMpk7x6f" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/classification-trees-in-python,-from-start-to-finish" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]