Skip to main content

What is Feature Scaling

Feature scaling is a preprocessing technique used in machine learning to standardize or normalize the range of independent variables or features of data. It's an important step, especially for algorithms that are sensitive to the scale of input features. Feature scaling ensures that all features contribute equally to the model's learning process and avoids problems caused by differences in feature magnitudes. The two common methods for feature scaling are:

  1. Standardization (Z-score normalization):


    • In standardization, each feature is scaled to have a mean of 0 and a standard deviation of 1.
    • The formula for standardization is: z = (x - μ) / σ, where z is the standardized value, x is the original value, μ is the mean of the feature, and σ is the standard deviation of the feature.
    • Standardization makes the data look like it roughly follows a standard normal distribution (mean = 0, standard deviation = 1).

  2. Normalization (Min-Max scaling):


    • In normalization, each feature is scaled to a specific range, typically between 0 and 1.
    • The formula for normalization is: x' = (x - min) / (max - min), where x' is the normalized value, x is the original value, min is the minimum value in the feature, and max is the maximum value in the feature.
    • Normalization is useful when the algorithm you're using assumes that the data is on a similar scale, or when you want to preserve the original data distribution.

Here are some reasons why feature scaling is important:

  • Many machine learning algorithms, such as support vector machines, k-nearest neighbors, and principal component analysis (PCA), are sensitive to feature scales. Features with larger scales can dominate those with smaller scales in these algorithms.

  • Gradient-based optimization algorithms, like those used in neural networks, converge faster when features are on similar scales. It helps prevent the optimization process from being skewed towards certain features.

  • Distance-based metrics in clustering and nearest neighbor methods are influenced by feature scales. Standardized data ensures that distances are computed correctly.

  • Interpretability of model coefficients can be affected by feature scales, especially in linear regression.

Feature scaling is typically applied after data preprocessing and before feeding the data into a machine learning algorithm. The choice between standardization and normalization depends on the specific requirements of your model and the characteristics of your data.


Code :

from sklearn.preprocessing import StandardScaler # Sample data (replace this with your dataset) data = [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] # Create a StandardScaler object scaler = StandardScaler() # Fit the scaler to your data and transform it scaled_data = scaler.fit_transform(data) # The scaled_data variable now contains your standardized data print("Standardized Data:") print(scaled_data)


Output: 

Standardized Data: [[-1.22474487 -1.22474487 -1.22474487] [ 0. 0. 0. ] [ 1.22474487 1.22474487 1.22474487]]

In the standardized data:

  • Each column (feature) has a mean of approximately 0.
  • Each column has a standard deviation of approximately 1.

Code:

import numpy as np

# Sample dataset
data = np.array([[2, 5, 10],
                 [4, 8, 12],
                 [1, 3, 6]])

# Min-Max scaling
min_val = np.min(data, axis=0)
max_val = np.max(data, axis=0)
normalized_data = (data - min_val) / (max_val - min_val)

print("Normalized Data:")
print(normalized_data)

Output: 

Normalized Data:
[[0.5 0.5 0.5]
 [1.  1.  1. ]
 [0.  0.  0. ]]

Comments

Popular posts from this blog

What is the difference between Elastic and Enterprise Redis w.r.t "Hybrid Query" capabilities

  We'll explore scenarios involving nested queries, aggregations, custom scoring, and hybrid queries that combine multiple search criteria. 1. Nested Queries ElasticSearch Example: ElasticSearch supports nested documents, which allows for querying on nested fields with complex conditions. Query: Find products where the product has a review with a rating of 5 and the review text contains "excellent". { "query": { "nested": { "path": "reviews", "query": { "bool": { "must": [ { "match": { "reviews.rating": 5 } }, { "match": { "reviews.text": "excellent" } } ] } } } } } Redis Limitation: Redis does not support nested documents natively. While you can store nested structures in JSON documents using the RedisJSON module, querying these nested structures with complex condi...

Training LLM model requires more GPU RAM than storing same LLM

Storing an LLM model and training the same model both require memory, but the memory requirements for training are typically higher than just storing the model. Let's dive into the details: Memory Requirement for Storing the Model: When you store an LLM model, you need to save the weights of the model parameters. Each parameter is typically represented by a 32-bit float (4 bytes). The memory requirement for storing the model weights is calculated by multiplying the number of parameters by 4 bytes. For example, if you have a model with 1 billion parameters, the memory requirement for storing the model weights alone would be 4 GB (4 bytes * 1 billion parameters). Memory Requirement for Training: During the training process, additional components use GPU memory in addition to the model weights. These components include optimizer states, gradients, activations, and temporary variables needed by the training process. These components can require additional memory beyond just storing th...

Error: could not find function "read.xlsx" while reading .xlsx file in R

Got this during the execution of following command in R > dat Error: could not find function "read.xlsx" Tried following command > install.packages("xlsx", dependencies = TRUE) Installing package into ‘C:/Users/amajumde/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) also installing the dependencies ‘rJava’, ‘xlsxjars’ trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.2/rJava_0.9-8.zip' Content type 'application/zip' length 766972 bytes (748 KB) downloaded 748 KB trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.2/xlsxjars_0.6.1.zip' Content type 'application/zip' length 9485170 bytes (9.0 MB) downloaded 9.0 MB trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.2/xlsx_0.5.7.zip' Content type 'application/zip' length 400968 bytes (391 KB) downloaded 391 KB package ‘rJava’ successfully unpacked and MD5 sums checked package ‘xlsxjars’ successfully unpacked ...