tsBNgen: A Python Library to Generate Time Series Data from an Arbitrary Dynamic Bayesian Network Structure

Photo by Behzad Ghaffarian on Unsplash

Synthetic data is widely used in various domains. This is because many modern algorithms require lots of data for efficient training, and data collection and labeling usually are a time-consuming process and are prone to errors. Furthermore, some real-world data, due to its nature, is confidential and cannot be shared.

Some methods, such as generative adversarial network¹, are proposed to generate time series data. However, GAN is hard to train and might not be stable; besides, it requires a large volume of data for efficient training.

This article will introduce the tsBNgen, a python library, to generate synthetic time series…

Ordinary, Constrained, Multi-objective, and Nonlinear least square.

Photo by Lukasz Szmigiel on Unsplash

The least-square estimation is one of the most widely used techniques used in machine learning, signal processing, and statistics. It is the common way of solving the linear regression used widely to model continuous outcomes.

It can be modeled as an MMSE estimator or a Bayes estimator with a quadratic cost. I have already written comprehensive articles about various estimators used in machine learning and signal processing. Please check the following article for more information.

I have also made a series of YouTube videos to go more in-depth about various estimation techniques. …

All You Need about Random Processes and Their Properties

Photo by Matteo Catanese on Unsplash

This is a two-part article. In part 2 (This part), I will go over random processes ( stochastic processes), their properties, and their response to the linear time-invariant (LTI) channel. In part 1, I discussed probabilities, random variables, and their properties. If you have not read the first part yet, please read it here first:

The first part is fundamental to understand this part since random processes are the general extension of random variables and random vectors.
Random variables and random processes play important roles in the real-world. …

Photo by Klara Avsenik on Unsplash

This is a two-part article. In part 1 (This part), I will go over random variables, random vectors, and their properties. In part 2, I will discuss random processes and their properties.

Random variables and random processes play important roles in the real-world. They are used extensively in various fields such as machine learning, signal processing, digital communication, statistics, etc.

The following is the outline of this article:


  • Review of Probability. (Part 1)
  • Random Variable. (Part 1)
  • Properties of Random Variable. (Part 1)
  • Important Theorems in Probability. (Part 1)
  • Random Vector. (Part 1)
  • Random Process. (Part 2)
  • Properties of Random…

Decide What Programming Language Is Better for Your Application

Photo by Thomas Kelley on Unsplash

There are many different programming languages for various applications, such as data science, machine learning, signal processing, numerical optimization, and web development. Therefore, it is essential to know how to decide which programming language is more suitable for your application.

In this article, I will discuss the advantages and disadvantages of using Python, R, and Matlab. I will explain when and for what applications these programming languages are more suitable. I organize the outline based on popular research and work done extensively in the real-world.

Following is the outline of this article:

  • Generic Programming Tasks
  • Machine Learning
  • Graphical and Probabilistic…

Getting Started

Bayesian vs Frequentistcs Parameter Estimation

Photo by Jose Llamas on Unsplash

Parameter estimation plays a vital role in machine learning, statistics, communication system, radar, and many other domains. For example, in a digital communication system, you sometimes need to estimate the parameters of the fading channel, the variance of AWGN (additive white Gaussian noise) noise, IQ (in-phase, quadrature) imbalance parameters, frequency offset, etc. In machine learning and statistics, you constantly need to estimate and learn the parameters of the probability distributions. For example, in Bayesian and causal networks, this corresponds to estimating the CPT (conditional probability table) for discrete nodes and the mean and the variance for the continuous nodes. …


PhD student in ECE department at UCLA, doing research in machine learning, probabilistic graphical models and causal inference.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store