<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Patryk Oleniuk on Medium]]></title>
        <description><![CDATA[Stories by Patryk Oleniuk on Medium]]></description>
        <link>https://medium.com/@patrykoleniuk?source=rss-3437023c06a5------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*ktc-s5CSpo3GIhY1BM4Aww.jpeg</url>
            <title>Stories by Patryk Oleniuk on Medium</title>
            <link>https://medium.com/@patrykoleniuk?source=rss-3437023c06a5------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 04:17:28 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@patrykoleniuk/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Hitchhikers Guide to Software Tool Names]]></title>
            <link>https://medium.com/@patrykoleniuk/hitchhikers-guide-to-software-tool-names-fb3c578de9a6?source=rss-3437023c06a5------2</link>
            <guid isPermaLink="false">https://medium.com/p/fb3c578de9a6</guid>
            <category><![CDATA[software]]></category>
            <category><![CDATA[naming-conventions]]></category>
            <category><![CDATA[git]]></category>
            <category><![CDATA[kafka]]></category>
            <category><![CDATA[pytorch]]></category>
            <dc:creator><![CDATA[Patryk Oleniuk]]></dc:creator>
            <pubDate>Thu, 17 Feb 2022 05:11:58 GMT</pubDate>
            <atom:updated>2022-02-17T05:44:53.901Z</atom:updated>
            <content:encoded><![CDATA[<p>Abbreviations, greek-isms, favorite authors and a flying circus.</p><p>Selection of interesting and comical software naming stories. I hope this sparks some joy for the curious minds and inspire to create great software. Or, at least, software with a great name.</p><h3>Torch, SMORCH, pyTorch</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/256/0*5byMDFkJjaWg4584.png" /><figcaption>official pyTorch logo</figcaption></figure><p>PyTorch, a popular ML library for python, was developed from Torch7. A precursor to the original Torch was a library called SVM-Torch.</p><p>Also around the same time, G.W. Flake described the <strong>S</strong>equential <strong>M</strong>inimal <strong>O</strong>ptimization algorithm (<strong>SMO</strong>), which could be used to train support vector machines on sparse data sets. This was called the <strong>SMORCH</strong> algorithm. SMORCH =<strong>S</strong>equential <strong>M</strong>inimal <strong>O</strong>ptimization <strong>R</strong>egression <strong>C</strong>aching <strong>H</strong>euristics.</p><p>“Torch” is probably an evolution of “Light” from SVM-Light (light version of SVM), combined with a large helping of SMORCHiness. Another option is <strong>T</strong>ensor <strong>O</strong>ptimisation <strong>R</strong>egression <strong>C</strong>aching <strong>H</strong>euristics. (<a href="https://stackoverflow.com/questions/51530778/why-is-pytorch-called-pytorch">src</a>)</p><h3>pandas</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/0*Yss3-Hpt9zy91kGr.png" /><figcaption>official pandas logo</figcaption></figure><p>According to the <a href="https://en.wikipedia.org/wiki/Pandas_(software)">wiki</a> page on pandas,</p><blockquote>the name <strong>is derived from the term “panel data”, an econometrics term for multidimensional structured data sets</strong>.</blockquote><h3>Apache Hadoop</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*3EdQGACgNvwXgPU6.png" /><figcaption>official Hadoop logo</figcaption></figure><p><a href="https://www.usenix.org/legacy/publications/library/proceedings/osdi04/tech/full_papers/dean/dean_html/index.html">The map-reduce paper</a> inspired Doug Cutting to develop an open-source implementation of the Map-Reduce framework.</p><p>He decided to name it <strong>Hadoop</strong>, after his son’s toy elephant. <br>(src: <a href="https://www.cnbc.com/id/100769719">article with pics of the real Hadoop</a> )</p><h3>⎈ k8s</h3><p>The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the “K” and the “s”. (<a href="https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/">src</a>)</p><p>Interestingly, <a href="https://helm.sh/">helms</a> project lets you &quot;manage&quot; the helmsman :D</p><h3><strong>Apache Kafka</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*DIgoPkS9BFE8WHif.png" /><figcaption>official Kafka logo</figcaption></figure><p>Kafka was originally developed at Linkedin, and was subsequently open sourced in early 2011 by Jay Kreps, Neha Narkhede and Jun Rao.</p><p>Jay Kreps, as he mentions in <a href="https://www.quora.com/What-is-the-relation-between-Kafka-the-writer-and-Apache-Kafka-the-distributed-messaging-system/answer/Jay-Kreps">quora himself</a>, chose to name the software after the author Franz Kafka, because it is <em>a system optimized for writing</em>, and he liked Kafka’s literature in college.</p><h3><strong>python</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*YescCRdoP27jpmx9_AAvHA.png" /><figcaption>official python logo</figcaption></figure><p>As described in the official <a href="https://docs.python.org/3/faq/general.html#:~:text=Details%20here.-,Why%20is%20it%20called%20Python%3F,to%20call%20the%20language%20Python">python doc</a>:</p><p>When he began implementing Python, Guido van Rossum was also reading the published scripts from <em>Monty Python’s Flying Circus</em>, a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language <strong>python</strong>.</p><h3><strong>R language</strong></h3><p><a href="https://cran.r-project.org/doc/FAQ/R-FAQ.html#What-is-S_003f">R FAQ</a> mentions:</p><blockquote>The name is partly based on the (first) names of the first two R authors (Robert Gentleman and Ross Ihaka), and partly a play on the name of the Bell Labs language ‘S’.</blockquote><h3>bash</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*TyC1aWrK7kdbfGJ2" /><figcaption>Photo by <a href="https://unsplash.com/@6heinz3r?utm_source=medium&amp;utm_medium=referral">Gabriel Heinzer</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>As explained in the <a href="https://www.gnu.org/software/bash/manual/bash.html#What-is-Bash_003f">bash reference manual</a>, the name bash is <strong>an acronym of “Bourne-again SHell”</strong> which is a pun on Stephen Bourne, author of the Bourne shell. Bash is a superset of the earlier shell, and generally compatible with Bourne shell programs.</p><h3><strong>git</strong></h3><p>Linus Torvalds made his initial commit (<a href="https://bitbucket.org/jacobstopak/baby-git/commits/e83c5163316f89bfbde7d9ab23ca2e25604af290">link to a copy</a>) of git’s code on April 7th 2005. The first paragraph of README file explains:</p><pre>GIT - the stupid content tracker</pre><pre>&quot;git&quot; can mean anything, depending on your mood.</pre><pre> - random three-letter combination that is pronounceable, and not <br>   actually used by any common UNIX command.  The fact that it is a<br>   mispronunciation of &quot;get&quot; may or may not be relevant.<br> - stupid. contemptible and despicable. simple. Take your pick from           the dictionary of slang.<br> - &quot;global information tracker&quot;: you&#39;re in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room. <br> - &quot;goddamn idiotic truckload of sh*t&quot;: when it breaks</pre><pre>This is a stupid (but extremely fast) directory content manager.  It  <br>doesn&#39;t do a whole lot, but what it _does_ do is track directory<br>contents efficiently.</pre><p>As we can see from the paragraph above, Linus kindly offers multiple explanations for Git’s meaning :D.</p><h3>sudo</h3><p>As mentioned in the sudo&#39;s <a href="https://en.wikipedia.org/wiki/Sudo">wiki-page</a>:</p><blockquote>Sudo is a program for Unix-like operating systems that allows users to run programs with the security privileges of the superuser. Its name is a concatenation of “su” (substitute user) and “do”, or take action.</blockquote><p>Thanks for the read. This is the first article from the not-so-serious-software series, there is more to come. If you liked it, please like, share and follow. Feel free to comment or DM for any other cool software name stories!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fb3c578de9a6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Show your ML Project to the Internet in Minutes]]></title>
            <link>https://medium.com/data-science/show-your-ml-project-to-the-internet-in-minutes-2a7bc3167bd0?source=rss-3437023c06a5------2</link>
            <guid isPermaLink="false">https://medium.com/p/2a7bc3167bd0</guid>
            <category><![CDATA[streamlit]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[fast-prototyping]]></category>
            <category><![CDATA[heroku]]></category>
            <dc:creator><![CDATA[Patryk Oleniuk]]></dc:creator>
            <pubDate>Tue, 08 Dec 2020 00:57:35 GMT</pubDate>
            <atom:updated>2020-12-08T00:57:35.861Z</atom:updated>
            <content:encoded><![CDATA[<h4>Streamlit &amp; Heroku Tutorial. Show off your ML model to the Internet, for free and without the whole web-dev hassle.</h4><blockquote>Most of ML projects don&#39;t make it out of localhost</blockquote><blockquote>— Albert Einstein*</blockquote><p>And a lot of them should! So many hours are spent on ML projects at schools, bootcamps, and at home.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Lxl4zX4EsORnERV0" /><figcaption>Photo by <a href="https://unsplash.com/@frelodesign?utm_source=medium&amp;utm_medium=referral">Frelo Design</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Like most of us, when creating ML projects, I usually experiment a lot. I create different visualisations and have a lot of python snippets in my notebooks. Let&#39;s leverage that code (aka copy, paste, adjust) and get something running fast &amp; smoothly.</p><p>Here&#39;s a quick tutorial that should take less than an hour to get your app running publicly.</p><h4>0. Create a GitHub repo from template</h4><p>I assume you have a GitHub account. If not, <a href="https://www.wikihow.com/Create-an-Account-on-GitHub">here is a tutorial</a>.</p><p>To speed things up, I created a dummy app as a template on my GitHub. It is based on <a href="https://towardsdatascience.com/deploy-streamlit-on-heroku-9c87798d2088">this article [1]</a>. There is a skeleton and a sample app provided there. Go to repo: <a href="https://github.com/patryk-oleniuk/streamlit-heroku-template">streamlit-heroku-template</a> , click <em>Use this template</em> and follow the steps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Q7xspNZTItL1a7J-4gbY9g.png" /><figcaption>Streamlit+Heroku template repo.</figcaption></figure><p>You will fork my repo, and choose your own project name.</p><h4>1. Save your ML model to a file</h4><p>I created an ML model for a topic that interests me, as a toy example for this article, <a href="https://en.wikipedia.org/wiki/MNIST_database">MNIST</a>. I&#39;m going to skip the whole ML magic here. I used <a href="https://colab.research.google.com/github/AviatorMoser/keras-mnist-tutorial/blob/master/MNIST%20in%20Keras.ipynb">this notebook [2]</a> as a baseline. When I&#39;m done, I saved the model to a file:</p><pre>model.save(&quot;mlmodels/mnist_model1&quot;)</pre><p>and add it to the repo.</p><pre>git commit mlmodels/* -m &quot;added ml model&quot; <br>git push</pre><p>You could add any files to your app in the same way, e.g. images or some test data.</p><h4>2. Create a Streamlit App</h4><p>This step requires some creativity. Think how to keep it simple, yet let the users interact with your model. Take a look at <a href="https://docs.streamlit.io/en/stable/tutorial/create_a_data_explorer_app.html">Streamlit tutorial [3]</a> and <a href="https://docs.streamlit.io/en/stable/api.html">component library</a>. Here are some components I found useful :</p><ul><li><a href="https://docs.streamlit.io/en/stable/api.html#streamlit.text_input">st.text_input</a> (e.g. for NLP applications)</li><li><a href="https://github.com/andfanilo/streamlit-drawable-canvas">drawable-canvas</a> (custom component for letting users draw and get a result as a numpy array)</li><li><a href="https://docs.streamlit.io/en/stable/api.html#streamlit.image">st.image</a> for showing images</li><li><a href="https://docs.streamlit.io/en/stable/api.html#streamlit.file_uploader">st.file_uploader</a> for letting the users upload file</li></ul><p>Also, if you haven’t done so already, pip install streamlit<br>Write your code, and the run in locally using</p><pre>streamlit run app/streamlit_app.py</pre><p>My tips: Use the code snippets from your ML experimentation phase. For the first deployment, be as simple as possible. If it works, build on the top of that. For the purpose of the template, I created this simple MNIST data explorer and model validator.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/782/1*6Q4cEuAfChTSjL25vKD_DQ.gif" /><figcaption>Template Streamlit app. My MNIST model isn&#39;t perfect, ha?</figcaption></figure><p>Here&#39;s the code. This took less than 20 lines, ❤ Streamlit!</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/11e7056a411fa379a19367079a361a70/href">https://medium.com/media/11e7056a411fa379a19367079a361a70/href</a></iframe><p>When you&#39;re happy with the result, commit/push your changes, and show it to the World!</p><h4>3. Deploy the app to the Internet</h4><p>If you don’t have a Heroku account, create one <a href="https://www.heroku.com/">here</a> for free.</p><p>In this project template, apart from the <em>mlmodels</em> and <em>app</em> folders, there are four additional files, specifically for the purpose of Heroku deployment:</p><ul><li><strong><em>setup.sh<br></em></strong>Some initial setup, like TCP/IP port, or CORS. You can just keep it as is.</li><li><strong><em>Procfile</em></strong><em><br></em>Launches <em>setup.sh</em> and then the Streamlit app. You can just keep it as is.</li><li><strong><em>runtime.txt<br></em></strong>This is here solely to specify python version. You can just keep it as is unless you need a different python version (current is set to 3.8.6).</li><li><strong><em>requirements.txt</em></strong><br>A list of python imports needed to run the code. <strong>You should add yours</strong>, or use automated tools like <a href="https://pypi.org/project/pipreqs/">pipreqs</a> to generate one for you.</li></ul><p>Within the console, click <em>Create New App</em>, and name your app. <br>Beware! This is also gonna be included in the host name <br><strong><em>https://your-app-name.herokuapp.com</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/638/1*kQ6PVfdKQ3WQSaks7Zt1dw.gif" /><figcaption>Choosing your application name on Heroku.</figcaption></figure><p>This step requires you to allow Heroku to access your GitHub Account.<br>Open your Heroku app, and under <em>Deployment method,</em> connect your GitHub account. Then, select your desired repo to deploy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*m4lr14ITqlUm5VJMMPNVcw.gif" /><figcaption>Heroku &lt;-&gt; GitHub integration. Unlike above, you should see your own GitHub repo, and own projects.</figcaption></figure><p><strong><em>Et Voilla!</em> </strong>The app should be building momentarily. You can observe the build, and see what&#39;s happening under <em>Activity</em> tab. If all goes well, it will be up and running in a few minutes under <strong><br>https://<em>your-app-name.herokuapp.com</em></strong></p><p>Moreover, all this is for free, thanks to Heroku&#39;s free tier! Obviously, with limited resources, and limited up-time. This is why it takes a while to run, and if it is unused for a while, the app will go to sleep mode, and it&#39;ll take few more seconds to wake up.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/477/1*twFWJkFmRJ0TYZ4birZnBg.gif" /><figcaption><a href="https://digitsonline.herokuapp.com/">https://digitsonline.herokuapp.com</a></figcaption></figure><h4>Here is a <a href="https://digitsonline.herokuapp.com/">link to my app</a>, that I created in one evening using the same method.</h4><p>Source: <a href="https://github.com/patryk-oleniuk/digitsonline">https://github.com/patryk-oleniuk/digitsonline</a></p><h3>References</h3><p>[1] <a href="https://medium.com/u/c35b3d4694a2">Mohammad Ahmad</a>, How to deploy Streamlit on Heroku, <a href="https://towardsdatascience.com/deploy-streamlit-on-heroku-9c87798d2088">https://towardsdatascience.com/deploy-streamlit-on-heroku-9c87798d2088</a></p><p>[2] Daniel Moser<strong>,</strong> <a href="https://colab.research.google.com/github/AviatorMoser/keras-mnist-tutorial/blob/master/MNIST%20in%20Keras.ipynb">MNIST in Keras</a> Colab Notebook</p><p>[3] Streamlit, <a href="https://www.streamlit.io/">https://www.streamlit.io/</a></p><blockquote>*Einstein could have said if, instead of Theoretical Physic, he was into ML</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2a7bc3167bd0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science/show-your-ml-project-to-the-internet-in-minutes-2a7bc3167bd0">Show your ML Project to the Internet in Minutes</a> was originally published in <a href="https://medium.com/data-science">TDS Archive</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[5 Tips for MLflow Experiment Tracking]]></title>
            <link>https://medium.com/data-science/5-tips-for-mlflow-experiment-tracking-c70ae117b03f?source=rss-3437023c06a5------2</link>
            <guid isPermaLink="false">https://medium.com/p/c70ae117b03f</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[mlflow]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Patryk Oleniuk]]></dc:creator>
            <pubDate>Mon, 11 May 2020 03:03:19 GMT</pubDate>
            <atom:updated>2024-10-05T23:41:51.504Z</atom:updated>
            <content:encoded><![CDATA[<h4>Push MLflow to its limits: visualize, organize, alter and correct your mlflow runs</h4><p>This article is about <a href="https://github.com/mlflow/mlflow">MLflow</a> — an open-source <a href="https://en.wikipedia.org/wiki/MLOps">MLOps</a> tool. If you’ve never heard of it, <a href="https://www.mlflow.org/docs/latest/getting-started/intro-quickstart/index.html">here’s a tutorial</a>.</p><p>I am focusing on <em>MLflow Tracking</em> —functionality that allows logging and viewing parameters, metrics, and artifacts (files) for each of your model/experiment.</p><p>When you log the models you experiment with, you can then summarize and analyze your runs within the MLflow UI (and beyond). You can understand which of them performed the best, troubleshoot, and select the best candidates for deployment. I am using the tool daily and discovered many features that made my life much easier. Enjoy!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BX_5736S3s0TmKRs" /><figcaption>Photo by <a href="https://unsplash.com/@seabas?utm_source=medium&amp;utm_medium=referral">Sebastian Staines</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>1. Interactive Artifacts — HTML, GeoJSON and other</h3><p>Artifact viewer is a great feature designed to drill down into the model you log. You can save files with any format and they will be available to download, but only some of the files are previewed or rendered in the artifact viewer window. As of mid-2020, they are (source: <a href="https://github.com/mlflow/mlflow/blob/master/mlflow/server/js/src/common/utils/FileUtils.ts">FileUtils.ts</a>):</p><blockquote><strong>Text</strong>: .txt, .log, .py, .js, .yaml, .yml, .json, .csv, .tsv, .md, .rst, .jsonnet <br><strong>Image</strong>: .jpg, .bmp, .jpeg, .png, .gif, .svg<br><strong>Interactive</strong>: .html, .geojson</blockquote><p>Here’s a sample snippet saving some of these files:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3a7e7e42afda9361a416bf2caf4d367d/href">https://medium.com/media/3a7e7e42afda9361a416bf2caf4d367d/href</a></iframe><p>Here’s what the UI looks like for this run, rendering very nicely in the Artifact Viewer Window:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/659/1*T76Jg5YE9FqZdG0RSI-OYg.gif" /><figcaption>Testing MLflow Artifact Viewer to its Full Capabilities — Demo</figcaption></figure><p>On top of that, because it can render <em>iframe</em> in HTML, you can actually embed a website (e.g. a dashboard) using <a href="https://gist.github.com/patryk-oleniuk/ed923f0eef55ad80e3c0c3a137042153#file-artifact_viewer_web_embed-py">this snippet</a>. This could be leveraged very nicely if your dashboards are parametrized through URI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vgBJEuAG4V7V3S2apLK5Dw.png" /><figcaption>Wikipedia Page (as an Example) Embedded in the Artifact Viewer.</figcaption></figure><p>Limitations: if your embedded website requires outside context or some authentication, it might not work. You can read more about it in <a href="https://github.com/mlflow/mlflow/issues/2139">this issue</a>.</p><p>This use case is really pushing the tool to its limit and seems a bit hack-y, but it’s possible. I can’t imagine lots of users embedding websites like that.</p><h3>2. Artifacts Organised with Folders</h3><p>When you have many artifacts in your run, you might want to organize them in folders. Here’s how:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/6005c775503e608ddb2a1cd59ff1e555/href">https://medium.com/media/6005c775503e608ddb2a1cd59ff1e555/href</a></iframe><p>Results in:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e0mXOsjgYdzQQlP8nSOH1g.png" /><figcaption>Logging Artifacts in Folders — Demo</figcaption></figure><h3>3. Runs Organised in Sections Using nested=True</h3><p>Sometimes your run has many sections and each of them has its own set of parameters and metrics. You can separate them using nested runs.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7f480b0d2bd646fafe86a4aa004907dd/href">https://medium.com/media/7f480b0d2bd646fafe86a4aa004907dd/href</a></iframe><p>Look at this nicely separated run tree:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i0KMm30k8cPbu-eTVBmUZQ.gif" /><figcaption>Nested Runs — Demo</figcaption></figure><p>Limitations: As you can see above, UI shows the tree structure only for 1st level of nesting, however, the `Parent Run` property is correct for any nested run. I hope the UI reflects a full nested tree in the next versions of MLflow.</p><h3>4. Querying Runs Programmatically with pandas</h3><p>So you ran your experiments, did your batch analysis, and MLflow automatic plots are great, but you’d like something more. You can export your runs and experiments into a pandas df, together with all parameters, metrics, and artifacts!</p><pre>mlflow.search_runs(experiment_ids=[&quot;your_exprmnt_id&quot;])</pre><p>This will get you a nice pandas data frame with all the information you need!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9ybtLuAXu_tUduXza8v2Iw.gif" /><figcaption>Getting all Runs as Pandas DF</figcaption></figure><h3>5. Correcting Runs</h3><p>Imagine you ran your experiment some time ago, but you found a tedious bug in your code. For example, you forgot to divide seconds by 3600 to get hours. Here’s how to correct it:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/6ffaa128ec836f4741a73f162d2c289f/href">https://medium.com/media/6ffaa128ec836f4741a73f162d2c289f/href</a></iframe><p>You can correct, add to, or delete any MLflow run any time after it is complete. Get the run_id either from the UI or by using the <a href="https://www.mlflow.org/docs/latest/python_api/mlflow.html#mlflow.search_runs">search_runs</a> API explained above.</p><h3>6. MLflow is Not Only for ML</h3><p>(More of an observation than a tip)</p><blockquote>All of us programmers are making experiments: tweaking input parameters to optimize the output metrics.</blockquote><p>I found <em>MLflow Tracking</em> &amp; <em>UI</em> very useful in many non-ML experiments, e.g. profiling algorithms or more general AI. Thanks to automated plotting and summary, it serves its purpose beyond Machine Learning. This is mainly thanks to the ease of use of the API and a simplistic but functional UI. The logging capabilities of MLflow are almost unlimited, and the automated plotting is simple but informative!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c70ae117b03f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science/5-tips-for-mlflow-experiment-tracking-c70ae117b03f">5 Tips for MLflow Experiment Tracking</a> was originally published in <a href="https://medium.com/data-science">TDS Archive</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[US Health Insurance Guide for Expats or just why PPO > HMO]]></title>
            <link>https://medium.com/@patrykoleniuk/us-health-insurance-guide-for-expats-or-just-why-ppo-hmo-c170bcfe03ad?source=rss-3437023c06a5------2</link>
            <guid isPermaLink="false">https://medium.com/p/c170bcfe03ad</guid>
            <category><![CDATA[usa]]></category>
            <category><![CDATA[insurance]]></category>
            <category><![CDATA[europe]]></category>
            <category><![CDATA[healthcare]]></category>
            <category><![CDATA[immigration]]></category>
            <dc:creator><![CDATA[Patryk Oleniuk]]></dc:creator>
            <pubDate>Sat, 18 Apr 2020 04:16:21 GMT</pubDate>
            <atom:updated>2020-04-20T01:51:10.860Z</atom:updated>
            <content:encoded><![CDATA[<h3>US Health Insurance Guide or Why PPO &gt; HMO</h3><p><strong>Disclaimer</strong>: The situations explained and advice provided are only from my personal perspective, and should be considered as my personal opinion. In this text I’m providing information that nobody from my environment (HR, colleagues, reddit) told me during my first few months in the US. I consider it to be informative as an immigrant worker not familiar with the US environment.</p><p>For a little bit of background, I am lucky to be born in Europe where health systems are public (or somewhat private but the insurance is mandatory) and level of healthcare is in general decent or beyond. I lived and worked in multiple countries in Europe (thanks 🙏 the EU 🇪🇺 and my english teachers!). Never had to worry if I was able to pay the medical bill or if my prescription was covered. My feelings towards healthcare definitely changed after I moved to the US. Health insurance is a very important thing in general, but even more so here.</p><p>I didn’t find lots of guidelines on my concerns online, so at first I found myself pretty lost in the situation. Fortunately, I started to understand the system a few months later.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1Y3fk_C2xxEAggnVhLTgZQ.png" /></figure><p>Here are types of insurance I used during multiple visits in the US:</p><p><strong>1. Accident / Travel Insurance </strong>— this was what I got when I flew in the first time as a student/intern. It is required to get the student VISA and it only covers accidents (e.g. broken legs) or urgent medical conditions (e.g. flu, appendicitis). It is difficult to have anything covered here(my experience was that you would be denied by default), but if you have a serious accident, it will probably be <em>somewhat</em> covered.</p><p><strong>2. Employee Health Insurance Plan </strong>(details depend on the company) <strong>—</strong> usually you’d have multiple options, but the two main categories listed below should be the main consideration:</p><p><strong>2A. HMO </strong>(<strong>H</strong>ealth <strong>M</strong>aintenance <strong>O</strong>rganization):<br>I trapped myself into choosing this at first, because it’s much cheaper and has low deductible. Basically, you have a single doctor (called PCP) who, together with the insurance, approves your EVERY health move (unless you go to the ER with some urgent issue). <br>For example, you think you need a specialist? Visit your PCP, who first writes paperwork for the insurance pre-approval. The insurance replies within a week. My pre-approval request was denied, so I didn’t get the quality care until 3 weeks later when the back-and-forth paperwork was done.</p><p>Under the hood, PCPs have a set amount of money per HMO patient. Additionally, they are financially discouraged by the insurance to refer patients to other doctors or prescribe some expensive treatments. Also, the sad reality is that <strong>timelines to see a doctor would be much longer if you choose HMO. </strong>This is what happened to me:<br>- [me] Hi, I would like to schedule a visit.<br>- [doc office] HMO or PPO?<br>- [me] HMO.<br>- [doc office] Then, the earliest appointment would be in 10 days.<br>~~~A month later, I changed from HMO to PPO plan. This happened~~~<br>- [doc office] You can come tomorrow any time!</p><p><strong>2B. PPO </strong>(<strong>P</strong>referred <strong>P</strong>rovider <strong>O</strong>rganization):<br>The level of care you get here is somewhat similar or even higher than the EU, but you have to pay more. Differently than HMO, you can call any doctor of your own choice (there’s a looong list of recommended specialists, but you can also go out of network for higher rate if needed) and schedule a visit right away with no approval process. That goes for any specialist, too, including dermatologists, cardiologist, etc. You can do whatever you feel your body needs, whenever you need it, and save lots of time and stress— but not money. The disadvantage is that the deductible here is usually much higher. So is monthly rate( <em>monthly</em> <em>premium).</em></p><h3>Example Data (myself 2017–2020)</h3><p>Here’s a summary of costs and coverage I prepared:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TuMOx1FCIZ2ZTYn0eUm8lw.png" /><figcaption>Summary of the costs and coverage for different type of insurance I had (2017–2020).</figcaption></figure><p>As you can see, my employer (like many others) contributes a big chunk to my health insurance plan, so I can afford my monthly premiums. I cannot imagine how my life would be if I had to fully cover my health insurance. Lots of people are actually just choosing an employer over another for that sole reason — the good health insurance in the company.</p><h3><strong>Final advice</strong></h3><p>The more you (or rather your employer) pay for the insurance, the better service and coverage you get. As expected, USA happens to be the extreme case of that principle.</p><p>If you visit doctors on a regular basis (&gt; once a year) for non-trivial tasks (e.g. need specialist periodically or some advanced treatments) and can afford not to choose HMO, DON’T. Spare yourself the frustration and save the trees for the pre-approval paperwork.</p><p>Please remember that the statement above is only the opinion of a relatively young immigrant worker without a big family with me. Every person and living situation is different, so your opinions and experiences might be extremely different than mine — feel free to discuss in the comments.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c170bcfe03ad" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>