{"id":2312,"date":"2020-03-12T03:51:06","date_gmt":"2020-03-12T03:51:06","guid":{"rendered":"http:\/\/kusuaks7\/?p=1917"},"modified":"2024-01-01T14:24:30","modified_gmt":"2024-01-01T14:24:30","slug":"the-most-useful-ml-tools-2020","status":"publish","type":"post","link":"https:\/\/www.experfy.com\/blog\/ai-ml\/the-most-useful-ml-tools-2020\/","title":{"rendered":"The Most Useful ML Tools 2020"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2312\" class=\"elementor elementor-2312\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-7e6a98cf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7e6a98cf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-114bf953\" data-id=\"114bf953\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3c2c6476 elementor-widget elementor-widget-text-editor\" data-id=\"3c2c6476\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<section>\n<p id=\"1ed9\" data-selectable-paragraph=\"\"><strong>TD; DR<\/strong>\u00a0\u2014 Building good Machine Learning applications is like making Michelin-style dishes. Having a well organized and managed kitchen is critical, but there are too many options to choose from. In this article, I will highlight the tools I found useful in delivering professional projects, share a few thoughts and alternatives, and do a quick real-time survey (you can see what the community thinks after you participate).<\/p>\n\n<\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81e9943 elementor-widget elementor-widget-text-editor\" data-id=\"81e9943\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<hr \/>\n\n<section>\n<p id=\"4d76\" data-selectable-paragraph=\"\">Like any tooling discussion, the list is not exhaustive; but I try to focus on the most useful and simplest tools. Welcome any feedback in the comment section or let me know if there are better alternatives I should mention.<\/p>\n<p id=\"c87f\" data-selectable-paragraph=\"\"><strong><em>Disclaimer<\/em><\/strong><em>: This post is not endorsed or sponsored. I use the term Data Science and ML interchangeably.<\/em><\/p>\n\n<\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c314fe8 elementor-widget elementor-widget-heading\" data-id=\"c314fe8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"26d5\">A Common Question<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-703e766 elementor-widget elementor-widget-text-editor\" data-id=\"703e766\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"d87f\" data-selectable-paragraph=\"\">\u201cHow do I build good Machine Learning applications?\u201d<\/p>\n<p id=\"0cc2\" data-selectable-paragraph=\"\">This question came up many times and in various forms during chats with aspiring data scientists in schools, professionals who are looking to switch, and team managers.<\/p>\n<p id=\"726b\" data-selectable-paragraph=\"\">There are many aspects of delivering a professional data science project. Like many others, I like to use the analogy of cooking in a kitchen: there is the ingredient (data), the recipe (design), the process of cooking (well, your unique approach), and finally, the actual kitchen (tools).<\/p>\n<p id=\"9ab9\" data-selectable-paragraph=\"\">So, this article walks through my\u00a0<strong>kitchen<\/strong>. It highlights the\u00a0<strong>most useful tools<\/strong>\u00a0to design, develop, and deploy\u00a0<strong>full-stack Machine Learning<\/strong>\u00a0applications \u2014 solutions that integrate with systems or serve human users in Production environments.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b449300 elementor-widget elementor-widget-heading\" data-id=\"b449300\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"c8cd\">Overwhelming Possibilities<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3eb041f elementor-widget elementor-widget-text-editor\" data-id=\"3eb041f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"fa25\" data-selectable-paragraph=\"\">We live in a golden age. If you search \u201cML tools\u201d in Google or ask a consultant, you are likely to get something like this:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3403ed4 elementor-widget elementor-widget-image\" data-id=\"3403ed4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/2600\/0*8WUonqYm94kDiM5V.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef3066f elementor-widget elementor-widget-image\" data-id=\"ef3066f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/aVytG2ds8e0tG\/giphy.gif\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8e8da4 elementor-widget elementor-widget-text-editor\" data-id=\"a8e8da4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"6ade\" data-selectable-paragraph=\"\">There are\u00a0<strong>(too) many tools<\/strong>\u00a0out there; the possible combination is infinite. It\u2019 can be confusing and overwhelming. So, let me help you to shrink it down. That said, there is no perfect setup. It all depends on your needs and constraints. So pick and choose accordingly.<\/p>\n<p id=\"b6b2\" data-selectable-paragraph=\"\">My list prioritizes the following (not in order):<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e7faf8 elementor-widget elementor-widget-text-editor\" data-id=\"0e7faf8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li id=\"1619\" data-selectable-paragraph=\"\">Free<\/li>\n \t<li id=\"a81b\" data-selectable-paragraph=\"\">Easy to learn and setup<\/li>\n \t<li id=\"442a\" data-selectable-paragraph=\"\">Future proved (adoption &amp; tool maturity)<\/li>\n \t<li id=\"fc1d\" data-selectable-paragraph=\"\">Engineering over research<\/li>\n \t<li id=\"18ce\" data-selectable-paragraph=\"\">Work for big or small projects at start-up or large enterprises<\/li>\n \t<li id=\"4b38\" data-selectable-paragraph=\"\">Just get the job done<\/li>\n<\/ul>\n<p id=\"da3c\" data-selectable-paragraph=\"\"><em>Caveat: I use Python\u00a0<\/em><em>99% of the time. So the tools work well with or are built with native Python. I haven\u2019t tested them with other programming languages, such as R or Java.<\/em><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82ef61a elementor-widget elementor-widget-heading\" data-id=\"82ef61a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"10cc\">1. The Fridge: Databases<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a039a53 elementor-widget elementor-widget-heading\" data-id=\"a039a53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"6290\"><a href=\"https:\/\/www.postgresql.org\/\" target=\"_blank\" rel=\"noopener\"><strong>PostgreSQL<\/strong><\/a><\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cecec6 elementor-widget elementor-widget-text-editor\" data-id=\"4cecec6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"9f15\" data-selectable-paragraph=\"\">A free and open-source relational database management system (RDBMS) emphasizing extensibility and technical standards compliance. It is designed to handle a range of workloads, from single machines to data warehouses or Web services with many concurrent users.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e11cb8 elementor-widget elementor-widget-image\" data-id=\"2e11cb8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/995\/0*XWTMJOe_mEVsVWaR.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8b022d elementor-widget elementor-widget-text-editor\" data-id=\"d8b022d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"16d5\" data-selectable-paragraph=\"\"><em>Alternatives:\u00a0<\/em><a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" class=\"broken_link\"><em>MySQL<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.sas.com\/en_ca\/home.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>SAS<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.ibm.com\/analytics\/db2\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>IBM DB2<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.oracle.com\/database\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Oracle<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.mongodb.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>MongoDB<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.cloudera.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Cloudera<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/cloud.google.com\/storage\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>GCP<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/aws.amazon.com\/products\/storage\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>AWS<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/azure.microsoft.com\/en-ca\/services\/storage\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Azure<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f644aee elementor-widget elementor-widget-heading\" data-id=\"f644aee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"3aa3\">2. The Countertop: Deployment Pipeline Tools<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f16cd1b elementor-widget elementor-widget-text-editor\" data-id=\"f16cd1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"63de\" data-selectable-paragraph=\"\">Pipeline tools are critical to the speed and quality of development. We should be able to iterate fast with minimum manual processing. Here is a setup that works well, see my\u00a0<a href=\"https:\/\/towardsdatascience.com\/build-full-stack-ml-12-hours-50c310fedd51\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\">12-Hour ML Challenge<\/a>\u00a0article for more details. Every\u00a0<em>lazy<\/em>\u00a0data scientist should try this up early on in the project.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30d270d elementor-widget elementor-widget-image\" data-id=\"30d270d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1139\/0*RJZE0smaV3lN4KkA.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2dd935c elementor-widget elementor-widget-text-editor\" data-id=\"2dd935c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\" data-selectable-paragraph=\"\">Author\u2019s work,\u00a0<a href=\"https:\/\/towardsdatascience.com\/build-full-stack-ml-12-hours-50c310fedd51\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\">12-Hour ML Challenge<\/a><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0596b61 elementor-widget elementor-widget-heading\" data-id=\"0596b61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"70a5\"><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Github<\/strong><\/a><\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61f4269 elementor-widget elementor-widget-text-editor\" data-id=\"61f4269\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"7569\" data-selectable-paragraph=\"\">It offers the distributed version control and source code management (SCM) functionality of Git, plus its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.<\/p>\n<p id=\"1c0d\" data-selectable-paragraph=\"\"><em>Alternative:\u00a0<\/em><a href=\"https:\/\/dvc.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>DVC<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/bitbucket.org\/product\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>BitBucket<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>GitLab<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c9c0a7 elementor-widget elementor-widget-heading\" data-id=\"5c9c0a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"afbd\"><a href=\"https:\/\/www.jetbrains.com\/pycharm\/\" target=\"_blank\" rel=\"noopener\"><strong>PyCharm<\/strong><\/a><strong>\u00a0Community Edition<\/strong><\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51623ad elementor-widget elementor-widget-text-editor\" data-id=\"51623ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"c6a9\" data-selectable-paragraph=\"\">An integrated development environment (IDE) used in computer programming, specifically for the Python language. It is developed by the Czech company JetBrains. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems (VCSes), and supports web development with Django as well as Data Science with Anaconda.<\/p>\n<p id=\"4531\" data-selectable-paragraph=\"\"><em>Alternatives:\u00a0<\/em><a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Atom<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.sublimetext.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Sublime<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29b69df elementor-widget elementor-widget-heading\" data-id=\"29b69df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"fe05\"><a href=\"https:\/\/docs.pytest.org\/en\/latest\/index.html\" target=\"_blank\" rel=\"noopener\">Pytest<\/a><\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-337c0c9 elementor-widget elementor-widget-text-editor\" data-id=\"337c0c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"bd1e\" data-selectable-paragraph=\"\">A framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. It saves lots of time from manual testing. If you need to test something every time you make changes to the code, automate it with Pytest.<\/p>\n<p id=\"c83c\" data-selectable-paragraph=\"\"><em>Alternative:\u00a0<\/em><a href=\"https:\/\/docs.python.org\/3\/library\/unittest.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Unittest<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8db5172 elementor-widget elementor-widget-heading\" data-id=\"8db5172\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"d46f\"><a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener\">CircleCi<\/a><\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5430cbd elementor-widget elementor-widget-text-editor\" data-id=\"5430cbd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"1e90\" data-selectable-paragraph=\"\">CircleCI is a continuous integration and deployment tool. It creates an automated testing workflow using remote dockers when you commit to Github. Circle CI rejects any commit that does not pass the test cases set by PyTest. This ensures code quality, especially when you work with a larger team.<\/p>\n<p id=\"e26a\" data-selectable-paragraph=\"\"><em>Alternative:\u00a0<\/em><a href=\"https:\/\/jenkins.io\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Jenkins<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/travis-ci.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Travis CI<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Github Action<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee65e66 elementor-widget elementor-widget-heading\" data-id=\"ee65e66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"9496\"><a href=\"https:\/\/www.heroku.com\/\" target=\"_blank\" rel=\"noopener\">Heroku<\/a>\u00a0(Only when you need web hosting)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58097fc elementor-widget elementor-widget-text-editor\" data-id=\"58097fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"67d6\" data-selectable-paragraph=\"\">A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud. You can integrate with CircleCI and Github to enable automatic deployment.<\/p>\n<p id=\"a25f\" data-selectable-paragraph=\"\"><em>Alternative:\u00a0<\/em><a href=\"https:\/\/cloud.google.com\/appengine\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Google App Engine,<\/em><\/a><em>\u00a0<\/em><a href=\"https:\/\/aws.amazon.com\/ec2\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>AWS Elastic Compute Cloud<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/medium.com\/@brenda.clark\/heroku-alternatives-top-5-picks-9095cef91d91\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\"><em>others<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa86969 elementor-widget elementor-widget-heading\" data-id=\"fa86969\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"de8e\"><a href=\"https:\/\/www.streamlit.io\/\" target=\"_blank\" rel=\"noopener\">Streamlit<\/a>\u00a0(Only if you need an interactive UI)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e588b88 elementor-widget elementor-widget-text-editor\" data-id=\"e588b88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"b078\" data-selectable-paragraph=\"\">Streamlit is an open-source app framework for Machine Learning and Data Science teams. It\u2019s become one of my favourite tools in recent years. Check out how I used it and the other tools in this section to create a\u00a0<a href=\"https:\/\/towardsdatascience.com\/build-full-stack-ml-12-hours-50c310fedd51\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\"><strong>movie<\/strong><\/a><strong>\u00a0and\u00a0<\/strong><a href=\"https:\/\/towardsdatascience.com\/how-to-design-monte-carlo-simulation-138e9214910a\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\"><strong>simulation<\/strong><\/a><strong>\u00a0app<\/strong>.<\/p>\n<p id=\"050b\" data-selectable-paragraph=\"\"><em>Alternative:\u00a0<\/em><a href=\"https:\/\/palletsprojects.com\/p\/flask\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Flask<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Django<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.tableau.com\/en-ca\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" class=\"broken_link\"><em>Tableau<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0134ef2 elementor-widget elementor-widget-heading\" data-id=\"0134ef2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"a989\">3. The iPad: Exploration Tools<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41af09f elementor-widget elementor-widget-heading\" data-id=\"41af09f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"c326\"><a href=\"https:\/\/www.streamlit.io\/\" target=\"_blank\" rel=\"noopener\">Streamlit<\/a>\u00a0(again)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d29f112 elementor-widget elementor-widget-text-editor\" data-id=\"d29f112\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"e1b3\" data-selectable-paragraph=\"\">Forget about Jupyter Notebook. Yes, that\u2019s right.<\/p>\n<p id=\"cff5\" data-selectable-paragraph=\"\">Jupyter\u00a0<em>was<\/em>\u00a0my go-to tool for exploring data, doing analysis, and experimenting with different data and modelling processes. But I can\u2019t remember how many times when:<\/p>\n\n<ol>\n \t<li id=\"d879\" data-selectable-paragraph=\"\">I spent lots of time debugging (and pulling my hair out), but eventually realized I forgot to run the code from the top; Streamlit fixes this.<\/li>\n \t<li id=\"d62c\" data-selectable-paragraph=\"\">I had to wait a while for my data pipeline to re-run even for a small code change; Streamlit Caching fixes this.<\/li>\n \t<li id=\"5fb9\" data-selectable-paragraph=\"\">I had to re-write or convert codes from Jupyter to executables files \u2014 and the time spent on re-testing; Streamlit offers a shortcut.<\/li>\n<\/ol>\n<p id=\"7227\" data-selectable-paragraph=\"\">It\u2019s frustrating. So, I use Streamlit to do\u00a0<strong>early exploration<\/strong>\u00a0and serve the final front-end \u2014 killing two birds with one stone. The following is my typical screen setup. PyCharm IDE on the left and result visualization on the right. Give it a try.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d866e3 elementor-widget elementor-widget-image\" data-id=\"8d866e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/4074\/1*CqaqOrKTO3nymlXwz_wTjg.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a2de0e3 elementor-widget elementor-widget-text-editor\" data-id=\"a2de0e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\" data-selectable-paragraph=\"\">IDE (left) + live update with Streamlit (right), author\u2019s work from\u00a0<a href=\"https:\/\/towardsdatascience.com\/how-to-design-monte-carlo-simulation-138e9214910a\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"broken_link\">the Forgotten Algorithm<\/a><\/p>\n<p id=\"711b\" data-selectable-paragraph=\"\">Alternative:\u00a0<a href=\"https:\/\/jupyter.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Jupyter Notebook<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.spyder-ide.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Spyder from Anaconda<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/products.office.com\/en-ca\/excel\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Microsoft Excel<\/em><\/a><em>\u00a0(seriously)<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03ef7a1 elementor-widget elementor-widget-heading\" data-id=\"03ef7a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"1ac2\">4. The Knives: ML Frameworks<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-913f8a6 elementor-widget elementor-widget-text-editor\" data-id=\"913f8a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"4615\" data-selectable-paragraph=\"\">Like using actual knives, you should pick the right ones depending on the food and how you want to cut it. There are general-purpose and specialty knives.<\/p>\n<p id=\"09a6\" data-selectable-paragraph=\"\"><strong>Be cautious.<\/strong>\u00a0Using a specialty knife for sushi to cut bones will take a long time, although the sushi knife is shinier. Pick the right tool to get the job done.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a40e21 elementor-widget elementor-widget-heading\" data-id=\"9a40e21\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"74c4\"><a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noopener\">Sklearn<\/a>\u00a0(Common ML use cases)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-003dab8 elementor-widget elementor-widget-text-editor\" data-id=\"003dab8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"ee4d\" data-selectable-paragraph=\"\">The go-to framework for doing general Machine Learning in <a href=\"https:\/\/www.experfy.com\/blog\/bigdata-cloud\/how-to-build-a-data-science-web-app-in-python\/\">Python<\/a>. Enough said.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bc8bbd elementor-widget elementor-widget-image\" data-id=\"1bc8bbd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/3090\/1*Rgtw4Hz8cgdlsAMQQ0xHZQ.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e1f0ba elementor-widget elementor-widget-text-editor\" data-id=\"5e1f0ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\" data-selectable-paragraph=\"\">Use Cases for Sklearn,\u00a0<a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Source<\/a><\/p>\n<p id=\"3f29\" data-selectable-paragraph=\"\"><em>Alternatives: none, period.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-398c860 elementor-widget elementor-widget-heading\" data-id=\"398c860\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\n<h3 id=\"fb36\"><a href=\"https:\/\/pytorch.org\/\" target=\"_blank\" rel=\"noopener\">PyTorch<\/a>\u00a0(Deep Learning use cases)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae9d239 elementor-widget elementor-widget-text-editor\" data-id=\"ae9d239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"6a78\" data-selectable-paragraph=\"\">An open-source machine learning library based on the Torch library. Given the Deep Learning focus, it\u2019s mostly used for applications such as computer vision and natural language processing. It is primarily developed by Facebook\u2019s AI Research lab (FAIR). Recently, many well-known AI research institutes, such as\u00a0<a href=\"https:\/\/openai.com\/blog\/openai-pytorch\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" class=\"broken_link\">Open AI<\/a>, are using PyTorch as their standard tool.<\/p>\n<p id=\"1ff7\" data-selectable-paragraph=\"\"><em>Alternatives:\u00a0<\/em><a href=\"https:\/\/www.tensorflow.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Tensorflow<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/keras.io\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Keras<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/docs.fast.ai\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Fast.ai<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-625095e elementor-widget elementor-widget-heading\" data-id=\"625095e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"238a\"><a href=\"https:\/\/gym.openai.com\/\" target=\"_blank\" rel=\"noopener\">Open AI Gym<\/a>\u00a0(Reinforcement Learning use cases)<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59f2a52 elementor-widget elementor-widget-text-editor\" data-id=\"59f2a52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"75aa\" data-selectable-paragraph=\"\">A toolkit for developing and comparing reinforcement learning algorithms. It offers API and visual environments. This is an active area the communities are building tools for. Not many well-packaged tools are available yet.<\/p>\n<p id=\"4ac6\" data-selectable-paragraph=\"\"><em>Alternatives: many small projects, but not many are as well maintained as the Gym.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-659036b elementor-widget elementor-widget-heading\" data-id=\"659036b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 id=\"df1f\">5. The Stove: Experimentation Management<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-040e8a7 elementor-widget elementor-widget-heading\" data-id=\"040e8a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3 id=\"efe4\">Atlas<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b76e070 elementor-widget elementor-widget-text-editor\" data-id=\"b76e070\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"a205\" data-selectable-paragraph=\"\">A free tool that allows data scientists to set up experiments with a few snippets and surface the results to a web-based dashboard.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79507ed elementor-widget elementor-widget-image\" data-id=\"79507ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/2668\/1*h_yLRROnU5XreKo8rrHnEw.png\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35b77ca elementor-widget elementor-widget-text-editor\" data-id=\"35b77ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\" data-selectable-paragraph=\"\">Atlas process,\u00a0<a href=\"https:\/\/www.atlas.dessa.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">source<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce53525 elementor-widget elementor-widget-text-editor\" data-id=\"ce53525\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"1e92\" data-selectable-paragraph=\"\"><strong>Disclaimer<\/strong>: I worked at Dessa, the company that creates Altas.<\/p>\n<p id=\"ed16\" data-selectable-paragraph=\"\"><em>Alternatives:\u00a0<\/em><a href=\"https:\/\/mlflow.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>ML Flow<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/aws.amazon.com\/sagemaker\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>SageMaker<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.comet.ml\/site\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Comet<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.wandb.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Weights &amp; Biases<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.datarobot.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"><em>Data Robot<\/em><\/a><em>,\u00a0<\/em><a href=\"https:\/\/www.dominodatalab.com\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" class=\"broken_link\"><em>Domino<\/em><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>How to build good Machine Learning applications? There are many aspects of delivering a professional data science project. This article highlights the&nbsp;most useful tools&nbsp;to design, develop, and deploy&nbsp;full-stack Machine Learning&nbsp;applications &mdash; solutions that integrate with systems or serve human users in Production environments. There are&nbsp;many tools&nbsp;out there; the possible combination is infinite. There is no perfect setup. It all depends on your needs and constraints. So pick and choose accordingly.<\/p>\n","protected":false},"author":743,"featured_media":8199,"comment_status":"open","ping_status":"open","sticky":false,"template":"single-post-2.php","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[183],"tags":[924,925,92,926,923],"ppma_author":[3591],"class_list":["post-2312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-ml","tag-deployment-pipeline-tools","tag-exploration-tools","tag-machine-learning","tag-ml-frameworks","tag-ml-tools"],"authors":[{"term_id":3591,"user_id":743,"is_guest":0,"slug":"ian-xiao","display_name":"Ian Xiao","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","user_url":"","last_name":"Xiao","first_name":"Ian","job_title":"","description":"Ian Xiao is Engagement Lead at Dessa, the top AI firm that designs, builds, and deploys enterprise AI solutions."}],"_links":{"self":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/users\/743"}],"replies":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/comments?post=2312"}],"version-history":[{"count":9,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2312\/revisions"}],"predecessor-version":[{"id":35264,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2312\/revisions\/35264"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media\/8199"}],"wp:attachment":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media?parent=2312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/categories?post=2312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/tags?post=2312"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}