<?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>Forem: Rohit Prasain</title>
    <description>The latest articles on Forem by Rohit Prasain (@rohit_prasain).</description>
    <link>https://forem.com/rohit_prasain</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%2F1875348%2F61bcb8de-8e41-4f4c-b943-3d1814607cde.jpeg</url>
      <title>Forem: Rohit Prasain</title>
      <link>https://forem.com/rohit_prasain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rohit_prasain"/>
    <language>en</language>
    <item>
      <title>Categorization of Machine Learning Algorithms</title>
      <dc:creator>Rohit Prasain</dc:creator>
      <pubDate>Sat, 16 Nov 2024 21:58:15 +0000</pubDate>
      <link>https://forem.com/rohit_prasain/categorization-of-machine-learning-algorithms-15gb</link>
      <guid>https://forem.com/rohit_prasain/categorization-of-machine-learning-algorithms-15gb</guid>
      <description>&lt;p&gt;Throughout our academic or tech career, we have encountered different AI and ML algorithms. Terms such as Supervised Learning, Reinforcement Learning, K-Means algorithm, K-Nearest Neighbor algorithm, DBSCAN algorithm, etc. repeatedly show up. However, we often fail to organize all these terms into a cohesive framework.&lt;/p&gt;

&lt;p&gt;This article organizes and categorizes most of the widely used machine learning algorithms. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Artificial Intelligence (AI) has six subsets:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Natural Language Processing&lt;/li&gt;
&lt;li&gt;Deep Learning&lt;/li&gt;
&lt;li&gt;Robotics&lt;/li&gt;
&lt;li&gt;Speech Recognition&lt;/li&gt;
&lt;li&gt;Expert Systems&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z2rrak5w73x6xzg643t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z2rrak5w73x6xzg643t.png" alt="Image description" width="269" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine Learning (ML)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it is one of the subsets of AI&lt;/li&gt;
&lt;li&gt;consists of 4 types&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Supervised learning&lt;/li&gt;
&lt;li&gt;Unsupervised learning&lt;/li&gt;
&lt;li&gt;Reinforcement learning&lt;/li&gt;
&lt;li&gt;Semi-Supervised learning&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uou4q4u5t1jtrcchgpx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uou4q4u5t1jtrcchgpx.png" alt="Image description" width="139" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each of these learning types use various algorithms and they are listed below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Supervised Learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;used in &lt;strong&gt;Classification&lt;/strong&gt; and &lt;strong&gt;Regression&lt;/strong&gt; problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under &lt;strong&gt;Classification&lt;/strong&gt; domain, some popularly used algorithms are:&lt;/p&gt;

&lt;p&gt;i. Logistic regression algorithm&lt;br&gt;
ii. Naive Bayes algorithm&lt;br&gt;
iii. K-Nearest Neighbor algorithm&lt;br&gt;
iv. Support Vector Machine&lt;br&gt;
v. Decision Tree&lt;br&gt;
vi. Random Forest&lt;br&gt;
vii. Gradient Boosting Machines (XGBoost, LightGBM)&lt;br&gt;
viii. Neural Network algorithms&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Regression&lt;/strong&gt; domain, some popularly used algorithms are:&lt;/p&gt;

&lt;p&gt;i. Linear Regression&lt;br&gt;
ii. Polynomial Regression&lt;br&gt;
iii. Support Vector Machine&lt;br&gt;
iv. Decision Tree&lt;br&gt;
v. Random Forest&lt;br&gt;
vi. Gradient boosting &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Some algorithms like Decision tree, Random forest, Support Vector and Gradient boosting can be used for both classification and regression problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfzi4bnanj8yzl80br9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfzi4bnanj8yzl80br9b.png" alt="Image description" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Unsupervised Learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;used in &lt;strong&gt;Clustering&lt;/strong&gt;, &lt;strong&gt;Dimensionality Reduction&lt;/strong&gt; and &lt;strong&gt;Association Rule Learning&lt;/strong&gt; problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under &lt;strong&gt;Clustering&lt;/strong&gt; domain, some popular algorithms are:&lt;/p&gt;

&lt;p&gt;i. K-Means algorithm&lt;br&gt;
ii. Hierarchal clustering&lt;br&gt;
iii. DBSCAN algorithm&lt;br&gt;
iv. Gaussian Mixture Models&lt;br&gt;
v. Mean Shift&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Dimensionality Reduction&lt;/strong&gt; domain, some popular algorithms are:&lt;/p&gt;

&lt;p&gt;i. Principal Component  Analysis (PCA)&lt;br&gt;
ii. Autoencoders&lt;br&gt;
iii. tSNE algorithm&lt;br&gt;
iv. UMAP algorithm&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Association Rule Learning&lt;/strong&gt; domain, some popular algorithms are:&lt;/p&gt;

&lt;p&gt;i. Apriori algorithm&lt;br&gt;
ii. FPGrowth algorithm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1go2iwwxpaqjd9rx9cup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1go2iwwxpaqjd9rx9cup.png" alt="Image description" width="800" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Semi-Supervised Learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;some of the popular algorithms under this learning are:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i. Self-training algorithm&lt;br&gt;
ii. Mixture Models&lt;br&gt;
iii. Graph based methods&lt;br&gt;
iv. Transductive support vector machines&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc67a6k8dnc8enik6s6q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc67a6k8dnc8enik6s6q.png" alt="Image description" width="800" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Reinforcement Learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consists of four methods:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;a. Valued based method&lt;br&gt;
b. Policy based method&lt;br&gt;
c. Model based method&lt;br&gt;
d. Actor-Critic method&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a. Value based method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consists of following algorithms:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i. Q Learning&lt;br&gt;
ii. Deep Q-Networks&lt;br&gt;
iii. Double DQN &lt;br&gt;
iv. Dueling DQN&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b. Policy based method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consists of following algorithms:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i. Reinforce algorithm&lt;br&gt;
ii. Deterministic policy gradient&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c. Model based method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consists of following algorithms:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i. Model predictive control&lt;br&gt;
ii. Monte Carlo tree search&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;d. Actor-Critic method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consists of following algorithms:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i. Advantage actor-critic (A2C)&lt;br&gt;
ii. Asynchronous advantage actor-critic (A3C)&lt;br&gt;
iii. Soft actor-critic (SAC)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedgad296b2z36gp0tkxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedgad296b2z36gp0tkxc.png" alt="Image description" width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visualizing the AI/ML terminologies in a broader picture helps to better understand the algorithms and its use cases.  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Basics for backend development - Roadmap</title>
      <dc:creator>Rohit Prasain</dc:creator>
      <pubDate>Thu, 05 Sep 2024 10:01:16 +0000</pubDate>
      <link>https://forem.com/rohit_prasain/topics-to-master-as-a-beginner-backend-developer-roadmap-3fdg</link>
      <guid>https://forem.com/rohit_prasain/topics-to-master-as-a-beginner-backend-developer-roadmap-3fdg</guid>
      <description>&lt;p&gt;Every web development enthusiast trying to learn backend development often get stuck on what to learn as a beginner. They tend to get confused about the project to build and backend concepts to implement on that project.&lt;/p&gt;

&lt;p&gt;Having worked as backend developer for two years and guided half a dozen fresh interns, I have a roadmap for you. From my experience, to start the backend engineering journey, initially focus on building endpoints, no more than that.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;learn basic commands of git&lt;/li&gt;
&lt;li&gt;create GitHub repository for your project&lt;/li&gt;
&lt;li&gt;have an adequate grasp on a backend programming language&lt;/li&gt;
&lt;li&gt;search for the popular and market demanding framework for the language&lt;/li&gt;
&lt;li&gt;do not think of difficult projects, just start with simple TODO app and build upon it (this is where most beginners get stuck)&lt;/li&gt;
&lt;li&gt;create REST endpoints for CRUD operations in Todo app without connecting to database first.&lt;/li&gt;
&lt;li&gt;test your endpoints in postman&lt;/li&gt;
&lt;li&gt;now connect your app with database and perform CRUD operations. Start with any database, do not think much (I recommend PostgreSQL)&lt;/li&gt;
&lt;li&gt;find a way to deploy your project online (up and running app gives you a good vibes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you have built APIs and it is deployed (amazing feeling).But do not stop here.&lt;/p&gt;

&lt;p&gt;Learn more backend concepts and after learning any one concept, &lt;strong&gt;TRY&lt;/strong&gt; implementing that on your TODO app.&lt;/p&gt;

&lt;p&gt;You can further explore the followings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;database design concepts like ER diagrams, relationships, normalization and crow foot notation.&lt;/li&gt;
&lt;li&gt;HTTP status codes.&lt;/li&gt;
&lt;li&gt;concepts of authentication and authorization(ROLE-BASED).&lt;/li&gt;
&lt;li&gt;learn about cookie, session and token (inclusively REFRESH TOKEN).&lt;/li&gt;
&lt;li&gt;try uploading files and images into your server.&lt;/li&gt;
&lt;li&gt;learn and implement the concepts of database migrations, transactions, seeders and factories.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After implementing any above points, please DEPLOY your project (it boosts your confidence)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Implement the above concepts as many as you can. If you cannot implement any of these concepts at the moment, know about the concept and move on to implementing another point, don't get stuck. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Please keep in mind, you are starting and you are not supposed to know everything in this phase.&lt;/p&gt;

&lt;p&gt;Everything I mentioned above in a picture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr6fd8g3hmsovjyh9aup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr6fd8g3hmsovjyh9aup.png" alt="Image description" width="618" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>backenddevelopment</category>
    </item>
  </channel>
</rss>
