<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>In Machines We Trust</title><link>https://inmachineswetrust.com/</link><description>My journey to become a data scientist</description><atom:link href="https://inmachineswetrust.com/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Sun, 23 Aug 2020 20:35:34 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>He who dove too deep into git checkout and git reset, Part 1</title><link>https://inmachineswetrust.com/posts/git-deep-dive-checkout/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;I love git. I think it's a brilliant masterpiece of design and programming by Linus Torvalds. To me it's more than just a tool—it's art. Ok I'm a little weird but we know that today git is the de facto tool for version control and an unequivocal cornerstone of successful software development.&lt;/p&gt;
&lt;p&gt;In this blog post series, I'm going to dive &lt;em&gt;really&lt;/em&gt; deep into the inner workings of the commands &lt;code&gt;git checkout&lt;/code&gt; and &lt;code&gt;git reset&lt;/code&gt;, break them down logically, and expose the method to the madness. You might already be familiar with a few aspects of these commands, but both of them conceal surprisingly powerful and useful functionality. Some of it might be new territory but I hope a lot of it will absolutely blow your mind. Either way, let's started with &lt;code&gt;git checkout&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/git-deep-dive-checkout/"&gt;Read more…&lt;/a&gt; (13 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>git</category><category>software development</category><category>version control</category><guid>https://inmachineswetrust.com/posts/git-deep-dive-checkout/</guid><pubDate>Sat, 20 Jun 2020 14:00:00 GMT</pubDate></item><item><title>Think twice before dropping that first one-hot encoded column</title><link>https://inmachineswetrust.com/posts/drop-first-columns/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;Many machine learning models demand that categorical features are converted to a format they can comprehend via a widely used feature engineering technique called &lt;strong&gt;one-hot encoding&lt;/strong&gt;. Machines aren't &lt;em&gt;that&lt;/em&gt; smart.&lt;/p&gt;
&lt;p&gt;A common convention after one-hot encoding is to remove one of the one-hot encoded columns from each categorical feature. For example, the feature &lt;code&gt;sex&lt;/code&gt; containing values of &lt;code&gt;male&lt;/code&gt; and &lt;code&gt;female&lt;/code&gt; are transformed into the columns &lt;code&gt;sex_male&lt;/code&gt; and &lt;code&gt;sex_female&lt;/code&gt;, each containing binary values. Because using either of these columns provides sufficient information to determine a person's sex, we can drop one of them.&lt;/p&gt;
&lt;p&gt;In this post, we dive deep into the circumstances where this convention is relevant, necessary, or even prudent.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/drop-first-columns/"&gt;Read more…&lt;/a&gt; (10 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>feature engineering</category><category>linear algebra</category><category>linear regression</category><category>logistic regression</category><category>one-hot encoding</category><category>ordinary least squares</category><category>regularization</category><guid>https://inmachineswetrust.com/posts/drop-first-columns/</guid><pubDate>Tue, 07 May 2019 00:30:00 GMT</pubDate></item><item><title>An opinionated guide for gearing up for data science</title><link>https://inmachineswetrust.com/posts/dev-setup/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;This post couldn't be any more overdue, but going forward, I'm hoping to be more active and to continue sharing my data science knowledge, particularly the nuances that you acquire on the job.&lt;/p&gt;
&lt;p&gt;Whether you're a data scientist, machine learning engineer, or data engineer, your day-to-day typically involves writing code—we &lt;em&gt;are&lt;/em&gt; developers after all. Today I'd like share my &lt;del&gt;idiosyncrasies&lt;/del&gt; thoughts for setting up a solid local machine for data science, sprinkled with tips and software engineering best practices. What this post &lt;em&gt;doesn't&lt;/em&gt; cover are prerequisites for entering the field.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/dev-setup/"&gt;Read more…&lt;/a&gt; (11 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>anaconda</category><category>conda</category><category>git</category><category>Jupyter</category><category>linux</category><guid>https://inmachineswetrust.com/posts/dev-setup/</guid><pubDate>Mon, 29 Apr 2019 02:30:00 GMT</pubDate></item><item><title>A few words about my experience at Insight Data Science</title><link>https://inmachineswetrust.com/posts/update-december2017/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;For the past few months, I attended &lt;a href="http://insightdatascience.com/"&gt;Insight Data Science&lt;/a&gt;—a self-directed fellowship (not a bootcamp) designed to help PhDs from all fields transition into a career as a data scientist in industry. I'll say it upfront: Insight was the most challenging and intense professional endeavor I've undertaken (tops even the PhD or building a nonprofit for me!), but also one of the most rewarding. I'd like to take this opportunity to share some of my experiences.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/update-december2017/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>data science</category><category>insight</category><guid>https://inmachineswetrust.com/posts/update-december2017/</guid><pubDate>Thu, 14 Dec 2017 12:00:00 GMT</pubDate></item><item><title>The next stage in my data science training</title><link>https://inmachineswetrust.com/posts/update-august2017/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;So far my data science training has been entirely self-directed but I'm aware completing the final steps—networking and landing a job—can be exceedingly difficult on your own. Because it's been nearly 7 months since I decided to embark on this journey, I figured this is a good opportunity to share my plan going forward. 
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/update-august2017/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>data science</category><category>insight</category><guid>https://inmachineswetrust.com/posts/update-august2017/</guid><pubDate>Thu, 03 Aug 2017 14:00:00 GMT</pubDate></item><item><title>How to install Keras with a TensorFlow backend for deep learning</title><link>https://inmachineswetrust.com/posts/deep-learning-setup/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;Some of the biggest challenges I've faced while teaching myself data science have been determining what tools are available, which one to invest in learning, or how to access them. For example, once I reached the stage in my training where I was ready to add deep learning to my repertoire, I was baffled on &lt;a href="https://stackoverflow.com/questions/38233996/how-to-import-tensorflow-in-jupyter-notebook-from-conda-with-gpu-support"&gt;how&lt;/a&gt; &lt;a href="https://stackoverflow.com/questions/37061089/trouble-with-tensorflow-in-jupyter-notebook"&gt;troublesome&lt;/a&gt; it was to setup Keras and TensorFlow to work with Jupyter notebooks via the Anaconda distribution. Most solutions glossed over key steps, others just didn't work. After some digging, I came up with my own solution and decided to share it in detail with the community.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/deep-learning-setup/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>anaconda</category><category>deep learning</category><category>keras</category><category>tensorflow</category><guid>https://inmachineswetrust.com/posts/deep-learning-setup/</guid><pubDate>Fri, 28 Jul 2017 14:00:00 GMT</pubDate></item><item><title>Using natural language processing to build a spam filter for text messages</title><link>https://inmachineswetrust.com/posts/sms-spam-filter/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;After watching the film &lt;em&gt;Arrival&lt;/em&gt;, I developed a deep appreciation for the field of linguistics (also my favorite movie of 2016). Human language is the most unstructured type of data, and yet we effortlessly parse and interpret it, and even generate our own. On the other hand, understanding everyday language is a significant challenge for machines; this is the focus of &lt;strong&gt;natural language processing&lt;/strong&gt; (NLP)—the crossroads between linguistics and AI. In this post, we'll make use of some NLP concepts and combine them with machine learning to build a spam filter for SMS text messages.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/sms-spam-filter/"&gt;Read more…&lt;/a&gt; (17 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>classification</category><category>learning curves</category><category>machine learning</category><category>n-grams</category><category>natural language processing</category><category>nested cross-validation</category><category>nltk</category><category>scikit-learn</category><category>supervised learning</category><category>support vector machines</category><category>tf-idf</category><guid>https://inmachineswetrust.com/posts/sms-spam-filter/</guid><pubDate>Tue, 30 May 2017 13:00:00 GMT</pubDate></item><item><title>Training a machine to determine whether a mushroom is edible</title><link>https://inmachineswetrust.com/posts/mushroom-classification/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;It's been awhile since my last blog post but we've been busy with a big move from Houston to Brooklyn. The opportunities in New York City for data science and AI seem endless! I've also been spending some time putting to practice my newly acquired knowledge of machine learning by browsing through open datasets.&lt;/p&gt;
&lt;p&gt;One dataset that piqued my interest is the &lt;a href="http://archive.ics.uci.edu/ml/datasets/Mushroom?ref=datanews.io"&gt;mushroom dataset&lt;/a&gt; from the UCI Machine Learning Repository describing different species from the genera &lt;em&gt;Agaricus&lt;/em&gt; and &lt;em&gt;Lepiota&lt;/em&gt;. The data are taken from The Audubon Society Field Guide to North American Mushrooms, which states "there is no simple rule for determining the edibility of a mushroom". Challenged by this bold claim, I  wanted to explore if a machine could succeed here. In addition to answering this question, this post explores some common issues in machine learning and how to use Python's go-to machine learning library, Scikit-learn, to address them.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/mushroom-classification/"&gt;Read more…&lt;/a&gt; (10 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>classification</category><category>data wrangling</category><category>logistic regression</category><category>machine learning</category><category>nested cross-validation</category><category>scikit-learn</category><category>supervised learning</category><guid>https://inmachineswetrust.com/posts/mushroom-classification/</guid><pubDate>Mon, 15 May 2017 16:00:00 GMT</pubDate></item><item><title>Applying k-means clustering to flow cytometry analysis</title><link>https://inmachineswetrust.com/posts/k-means_clustering/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;Is it possible for a machine to group together similar data on its own? Absolutely—this is what clustering algorithms are all about. These algorithms fall under a branch of machine learning called &lt;strong&gt;unsupervised learning&lt;/strong&gt;. In this branch, we give a machine an &lt;em&gt;unlabeled&lt;/em&gt; training set containing data regarding the features but not the classes. Algorithms are left to their own devices to discover the underlying structure concealed within the data. This is in stark contrast to &lt;a href="http://machinemadephd.com/posts/building-logistic-regression/"&gt;supervised learning&lt;/a&gt;, where the correct answers are available and utilized to train a predictive model.&lt;/p&gt;
&lt;p&gt;In this post, I'd like to introduce an algorithm called &lt;strong&gt;$k$-means clustering&lt;/strong&gt; and also construct one from scratch. Additionally, I'll demonstrate how this algorithm can be used automate an aspect of a widely used life sciences technique called &lt;strong&gt;flow cytometry&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/k-means_clustering/"&gt;Read more…&lt;/a&gt; (13 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>clustering</category><category>k-means</category><category>machine learning</category><category>unsupervised learning</category><guid>https://inmachineswetrust.com/posts/k-means_clustering/</guid><pubDate>Thu, 16 Mar 2017 14:00:00 GMT</pubDate></item><item><title>Iterables, iterators and generators, oh my! Part 2</title><link>https://inmachineswetrust.com/posts/understanding-generators/</link><dc:creator>Red Huq</dc:creator><description>&lt;div&gt;&lt;style type="text/css"&gt;
div.prompt {
	display: none;
}

div.rendered_html table, .rendered_html th, .rendered_html tr, .rendered_html td {
  font-size: 16px;
  border: 1px solid black;
}


&lt;/style&gt;
&lt;div class="cell border-box-sizing text_cell rendered"&gt;&lt;div class="prompt input_prompt"&gt;
&lt;/div&gt;&lt;div class="inner_cell"&gt;
&lt;div class="text_cell_render border-box-sizing rendered_html"&gt;
&lt;p&gt;In a &lt;a href="http://inmachineswetrust.com/posts/understanding-iterators/"&gt;previous post&lt;/a&gt;, we learned about iterators—one of the most powerful programming constructs. Our discussion divulged their role as a fundamental but hidden component of Python's &lt;code&gt;for&lt;/code&gt; loop, which led to a startling revelation regarding the &lt;code&gt;for&lt;/code&gt; loop itself (no spoilers here). We also discovered how to implement the iterator protocol to create our very own iterators, even constructing ones that represent infinite data structures. In this post, I'd like to build upon our knowledge and introduce a more elegant and efficient means for producing iterators. However, if you're not comfortable with the iterator protocol and the inner workings of iterators, I &lt;em&gt;strongly&lt;/em&gt; recommend familiarizing yourself with &lt;a href="http://inmachineswetrust.com/posts/understanding-iterators/"&gt;Part 1&lt;/a&gt; first.
&lt;/p&gt;&lt;p&gt;&lt;a href="https://inmachineswetrust.com/posts/understanding-generators/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><category>generator</category><category>generator function</category><category>iterator</category><category>python</category><guid>https://inmachineswetrust.com/posts/understanding-generators/</guid><pubDate>Fri, 03 Mar 2017 16:00:00 GMT</pubDate></item></channel></rss>