Build a Recommender System in Python

بواسطة: Coursera

Overview

In this 2-hour long project-based course, you will learn how to build a Recommender System in Python.

Youtube, Amazon, Google, Netflix…. all of these well-known services are known for their 'magic' algorithms that uncannily predict what videos or movies we would enjoy or what products we might be interested in buying. But how do these recommender systems work? Fortunately, they are simple enough to be understood by the average Python programmer. By the time you've finished "Build a Recommender System in Python", you'll have coded by hand 4 different types of recommender systems that mimic the techniques of Amazon, Netflix, and YouTube.

Note: 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.

Taught by

Charles Ivan Niswander II

Build a Recommender System in Python
الذهاب الي الدورة

Build a Recommender System in Python

بواسطة: Coursera

  • Coursera
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • الجميع
  • N/A
8.1.2PHP Version1.11sRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (741ms)
    • Application (367ms)
    • 1 x Booting (66.7%)
      741.36ms
      1 x Application (33.06%)
      367.39ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed12.12ms
      • select * from `courses` where `slug_ar` = 'build-a-recommender-system-in-python' limit 1
        10.55ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. build-a-recommender-system-in-python
        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-26 20:34:53' where `id` = 3526
        500μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-26 20:34:53
        • 1. 3526
        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 (58)
        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)
        170μ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
        200μ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
        200μ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` = 3517 limit 1
        270μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 3517
        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
        3ctPfQcdNGEDvAZ11gUzM7H31vbORuicQWq1uTEs
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-recommender-system-in-python
        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.44" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.44" ] "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 => "9656ae26b82d9cbb-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.44" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.44" "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" => "9656ae26b82d9cbb-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" => "11556" "REMOTE_ADDR" => "108.162.241.46" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-recommender-system-in-python" "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" => 1753562092.8541 "REQUEST_TIME" => 1753562092 ]
        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 => "Sat, 26 Jul 2025 20:34:53 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IldYT1dPVTNwNzFpYlBJQXpLN3JoMnc9PSIsInZhbHVlIjoiaUlqdytzdG1CWG1XSVU3TDBxY2xmRHMzN2FGRi9aQ1luSGV6RnI1Qm9iZEZoclpSSUY3LzhxNitSZ1RreVhZNkNVNU05TWFtNDNtTEkrbmpxaXlBSndtRXh2QXVaYXhjc25pVVJmK01qaGtTSW16dXBoMTlOckZBQ0hxSkNYcWUiLCJtYWMiOiI5MjRjYWJkYmYwNmQ4MmFjNDk4MTE5N2Q0ZDA2MWEyM2QyNWYwMzZlNzM2ZTRhMjNmOTNjZGU0YTQxMDgyMjcwIiwidGFnIjoiIn0%3D; expires=Sat, 26 Jul 2025 22:34:53 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IldYT1dPVTNwNzFpYlBJQXpLN3JoMnc9PSIsInZhbHVlIjoiaUlqdytzdG1CWG1XSVU3TDBxY2xmRHMzN2FGRi9aQ1luSGV6RnI1Qm9iZEZoclpSSUY3LzhxNitSZ1RreVhZNkNVNU05T" 1 => "laravel_session=eyJpdiI6IlowWU5SOEllK0FTOWI2NzdaM1FkY2c9PSIsInZhbHVlIjoiUVprcVh5QjczNGFtSzArSEFLQXVsdXZlaTZYWGsvbTltOWRhQldTNmVGZXV4WlNkVTJ0ZUFVKy9Xb1BpT2lrYndITThZQ20wWFNQRHM3YW1yVUxFck0vUnkreEhBUy9EWjB5RUIrOFZ4WTFrQnhnK2szTENwS3U2QW1nMktjelQiLCJtYWMiOiIyZDM3NjEzMzYxMjViYzQyYzI0ODc0YjczNjg3NGE2YmE2Y2QyZDJmZGNmYzAwMjRlMWZjYzZjMmQwYTFiM2FhIiwidGFnIjoiIn0%3D; expires=Sat, 26 Jul 2025 22:34:53 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlowWU5SOEllK0FTOWI2NzdaM1FkY2c9PSIsInZhbHVlIjoiUVprcVh5QjczNGFtSzArSEFLQXVsdXZlaTZYWGsvbTltOWRhQldTNmVGZXV4WlNkVTJ0ZUFVKy9Xb1BpT2lrYndI" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IldYT1dPVTNwNzFpYlBJQXpLN3JoMnc9PSIsInZhbHVlIjoiaUlqdytzdG1CWG1XSVU3TDBxY2xmRHMzN2FGRi9aQ1luSGV6RnI1Qm9iZEZoclpSSUY3LzhxNitSZ1RreVhZNkNVNU05TWFtNDNtTEkrbmpxaXlBSndtRXh2QXVaYXhjc25pVVJmK01qaGtTSW16dXBoMTlOckZBQ0hxSkNYcWUiLCJtYWMiOiI5MjRjYWJkYmYwNmQ4MmFjNDk4MTE5N2Q0ZDA2MWEyM2QyNWYwMzZlNzM2ZTRhMjNmOTNjZGU0YTQxMDgyMjcwIiwidGFnIjoiIn0%3D; expires=Sat, 26-Jul-2025 22:34:53 GMT; path=/XSRF-TOKEN=eyJpdiI6IldYT1dPVTNwNzFpYlBJQXpLN3JoMnc9PSIsInZhbHVlIjoiaUlqdytzdG1CWG1XSVU3TDBxY2xmRHMzN2FGRi9aQ1luSGV6RnI1Qm9iZEZoclpSSUY3LzhxNitSZ1RreVhZNkNVNU05T" 1 => "laravel_session=eyJpdiI6IlowWU5SOEllK0FTOWI2NzdaM1FkY2c9PSIsInZhbHVlIjoiUVprcVh5QjczNGFtSzArSEFLQXVsdXZlaTZYWGsvbTltOWRhQldTNmVGZXV4WlNkVTJ0ZUFVKy9Xb1BpT2lrYndITThZQ20wWFNQRHM3YW1yVUxFck0vUnkreEhBUy9EWjB5RUIrOFZ4WTFrQnhnK2szTENwS3U2QW1nMktjelQiLCJtYWMiOiIyZDM3NjEzMzYxMjViYzQyYzI0ODc0YjczNjg3NGE2YmE2Y2QyZDJmZGNmYzAwMjRlMWZjYzZjMmQwYTFiM2FhIiwidGFnIjoiIn0%3D; expires=Sat, 26-Jul-2025 22:34:53 GMT; path=/; httponlylaravel_session=eyJpdiI6IlowWU5SOEllK0FTOWI2NzdaM1FkY2c9PSIsInZhbHVlIjoiUVprcVh5QjczNGFtSzArSEFLQXVsdXZlaTZYWGsvbTltOWRhQldTNmVGZXV4WlNkVTJ0ZUFVKy9Xb1BpT2lrYndI" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "3ctPfQcdNGEDvAZ11gUzM7H31vbORuicQWq1uTEs" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/build-a-recommender-system-in-python" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]