<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saoni Deb</title>
    <description>The latest articles on DEV Community by Saoni Deb (@saonideb).</description>
    <link>https://dev.to/saonideb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F560496%2F205cc712-4545-4787-b86f-955450dbabee.jpeg</url>
      <title>DEV Community: Saoni Deb</title>
      <link>https://dev.to/saonideb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saonideb"/>
    <language>en</language>
    <item>
      <title>A decade in computer science (2014 - 2024)- A brief review.</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Fri, 10 Jan 2025 23:09:40 +0000</pubDate>
      <link>https://dev.to/saonideb/a-decade-in-computer-science-2014-2024-a-brief-review-2lah</link>
      <guid>https://dev.to/saonideb/a-decade-in-computer-science-2014-2024-a-brief-review-2lah</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When I first started leet-coding(2017) there were just 600 questions in total, today there are over 1800 questions in just arrays section!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The first level OA today for Amazon is much above the level of questions I was asked in the last round of interviews in Amazon 2016!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Earlier ML positions were filled based on projects that you worked on, now ML positions require DSA, System Design, Statistics, ML Basics, LLM knowledge, Security overview, DevOps and of-course ML specific hardware knowledge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Networking can help you skip interview rounds(one of my friends just had 1 round of interview)!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Everyone has a different journey, so be patient, but keep moving because time does the same!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take advise from people who are on the same road-map, that keeps you sane and motivated.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So please remember, as days go, everything is going to be tougher, and the longer you are paying attention to things that don't work for you, the farther you are from where you want to be.&lt;/p&gt;

&lt;p&gt;Keep learning things, Move in the Right direction, Because Time and Tech waits for none!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why do you need to learn and understand Algorithms?</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Thu, 25 Apr 2024 08:11:47 +0000</pubDate>
      <link>https://dev.to/saonideb/why-do-you-need-to-learn-and-understand-algorithms-47pg</link>
      <guid>https://dev.to/saonideb/why-do-you-need-to-learn-and-understand-algorithms-47pg</guid>
      <description>&lt;p&gt;Learning is a bit daunting when books don't explain why are you learning this particular thing.&lt;br&gt;
In my early years I had been fortunate to have teachers who actually took out time to feed that curiosity, and explain why we were learning anything.&lt;br&gt;
Be it calculus (which we use in reality to calculate how infinitesimal small force--additive or otherwise, can impact anything) or statistic which we need to visualize details about customers in real life.&lt;br&gt;
If you can visualize one real time use case, learning becomes easier, it makes us feel that us learning something would actually help us contribute towards something in future.&lt;br&gt;
Let's move towards algorithms now, specifically arrays today.&lt;br&gt;
We know arrays are used to store contiguous memory but why do need the related algorithms?&lt;br&gt;
Few of the must needed algorithms that you must have come across are --&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kadane's algorithm&lt;/li&gt;
&lt;li&gt;Linear Search&lt;/li&gt;
&lt;li&gt;Binary Search&lt;/li&gt;
&lt;li&gt;Dutch National Flag&lt;/li&gt;
&lt;li&gt;Prefix and Suffix sum&lt;/li&gt;
&lt;li&gt;Sliding Window&lt;/li&gt;
&lt;li&gt;Two Pointer Technique&lt;/li&gt;
&lt;li&gt;Precomputation
Covering corner cases, and the other types of arrays like sparse, jagged, 2D, frequency, etc are also needed. in our day to day solutions.
We will start with where Kadane's algorithm is used in real life - its applications include buying and selling stocks, in genomic sequences analysis, as well as image processing etc.
The intuition behind it is to find the maximum sum of a contiguous subarray in an array. It gives us an optimal solution in O(n) therefore it is one of the most efficient algorithms.
Below are few of the questions that can be solved using Kadane's algorithm :&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://leetcode.com/problems/maximum-subarray/description/"&gt;Maximim Subarray&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock/"&gt;Best time to buy/sell stocks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://leetcode.com/problems/maximum-product-subarray/"&gt;Maximum Product Subarray&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/degree-of-an-array/"&gt;Degree of an array&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/longest-turbulent-subarray/"&gt;https://leetcode.com/problems/longest-turbulent-subarray/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/maximum-score-of-spliced-array/"&gt;https://leetcode.com/problems/maximum-score-of-spliced-array/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/maximum-absolute-sum-of-any-subarray/"&gt;https://leetcode.com/problems/maximum-absolute-sum-of-any-subarray/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/maximum-subarray-sum-after-one-operation/"&gt;https://leetcode.com/problems/maximum-subarray-sum-after-one-operation/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/substring-with-largest-variance/"&gt;https://leetcode.com/problems/substring-with-largest-variance/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/count-subarrays-with-score-less-than-k/"&gt;https://leetcode.com/problems/count-subarrays-with-score-less-than-k/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/maximum-value-of-a-string-in-an-array/"&gt;https://leetcode.com/problems/maximum-value-of-a-string-in-an-array/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/find-the-substring-with-maximum-cost/"&gt;https://leetcode.com/problems/find-the-substring-with-maximum-cost/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/k-items-with-the-maximum-sum/"&gt;https://leetcode.com/problems/k-items-with-the-maximum-sum/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://leetcode.com/problems/maximum-good-subarray-sum/"&gt;https://leetcode.com/problems/maximum-good-subarray-sum/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>dsa</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The Era of Big Companies</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Fri, 20 Jan 2023 05:20:04 +0000</pubDate>
      <link>https://dev.to/saonideb/the-era-of-big-companies-59a4</link>
      <guid>https://dev.to/saonideb/the-era-of-big-companies-59a4</guid>
      <description>&lt;p&gt;It seems that the Era of big companies has finally ended this year.&lt;br&gt;
With Dream companies like Microsoft, Google &amp;amp; Amazon starting mass layoffs and sources mentioning some of the impending targeted layoffs, we can no longer feel that even attempting to switch right now to these companies will be a good move.&lt;br&gt;
Coming back to start-ups or product that are just being built seem more stable than these companies now-a-days and would perhaps be a better choice to move to.&lt;br&gt;
What do you think?&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Create a self signed Certificate</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Thu, 13 Oct 2022 09:12:57 +0000</pubDate>
      <link>https://dev.to/saonideb/create-a-self-signed-certificate-4ani</link>
      <guid>https://dev.to/saonideb/create-a-self-signed-certificate-4ani</guid>
      <description>&lt;p&gt;Below is the link for creating a self signed certificate online:&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.samltool.com/self_signed_certs.php" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--L_briGqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.samltool.com/img/saml_tool_opengraph.jpg" height="315" class="m-0" width="600"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.samltool.com/self_signed_certs.php" rel="noopener noreferrer" class="c-link"&gt;
          Generate SAML Self-Signed X.509 Certificates - Create Self Signed Certs | SAMLTool.com
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Generate Self-Signed X.509 Certificate. CSR + Public Certificate + private key
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KW-NWLOZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.samltool.com/img/favicon32.png%3Fv2" width="32" height="32"&gt;
        samltool.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ssl</category>
      <category>security</category>
      <category>linux</category>
    </item>
    <item>
      <title>Minio Server Deployment</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Wed, 12 Oct 2022 10:58:20 +0000</pubDate>
      <link>https://dev.to/saonideb/minio-server-deployment-52ld</link>
      <guid>https://dev.to/saonideb/minio-server-deployment-52ld</guid>
      <description>&lt;p&gt;Steps to Deploy your minio server:&lt;/p&gt;

&lt;p&gt;1&amp;gt; &lt;code&gt;wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20221008201100.0.0.x86_64.rpm -O minio.rpm&lt;br&gt;
sudo dnf install minio.rpm&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2&amp;gt;mkdir ~/minio&lt;br&gt;
&lt;code&gt;minio server ~/minio --console-address :9090&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;3&amp;gt;Following output will be displayed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API: http://192.0.2.10:9000  http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin

Console: http://192.0.2.10:9090 http://127.0.0.1:9090
RootUser: minioadmin
RootPass: minioadmin

Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html
   $ mc alias set myminio http://192.0.2.10:9000 minioadmin minioadmin

Documentation: https://min.io/docs/minio/linux/index.html

WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4&amp;gt; Open &lt;a href="http://127.0.0.1:9000"&gt;http://127.0.0.1:9000&lt;/a&gt; in a web browser to access the MinIO Console. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LRoU534f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55socefrkn6jj30l9d48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LRoU534f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55socefrkn6jj30l9d48.png" alt="Image description" width="701" height="734"&gt;&lt;/a&gt;&lt;br&gt;
5&amp;gt; Install the MinIO Client&lt;br&gt;
&lt;code&gt;wget https://dl.min.io/client/mc/release/linux-amd64/mc&lt;br&gt;
chmod +x mc&lt;br&gt;
sudo mv mc /usr/local/bin/mc&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mc alias set local http://127.0.0.1:9000 minioadmin minioadmin&lt;br&gt;
mc admin info local&lt;/code&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>object</category>
      <category>s3</category>
      <category>systemadmin</category>
    </item>
    <item>
      <title>Kats: Forecasting</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Wed, 18 May 2022 20:23:19 +0000</pubDate>
      <link>https://dev.to/saonideb/kats-forecasting-202e</link>
      <guid>https://dev.to/saonideb/kats-forecasting-202e</guid>
      <description>&lt;p&gt;Kats is a toolkit to analyze time series data, a lightweight, easy-to-use, and generalizable framework to perform time series analysis. Time series analysis is an essential component of Data Science and Engineering work at industry, from understanding the key statistics and characteristics, detecting regressions and anomalies, to forecasting future trends. Kats aims to provide the one-stop shop for time series analysis, including detection, forecasting, feature extraction/embedding, multivariate analysis, etc. Kats is released by Facebook's Infrastructure Data Science team. It is available for download on PyPI.&lt;/p&gt;

&lt;p&gt;Here's, the sample example notebook with metrics expanded for better understanding:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://colab.research.google.com/drive/1kElLOB0KArrU8hzpHh-bu_VG17yFWrhA?usp=sharing"&gt;https://colab.research.google.com/drive/1kElLOB0KArrU8hzpHh-bu_VG17yFWrhA?usp=sharing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>100daysofcode</category>
      <category>python</category>
    </item>
    <item>
      <title>Linear Regression With Time Series</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Tue, 17 May 2022 08:33:32 +0000</pubDate>
      <link>https://dev.to/saonideb/linear-regression-with-time-series-4knn</link>
      <guid>https://dev.to/saonideb/linear-regression-with-time-series-4knn</guid>
      <description>&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; &lt;a href="https://www.kaggle.com/code/ryanholbrook/linear-regression-with-time-series"&gt;https://www.kaggle.com/code/ryanholbrook/linear-regression-with-time-series&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post aspires to show the application of modern machine learning methods to time series data with the goal of producing the most accurate predictions.&lt;/p&gt;

&lt;p&gt;Once we check these steps, we'll know how to:&lt;/p&gt;

&lt;p&gt;engineer features to model the major time series components (trends, seasons, and cycles),&lt;br&gt;
visualize time series with many kinds of time series plots,&lt;br&gt;
create forecasting hybrids that combine the strengths of complementary models, and&lt;br&gt;
adapt machine learning methods to a variety of forecasting tasks. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is a Time Series?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
The basic object of forecasting is the time series, which is a set of observations recorded over time. In forecasting applications, the observations are typically recorded with a regular frequency, like daily or monthly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pyZjCBvO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/766l9hivbayw3d4ckz4g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pyZjCBvO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/766l9hivbayw3d4ckz4g.jpg" alt="Image description" width="319" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This series records the number of hardcover book sales at a retail store over 30 days. Notice that we have a single column of observations Hardcover with a time index Date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Linear Regression with Time Series&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Linear regression adapts naturally to even complex forecasting tasks. The linear regression algorithm learns how to make a weighted sum from its input features. &lt;br&gt;
For two features, we would have:&lt;/p&gt;

&lt;p&gt;target = weight_1 * feature_1 + weight_2 * feature_2 + bias&lt;/p&gt;

&lt;p&gt;During training, the regression algorithm learns values for the parameters weight_1, weight_2, and bias that best fit the target. (This algorithm is often called &lt;em&gt;ordinary least squares&lt;/em&gt; since it chooses values that minimize the squared error between the target and the predictions.) The weights are also called &lt;em&gt;regression coefficients&lt;/em&gt; and the bias is also called the &lt;em&gt;intercept&lt;/em&gt; because it tells you where the graph of this function crosses the y-axis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Time-step features&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
There are two kinds of features unique to time series: time-step features and lag features.&lt;/p&gt;

&lt;p&gt;Time-step features are features we can derive directly from the time index. The most basic time-step feature is the time dummy, which counts off time steps in the series from beginning to end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dXRBOkCw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7yt0dcikyw27wu8elvfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dXRBOkCw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7yt0dcikyw27wu8elvfr.png" alt="Image description" width="366" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linear regression with the time dummy produces the model:&lt;/p&gt;

&lt;p&gt;target = weight * time + bias&lt;br&gt;
The time dummy then lets us fit curves to time series in a time plot, where Time forms the x-axis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uZIC1Ucz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50bx9xs8zmfe97zauv57.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uZIC1Ucz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50bx9xs8zmfe97zauv57.png" alt="Image description" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Time-step features let you model time dependence. &lt;br&gt;
A series is time dependent if its values can be predicted from the time they occured. &lt;br&gt;
In the Hardcover Sales series, we can predict that sales later in the month are generally higher than sales earlier in the month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Lag features&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
To make a lag feature we shift the observations of the target series so that they appear to have occured later in time. Here we've created a 1-step lag feature, though shifting by multiple steps is possible too.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YyOhdwC5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6iadsra94epeu3b3ntx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YyOhdwC5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6iadsra94epeu3b3ntx5.png" alt="Image description" width="361" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linear regression with a lag feature produces the model:&lt;/p&gt;

&lt;p&gt;target = weight * lag + bias&lt;br&gt;
So lag features let us fit curves to lag plots where each observation in a series is plotted against the previous observation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d122ZWRy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3tuuayhk2wxhny693mt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d122ZWRy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3tuuayhk2wxhny693mt8.png" alt="Image description" width="490" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see from the lag plot that sales on one day (Hardcover) are correlated with sales from the previous day (Lag_1). When you see a relationship like this, you know a lag feature will be useful.&lt;/p&gt;

&lt;p&gt;More generally, lag features let you model serial dependence.&lt;br&gt;
A time series has serial dependence when an observation can be predicted from previous observations. In Hardcover Sales, we can predict that high sales on one day usually mean high sales the next day.&lt;/p&gt;

&lt;p&gt;Adapting machine learning algorithms to time series problems is largely about feature engineering with the time index and lags. For most of the course, we use linear regression for its simplicity, but these features will be useful whichever algorithm you choose for your forecasting task.&lt;/p&gt;




&lt;p&gt;Tunnel Traffic is a time series describing the number of vehicles traveling through the Baregg Tunnel in Switzerland each day from November 2003 to November 2005. In this example, we'll get some practice applying linear regression to time-step features and lag features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Notebook 1:&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.kaggle.com/code/saonideb/linear-regression-with-time-series-17-05-22/"&gt;https://www.kaggle.com/code/saonideb/linear-regression-with-time-series-17-05-22/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>100daysofml</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>FastAPI</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Wed, 06 Apr 2022 09:46:46 +0000</pubDate>
      <link>https://dev.to/saonideb/fastapi-2clc</link>
      <guid>https://dev.to/saonideb/fastapi-2clc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; &lt;a href="https://fastapi.tiangolo.com"&gt;https://fastapi.tiangolo.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/tiangolo/fastapi"&gt;https://github.com/tiangolo/fastapi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FastAPI is a modern, fast (&lt;strong&gt;high-performance&lt;/strong&gt;), &lt;strong&gt;web framework&lt;/strong&gt; for building APIs with Python 3.6+ based on standard Python type hints.&lt;/p&gt;

&lt;p&gt;Key Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Fewer bugs&lt;/li&gt;
&lt;li&gt;Intuitive&lt;/li&gt;
&lt;li&gt;Easy&lt;/li&gt;
&lt;li&gt;Short&lt;/li&gt;
&lt;li&gt;Robust&lt;/li&gt;
&lt;li&gt;Standards-based&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python Type Code below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from datetime import date

from pydantic import BaseModel

# Declare a variable as a str
# and get editor support inside the function
def main(user_id: str):
    return user_id


# A Pydantic model
class User(BaseModel):
    id: int
    name: str
    joined: date

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be used as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my_user: User = User(id=3, name="John Doe", joined="2018-07-19")

second_user_data = {
    "id": 4,
    "name": "Mary",
    "joined": "2018-11-30",
}

my_second_user: User = User(**second_user_data)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Validation Types:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Validation for most (or all?) Python data types, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON objects (dict).&lt;/li&gt;
&lt;li&gt;JSON array (list) defining item types.&lt;/li&gt;
&lt;li&gt;String (str) fields, defining min and max lengths.&lt;/li&gt;
&lt;li&gt;Numbers (int, float) with min and max values, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Validation for more exotic types, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URL.&lt;/li&gt;
&lt;li&gt;Email.&lt;/li&gt;
&lt;li&gt;UUID.&lt;/li&gt;
&lt;li&gt;...and others.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Asynchronous Code&lt;/strong&gt;&lt;br&gt;
Asynchronous code means that the language has a way to tell the computer / program that at some point in the code, it will have to wait for something else to finish somewhere else.&lt;/p&gt;

&lt;p&gt;That "wait for something else" normally refers to I/O operations that are relatively "slow":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the data from the client to be sent through the network&lt;/li&gt;
&lt;li&gt;the data sent by your program to be received by the client through the network&lt;/li&gt;
&lt;li&gt;the contents of a file in the disk to be read by the system and given to your program&lt;/li&gt;
&lt;li&gt;the contents your program gave to the system to be written to disk&lt;/li&gt;
&lt;li&gt;a remote API operation&lt;/li&gt;
&lt;li&gt;a database operation to finish&lt;/li&gt;
&lt;li&gt;a database query to return the results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the execution time is consumed mostly by waiting for I/O operations, they call them "I/O bound" operations.&lt;/p&gt;

&lt;p&gt;It's called "asynchronous" because the computer / program doesn't have to be "synchronized" with the slow task, waiting for the exact moment that the task finishes, while doing nothing, to be able to take the task result and continue the work.&lt;/p&gt;

&lt;p&gt;For "synchronous" (contrary to "asynchronous") they commonly also use the term "sequential", because the computer / program follows all the steps in sequence before switching to a different task, even if those steps involve waiting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference between Concurrent &amp;amp; Parallelism -&lt;/strong&gt;&lt;br&gt;
This has been explained quite well using the burger example here:&lt;br&gt;
&lt;a href="https://fastapi.tiangolo.com/async/"&gt;https://fastapi.tiangolo.com/async/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JWT means "JSON Web Tokens"&lt;/p&gt;

&lt;p&gt;Uvicorn is an ASGI (Asynchronous Server Gateway Interface) compatible server that will be used for standing up the backend API.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>fastapi</category>
      <category>python</category>
      <category>react</category>
    </item>
    <item>
      <title>Steps to create a virtual environment in Ananconda</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Wed, 23 Mar 2022 05:15:04 +0000</pubDate>
      <link>https://dev.to/saonideb/steps-to-create-a-virtual-environment-in-ananconda-2jff</link>
      <guid>https://dev.to/saonideb/steps-to-create-a-virtual-environment-in-ananconda-2jff</guid>
      <description>&lt;p&gt;Create and activate virtual environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;conda -V
conda update conda
conda create -n &amp;lt;venvname&amp;gt; python=&amp;lt;x.x&amp;gt; anaconda
conda activate &amp;lt;venvname&amp;gt;
conda deactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install package in your venv:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;conda install -n &amp;lt;venvname&amp;gt; &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>beginners</category>
      <category>step</category>
    </item>
    <item>
      <title>Recursive Feature Elimination</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Wed, 16 Mar 2022 10:17:34 +0000</pubDate>
      <link>https://dev.to/saonideb/recursive-feature-elimination-g7</link>
      <guid>https://dev.to/saonideb/recursive-feature-elimination-g7</guid>
      <description>&lt;p&gt;Recursive Feature Elimination or RFE is primarily used for Feature ranking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Given an &lt;strong&gt;external estimator&lt;/strong&gt; that assigns weights to features (e.g., the coefficients of a linear model), the goal of recursive feature elimination (RFE) is to select features by recursively considering smaller and smaller sets of features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First, the estimator is &lt;strong&gt;trained on the initial set of features&lt;/strong&gt; and the importance of each feature is obtained either through any specific attribute or callable. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then, the least important features are pruned from current set of features. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That procedure is recursively repeated on the pruned set until the desired number of features to select is eventually reached.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;RFECV performs RFE in a cross-validation loop to find the optimal number of features.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;First lets get to know how many types of feature selection is provided in sklearn.&lt;br&gt;
The classes in the sklearn.feature_selection module can be used for feature selection/dimensionality reduction on sample sets, either &lt;strong&gt;to improve estimators’ accuracy scores&lt;/strong&gt; or &lt;strong&gt;to boost their performance on very high-dimensional datasets&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Removing features with low variance_(Not applicable for dynamic data)_:
&amp;gt;VarianceThreshold is a simple baseline approach to feature selection. 
&amp;gt;It removes all features whose variance doesn’t meet some threshold.&lt;/li&gt;
&lt;li&gt;Univariate feature selection_(Not applicable for multivariate data)&lt;em&gt;:
&amp;gt;Univariate feature selection works by selecting the best features based on univariate statistical tests.
&amp;gt; It can be seen as a preprocessing step to an estimator.
&amp;gt; _SelectKBest&lt;/em&gt; removes all but the  highest scoring features
&amp;gt; &lt;em&gt;SelectPercentile&lt;/em&gt; removes all but a user-specified highest scoring percentage of features using common univariate statistical tests for each feature: false positive rate SelectFpr, false discovery rate SelectFdr, or family wise error SelectFwe.
&amp;gt; &lt;em&gt;GenericUnivariateSelect&lt;/em&gt; allows to perform univariate feature selection with a configurable strategy. This allows to select the best univariate selection strategy with hyper-parameter search estimator.&lt;/li&gt;
&lt;li&gt;Recursive feature elimination
&amp;gt; Recursive feature elimination with cross-validation is also available&lt;/li&gt;
&lt;li&gt;Feature selection using SelectFromModel&lt;/li&gt;
&lt;li&gt;Sequential Feature Selection&lt;/li&gt;
&lt;li&gt;Feature selection as part of a pipeline&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>machinelearning</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>python</category>
    </item>
    <item>
      <title>Prometheus</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Fri, 21 Jan 2022 05:37:03 +0000</pubDate>
      <link>https://dev.to/saonideb/prometheus-4j37</link>
      <guid>https://dev.to/saonideb/prometheus-4j37</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;A few links to go through:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://events19.linuxfoundation.org/wp-content/uploads/2017/12/AIOps-Anomaly-Detection-with-Prometheus-Marcel-Hild-Red-Hat.pdf"&gt;1 Red Hat's View&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.jeremyjordan.me/ml-monitoring/"&gt;2 Why is monitoring important&lt;/a&gt;&lt;br&gt;
&lt;a href="https://grafana.com/blog/2021/08/02/how-basisai-uses-grafana-and-prometheus-to-monitor-model-drift-in-machine-learning-workloads/"&gt;3 Prometheus &amp;amp; Grafana&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mlopshowto.com/a-journey-into-machine-learning-observability-with-prometheus-and-grafana-part-i-384da4b2d77f"&gt;4 Journey&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.tensorflow.org/io/tutorials/prometheus"&gt;5 On Tensorflow&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/AICoE/prometheus-anomaly-detector"&gt;6 Anomaly Detection&lt;/a&gt;&lt;br&gt;
&lt;a href="https://prometheus.io/"&gt;7 Site Link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pythonrepo.com/repo/jeremyjordan-ml-monitoring"&gt;8 Demo&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Mouse Auto Click Script</title>
      <dc:creator>Saoni Deb</dc:creator>
      <pubDate>Fri, 21 Jan 2022 04:54:36 +0000</pubDate>
      <link>https://dev.to/saonideb/mouse-auto-click-script-59g2</link>
      <guid>https://dev.to/saonideb/mouse-auto-click-script-59g2</guid>
      <description>&lt;p&gt;Last year I faced this &lt;em&gt;Google Colab&lt;/em&gt; issue wherein during my model training time(which took over 6 hours), my notebook kept disconnecting due to inactivity.&lt;br&gt;
Wrote this small script to keep my session and in turn my system active.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from pynput.mouse import Button, Controller
import time

mouse = Controller()

while True:
    mouse.click(Button.left, 1)
    time.sleep(30)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>beginners</category>
      <category>script</category>
    </item>
  </channel>
</rss>
