By Saeed Mirshekari

Jul 3, 2023

Here's an ultimate guide for newbies, covering the steps from setting up a Jupyter Notebook to loading a public dataset from Kaggle, framing a business problem, data cleaning, data exploration, data visualization, predictive modeling, and model evaluation for a simple supervised learning (classification) problem.

Step 1: Setting up Jupyter Notebook

  1. Install Python: Download and install Python from the official Python website ( based on your operating system.
  2. Install Jupyter Notebook: Open a command prompt or terminal and run the following command: pip install jupyter.
  3. Launch Jupyter Notebook: In the command prompt or terminal, navigate to the desired directory and run jupyter notebook. This will open a web browser with the Jupyter Notebook interface.

Step 2: Loading a public dataset from Kaggle

  1. Create a Kaggle account: Go to the Kaggle website ( and sign up for an account (if you don't have one already).
  2. Download the dataset: Search for a public dataset on Kaggle and click on the dataset you want to use. On the dataset page, click the "Download" button to download the dataset file(s) to your local machine.
  3. Upload the dataset to Jupyter Notebook: In the Jupyter Notebook interface, navigate to the directory where you want to save the dataset. Click on the "Upload" button and select the dataset file(s) from your local machine.

Step 3: Framing a business problem

  1. Define the problem: Clearly define the problem you want to solve using the dataset. For example, if you have a dataset containing customer data, the problem could be predicting whether a customer will churn or not.
  2. Formulate the goal: Determine the goal of your analysis. In the example above, the goal could be to build a model that can accurately predict customer churn.
  3. Identify the features: Identify the features (columns) in the dataset that can be used as inputs to the model. For the customer churn example, features could include customer demographics, usage patterns, and service history.
  4. Determine the target variable: Determine the target variable (column) that you want to predict. In the customer churn example, the target variable would be the churn status (e.g., churned or not churned).

Step 4: Data cleaning

  1. Load the dataset into a pandas DataFrame: In a Jupyter Notebook cell, import the necessary libraries and load the dataset into a pandas DataFrame:
   import pandas as pd

   df = pd.read_csv('dataset.csv')
  1. Handle missing values: Identify and handle missing values in the dataset. Depending on the extent of missing data, you can either drop rows with missing values or fill them with appropriate values.
   # Drop rows with missing values

   # Fill missing values with mean
   df.fillna(df.mean(), inplace=True)

Step 5: Data exploration

  1. Explore the dataset: Use pandas methods to explore the dataset and gain insights into the data.
   # Display the first few rows of the DataFrame

   #Check summary statistics


   #Check unique values in categorical columns
  1. Class distribution: Examine the distribution of classes in the target variable to understand the balance of the dataset.
   # Count the number of instances in each class

Step 6: Data visualization

  1. Import the necessary libraries: In a Jupyter Notebook cell, import libraries

such as matplotlib and seaborn for data visualization.

   import matplotlib.pyplot as plt
   import seaborn as sns
  1. Visualize the data: Use various types of plots to visualize relationships, distributions, and patterns in the data.
   # Create a histogram of a numerical feature

   # Create a boxplot of a numerical feature by target variable
   sns.boxplot(x='target_variable', y='numerical_feature', data=df)

   # Create a count plot of a categorical feature by target variable
   sns.countplot(x='categorical_feature', hue='target_variable', data=df)

Step 7: Predictive modeling

  1. Import the necessary libraries: In a Jupyter Notebook cell, import libraries such as scikit-learn for predictive modeling.
  from sklearn.model_selection import train_test_split
  from sklearn.linear_model import LogisticRegression
  from sklearn.metrics import accuracy_score
  1. Split the data into training and test sets: Split the dataset into training and test sets to train and evaluate the machine learning model.
   X = df.drop('target_variable', axis=1)
   y = df['target_variable']
   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  1. Build and train a model: Select a machine learning algorithm, create an instance of the model, and train it on the training data.
   model = LogisticRegression(), y_train)
  1. Make predictions: Use the trained model to make predictions on the test data.
   y_pred = model.predict(X_test)
  1. Evaluate the model: Assess the performance of the model using appropriate evaluation metrics such as accuracy, precision, recall, and F1-score.
   accuracy = accuracy_score(y_test, y_pred)

That's it! You've now gone through the process of setting up Jupyter Notebook, loading a public dataset from Kaggle, framing a business problem, data cleaning, data exploration, data visualization, predictive modeling, and model evaluation for a simple supervised learning (classification) problem.

If you like our work, you will love our newsletter..๐Ÿ’š

About O'Fallon Labs

In O'Fallon Labs we help recent graduates and professionals to get started and thrive in their Data Science careers via 1:1 mentoring and more.

Saeed Mirshekari, PhD

Saeed is currently a Director of Data Science in Mastercard and the Founder & Director of O'Fallon Labs LLC. He is a former research scholar at LIGO team (Physics Nobel Prize of 2017). Learn more about Saeed...

Let's Go๐Ÿ’Š I'm Good

leave a comment

Let's Talk

Schedule Your FREE Meeting Now

Looking for a Data Science expert to help you score your first or the next Data Science job? Or, are you a business owner wanting to bring value and scale your business through Data Analysis? Either way, youโ€™re in the right place. Letโ€™s talk about your priorities!