-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
213 lines (153 loc) · 13.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="google-site-verification" content="CLAZwNRfx6oIwU-FwsUMBEOhwd64lMXSyfkvuubm_kg" />
<title>Data Piques</title>
<link rel="shortcut icon" type="image/png" href="https://blog.ethanrosenthal.com/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="https://blog.ethanrosenthal.com/favicon.ico">
<link href="https://blog.ethanrosenthal.com/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Data Piques Full Atom Feed" />
<link rel="stylesheet" href="https://blog.ethanrosenthal.com/theme/css/screen.css" type="text/css" />
<link rel="stylesheet" href="https://blog.ethanrosenthal.com/theme/css/pygments.css" type="text/css" />
<link rel="stylesheet" href="https://blog.ethanrosenthal.com/theme/css/print.css" type="text/css" media="print" />
<!-- <script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script> -->
<meta name="generator" content="Pelican" />
</head>
<body>
<header>
<nav>
<ul>
<li class="selected"><a href="https://blog.ethanrosenthal.com">Home</a></li>
<li><a href="/archives.html">Archives</a></li>
<li><a href="/pages/about.html">About</a></li>
<li><a href="http://www.ethanrosenthal.com">Website</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="https://blog.ethanrosenthal.com">Data Piques</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content"> <h4 class="date">Aug 06, 2018</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2018/08/06/serverless-integer-programming/" rel="bookmark" title="Permanent Link to "Quick and Dirty Serverless Integer Programming"">Quick and Dirty Serverless Integer Programming</a>
</h2>
<p>We all know that Python has <a href="https://www.economist.com/graphic-detail/2018/07/26/python-is-becoming-the-worlds-most-popular-coding-language">risen</a> above its humble beginnings such that it now powers <a href="https://instagram-engineering.com/web-service-efficiency-at-instagram-with-python-4976d078e366">billion dollar companies</a>. Let's not forget Python's roots, though! It's still an excellent language for running quick and dirty scripts that automate some task. While this works fine for automating my own tasks because I know how to navigate the command line, it's a bit much to ask a layperson to somehow install python and dependencies, open Terminal on a Mac (god help you if they have a Windows computer), type a random string of characters, and hit enter. Ideally, you would give the layperson a button, they hit it, and they get their result.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Mar 22, 2018</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2018/03/22/time-series-for-scikit-learn-people-part2/" rel="bookmark" title="Permanent Link to "Time Series for scikit-learn People (Part II): Autoregressive Forecasting Pipelines"">Time Series for scikit-learn People (Part II): Autoregressive Forecasting Pipelines</a>
</h2>
<p>In this post, I will walk through how to use my new library <a href="https://github.com/ethanrosenthal/skits">skits</a> for building <code>scikit-learn</code> pipelines to fit, predict, and forecast time series data.
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Jan 28, 2018</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2018/01/28/time-series-for-scikit-learn-people-part1/" rel="bookmark" title="Permanent Link to "Time Series for scikit-learn People (Part I): Where's the X Matrix?"">Time Series for scikit-learn People (Part I): Where's the X Matrix?</a>
</h2>
<p>When I first started to learn about machine learning, specifically supervised learning, I eventually felt comfortable with taking some input $\mathbf{X}$, and determining a function $f(\mathbf{X})$ that best maps $\mathbf{X}$ to some known output value $y$. Separately, I dove a little into time series analysis and thought of this as a completely different paradigm. In time series, we don't think of things in terms of features or inputs; rather, we have the time series $y$, and $y$ alone, and we look at previous values of $y$ to predict future values of $y$.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Jun 20, 2017</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2017/06/20/matrix-factorization-in-pytorch/" rel="bookmark" title="Permanent Link to "Matrix Factorization in PyTorch"">Matrix Factorization in PyTorch</a>
</h2>
<p>Hey, remember when I wrote those <a href="https://blog.ethanrosenthal.com/2016/01/09/explicit-matrix-factorization-sgd-als/">ungodly</a> <a href="https://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/">long</a> <a href="https://blog.ethanrosenthal.com/2016/11/07/implicit-mf-part-2/">posts</a> about matrix factorization chock-full of gory math? Good news! You can forget it all. We have now entered the Era of Deep Learning, and automatic differentiation shall be our guiding light.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Mar 20, 2017</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2017/03/20/analytical-numerical-universal/" rel="bookmark" title="Permanent Link to "From Analytical to Numerical to Universal Solutions"">From Analytical to Numerical to Universal Solutions</a>
</h2>
<p>I've been making my way through the recently released <a href="http://www.deeplearningbook.org/">Deep Learning</a> textbook (which is absolutely excellent), and I came upon the section on Universal Approximation Properties. The <a href="https://en.wikipedia.org/wiki/Universal_approximation_theorem">Universal Approximation Theorem</a> (UAT) essentially proves that neural networks are capable of approximating any continuous function (subject to some constraints and with upper …</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Feb 05, 2017</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2017/02/05/rec-a-sketch/" rel="bookmark" title="Permanent Link to "Rec-a-Sketch: a Flask App for Interactive Sketchfab Recommendations"">Rec-a-Sketch: a Flask App for Interactive Sketchfab Recommendations</a>
</h2>
<p>After the long <a href="https://blog.ethanrosenthal.com/2016/10/09/likes-out-guerilla-dataset/">series</a> <a href="https://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/">of</a> <a href="https://blog.ethanrosenthal.com/2016/11/07/implicit-mf-part-2/">previous</a> <a href="https://blog.ethanrosenthal.com/2016/12/05/recasketch-keras/">posts</a> describing various recommendation algorithms using Sketchfab data, I decided to build a website called <a href="http://www.rec-a-sketch.science/">Rec-a-Sketch</a> which visualizes the different algorithms' recommendations. In this post, I'll describe the process of getting this website up and running on AWS with nginx and gunicorn.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Dec 05, 2016</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2016/12/05/recasketch-keras/" rel="bookmark" title="Permanent Link to "Using Keras' Pretrained Neural Networks for Visual Similarity Recommendations"">Using Keras' Pretrained Neural Networks for Visual Similarity Recommendations</a>
</h2>
<p>To close out our series on building recommendation models using <a href="https://blog.ethanrosenthal.com/2016/10/09/likes-out-guerilla-dataset/">Sketchfab data</a>, I will venture far from the <a href="https://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/">previous</a> <a href="https://blog.ethanrosenthal.com/2016/11/07/implicit-mf-part-2/">posts'</a> factorization-based methods and instead explore an unsupervised, deep learning-based model. You'll find that the implementation is fairly simple with remarkably promising results which is almost a smack in the face to all of that effort put in earlier.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Nov 07, 2016</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2016/11/07/implicit-mf-part-2/" rel="bookmark" title="Permanent Link to "Learning to Rank Sketchfab Models with LightFM"">Learning to Rank Sketchfab Models with LightFM</a>
</h2>
<p>In this post we're going to do a bunch of cool things following up on the last <a href="https://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/">post</a> introducing implicit matrix factorization. We're going to explore Learning to Rank, a different method for implicit matrix factorization, and then use the library <a href="http://lyst.github.io/lightfm/docs/home.html">LightFM</a> to incorporate side information into our recommender. Next, we'll use <a href="https://scikit-optimize.github.io/">scikit-optimize</a> to be smarter than grid search for cross validating hyperparameters. Lastly, we'll see that we can move beyond simple user-to-item and item-to-item recommendations now that we have side information embedded in the same space as our users and items. Let's go!</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Oct 19, 2016</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/" rel="bookmark" title="Permanent Link to "Intro to Implicit Matrix Factorization: Classic ALS with Sketchfab Models"">Intro to Implicit Matrix Factorization: Classic ALS with Sketchfab Models</a>
</h2>
<p>Last post I described how I collected implicit feedback data from the website <a href="https://sketchfab.com/">Sketchfab</a>. I then claimed I would write about how to actually build a recommendation system with this data. Well, here we are! Let's build.</p>
<div class="clear"></div>
<div class="info">
</div>
</article> <h4 class="date">Oct 09, 2016</h4>
<article class="post">
<h2 class="title">
<a href="https://blog.ethanrosenthal.com/2016/10/09/likes-out-guerilla-dataset/" rel="bookmark" title="Permanent Link to "Likes Out! Guerilla Dataset!"">Likes Out! Guerilla Dataset!</a>
</h2>
<p>-- <a href="https://www.youtube.com/watch?v=H0kJLW2EwMg">Zack de la Rocha</a></p>
<p><em>tl;dr -> I collected an implicit feedback dataset along with side-information about the items. This dataset contains around 62,000 users and 28,000 items. All the data lives <a href="https://github.com/EthanRosenthal/rec-a-sketch/tree/master/data">here</a> inside of <a href="https://github.com/EthanRosenthal/rec-a-sketch">this</a> repo. Enjoy!</em></p>
<div class="clear"></div>
<div class="info">
</div>
</article>
<div class="clear"></div>
<div class="pages">
<a href="https://blog.ethanrosenthal.com/page/2" class="next_page">Next →</a>
<span>Page 1 of 3</span>
</div>
<div class="clear"></div>
<footer>
<p>
<a href="https://github.com/jody-frankowski/blue-penguin">Blue Penguin</a> Theme
·
Powered by <a href="http://getpelican.com">Pelican</a>
·
<a href="https://blog.ethanrosenthal.com/feeds/all.atom.xml" rel="alternate">Atom Feed</a>
</footer>
</div>
<div class="clear"></div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-54232305-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>