Data Preprocessing with Orange Tool

Yash Chauhan
3 min readNov 7, 2021

--

This blog is about data preprocessing using orange tool, Data Preprocessing is the most important part of Data Science to process the raw data and clear unwanted data to get good and efficient result from the machine learning model. Using Orange tool this process will be more easier and quick.

In the Orange library in python and perform various data preprocessing tasks like Discretization, Randomization, and Normalization on data with help of various Orange functions.

We will use Orange tool in this demo. If not install then Install it and run the Orange tool.

In the Orange tool canvas, take the Python script from the left panel and double click on it.

Discretization

Discretization helps handle outliers by placing these values into the lower or higher intervals together with the remaining inlier values of the distribution. Thus, these outlier observations no longer differ from the rest of the values at the tails of the distribution, as they are now all together in the same interval/bucket. In addition, by creating appropriate bins or intervals, discretization can help spread the values of a skewed variable across a set of bins with an equal number of observations.

#Python Script for Discreetizationiris = Orange.data.Table("iris.tab")disc = Orange.preprocess.Discretize()disc.method = Orange.preprocess.discretize.EqualFreq(n=3)d_iris = disc(iris)print("Original dataset:\n")for e in iris[:3]:print(e)print("Discretized dataset:")for e in d_iris[:3]:print(e)

Original data set and Discretized dataset

Continuization

Given a data table, return a new table in which the discretize attributes are replaced with continuous or removed.

  • binary variables are transformed into 0.0/1.0 or -1.0/1.0 indicator variables, depending upon the argument zero_based.
  • multinomial variables are treated according to the argument multinomial_treatment.
  • discrete attribute with only one possible value are removed.

Continuize_Indicators

The variable is replaced by indicator variables, each corresponding to one value of the original variable. For each value of the original attribute, only the corresponding new attribute will have a value of one and others will be zero. This is the default behaviour .

For example as shown in the below code snippet, dataset “titanic” has feature “status” with values “crew”, “first”, “second” and “third”, in that order. Its value for the 10th row is “first”. Continuization replaces the variable with variables “status=crew”, “status=first”, “status=second” and “status=third”.

#python script for COntinuization
import Orangetitanic = Orange.data.Table("titanic")continuizer = Orange.preprocess.Continuize()titanic1 = continuizer(titanic)print("Before Continuization : ",titanic.domain)print("After Continuization : ",titanic1.domain)#Data of row 15 in the before and after continuizationprint("15th row data before : ",titanic[15])print("15th row data after : ",titanic1[15])

Normalization

Normalization is used to scale the data of an attribute so that it falls in a smaller range, such as -1.0 to 1.0 or 0.0 to 1.0. Normalization is generally required when we are dealing with attributes on a different scale, otherwise, it may lead to a dilution in effectiveness of an important equally important attribute(on lower scale) because of other attribute having values on larger scale. We use the Normalize function to perform normalization.

#python script for Normalizationfrom Orange.data import Tablefrom Orange.preprocess import Normalizedata = Table("iris")normalizer = Normalize(norm_type=Normalize.NormalizeBySpan)normalized_data = normalizer(data)print("Before Normalization : ",iris[2])print("After Normalization : ",normalized_data[2])

Randomization

With randomization, given a data table, preprocessor returns a new table in which the data is shuffled. Randomize function is used from the Orange library to perform randomization.

#python script for Randomizefrom Orange.data import Tablefrom Orange.preprocess import Randomizedata = Table("iris")randomizer = Randomize(Randomize.RandomizeClasses)randomized_data = randomizer(data)print("Before randomization : ",iris[2])print("After Randomization : ",randomized_data[2])

That is all about Orange Tool Preprocessing with the function of orange tool and feature.

--

--

No responses yet