0% found this document useful (0 votes)
224 views

Electric Vehicle Range Prediction-Regression Analysis

The document discusses using regression analysis to predict the range of electric vehicles. It first describes using Fermi estimation to break down the problem into components like global population, vehicle ownership rates, electric vehicle market penetration and growth rates. It then discusses collecting data from sources like Tesla manuals and Kaggle. The data is preprocessed by reading a CSV file and doing initial reviews. Exploration of the data is shown through count plots of categorical variables and bar plots of preferred numeric attributes. The goal is to analyze the data and make reasonable assumptions to estimate factors related to electric vehicle adoption and market size over time.

Uploaded by

sushant jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
224 views

Electric Vehicle Range Prediction-Regression Analysis

The document discusses using regression analysis to predict the range of electric vehicles. It first describes using Fermi estimation to break down the problem into components like global population, vehicle ownership rates, electric vehicle market penetration and growth rates. It then discusses collecting data from sources like Tesla manuals and Kaggle. The data is preprocessed by reading a CSV file and doing initial reviews. Exploration of the data is shown through count plots of categorical variables and bar plots of preferred numeric attributes. The goal is to analyze the data and make reasonable assumptions to estimate factors related to electric vehicle adoption and market size over time.

Uploaded by

sushant jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Electric Vehicle Range Prediction -

Regression Analysis

(By Kothapalli Jayanth (Team Lead), Yashwanth


Goduguchintha, Avesh, Laxman Kumar Busetty and
Prathamesh)

1
1.Fermi estimation:
Fermi estimation, also known as order-of-magnitude estimation, is a
problem-solving technique used to make rough calculations and
approximate solutions based on reasonable assumptions. To perform a
Fermi estimation for an electric vehicle market project, we need to
break down the problem statement into smaller components. Here's an
example breakdown:

Total global population:

 Estimate the current global population, e.g., 7.9 billion.


Percentage of people who can drive:
Assume that approximately 70% of the global population is of
driving age and can drive.

Average household size:

Assume an average household size of 3 people.


Percentage of households that own a vehicle:
Estimate the percentage of households that own a vehicle, e.g., 60%.

Average vehicle ownership per household:

Assume an average of 1.5 vehicles per owning household.


Market penetration of electric vehicles:
Estimate the percentage of vehicles in the market that are electric,
e.g., 10%.

Vehicle lifespan:

2
Determine the average lifespan of vehicles, e.g., 10 years.

Replacement rate:

Assume that each vehicle is replaced with a new one after its lifespan
ends.

Electric vehicle market growth rate:

Estimate the annual growth rate of the electric vehicle market, e.g.,
20%.

Market share of electric vehicles:

Determine the percentage of the overall market that electric vehicles


hold, based on their growth rate and market penetration.
Total number of electric vehicles in the market:

Calculate the cumulative number of electric vehicles based on the


market share and total number of vehicles.
Charging infrastructure:

Estimate the number of charging stations required to support the


growing electric vehicle market.
Investment in charging infrastructure:

Assess the estimated cost of building the necessary charging


infrastructure.
Environmental impact:

Analyze the potential reduction in carbon emissions based on the


adoption of electric vehicles.
3
By breaking down the problem into these components, we can make
reasonable estimations and assumptions to arrive at approximate
figures related to the electric vehicle market project

2. Data Collection:

https://www.tesla.com/ownersmanual/modely/en_kr/GUID-4AC32116-
979A-4146-A935-F41F8551AFE6.html

https://iq.opengenus.org/advantages-and-disadvantages-of-linear-
regression/

https://www.statology.org/linear-regression-assumptions/

Data set link: https://www.kaggle.com/datasets/geoffnel/evs-one-


electric-vehicle-dataset

Data Preprocessing

Libraries

0.1.1 L
o
aimport pandas as pd
dimport numpy as np
iimport matplotlib.pyplot as plt
n%matplotlib inline
gimport seaborn as sns
import plotly.express as px
4
from scipy.stats import norm
import warnings
warnings.filterwarnings('ignore')

0.1.2 Reading csv

[2]: data=pd.read_csv('C:/Users/divya/Downloads/data_new.csv',usecols=lambda col:␣


↪col not in ['Unnamed: 0'])

df=data.copy()
df.head()

[2]: Brand Model AccelSec TopSpeed_KmH \


0 Tesla Model 3 Long Range Dual Motor 4.6 233
1 Volkswagen ID.3 Pure 10.0 160
2 Polestar 2 4.7 210
3 BMW iX3 6.8 180
4 Honda e 9.5 145

Range_Km Efficiency_WhKm FastCharge_KmH RapidCharge PowerTrain \


0 450 161 940 Yes AWD
1 270 167 250 No RWD
2 400 181 620 Yes AWD
3 360 206 560 Yes RWD
4 170 168 190 Yes RWD

PlugType BodyStyle Segment Seats Price


0 Type 2 CCS Sedan D 5 5002354.20
1 Type 2 CCS Hatchback C 5 2704950.00
2 Type 2 CCS Liftback D 5 5088912.60
3 Type 2 CCS SUV D 5 6134826.60
4 Type 2 CCS Hatchback B 4 2975174.51

0.1.3 Initial Review

[3]: df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 103 entries, 0 to 102
Data columns (total 14 columns):
# Column Non-Null Count Dtype

0 Brand 103 non-null object


1 Model 103 non-null object
2 AccelSec 103 non-null float64
3 TopSpeed_KmH 103 non-null int64
4 Range_Km 103 non-null int64
5 Efficiency_WhKm 103 non-null int64

5
6 FastCharge_KmH 103 non-null int64
7 RapidCharge 103 non-null object
8 PowerTrain 103 non-null object
9 PlugType 103 non-null object
10 BodyStyle 103 non-null object
11 Segment 103 non-null object
12 Seats 103 non-null int64
13 Price 103 non-null float64
dtypes: float64(2), int64(5), object(7)
memory usage: 11.4+ KB

[4]: df.describe()

[4]: AccelSec TopSpeed_KmH Range_Km Efficiency_WhKm FastCharge_KmH \


count 103.000000 103.000000 103.000000 103.000000 103.000000
mean 7.396117 179.194175 338.786408 189.165049 444.271845
std 3.017430 43.573030 126.014444 29.566839 203.949253
min 2.100000 123.000000 95.000000 104.000000 170.000000
25% 5.100000 150.000000 250.000000 168.000000 260.000000
50% 7.300000 160.000000 340.000000 180.000000 440.000000
75% 9.000000 200.000000 400.000000 203.000000 555.000000
max 22.400000 410.000000 970.000000 273.000000 940.000000

Seats Price
count 103.000000 1.030000e+02
mean 4.883495 5.033056e+06
std 0.795834 3.077267e+06
min 2.000000 1.814931e+06
25% 5.000000 3.104336e+06
50% 5.000000 4.057425e+06
75% 5.000000 5.860725e+06
max 7.000000 1.938548e+07

[5]: df = df.astype({'Brand': str, 'Model': str})


df['Model_Brand']=df['Brand']+df['Model']
df.drop(['Brand','Model'],axis=1,inplace=True)

[6]: df.head()

[6]: AccelSec TopSpeed_KmH Range_Km Efficiency_WhKm FastCharge_KmH \


0 4.6 233 450 161 940
1 10.0 160 270 167 250
2 4.7 210 400 181 620
3 6.8 180 360 206 560
4 9.5 145 170 168 190

RapidCharge PowerTrain PlugType BodyStyle Segment Seats Price \

6
0 Yes AWD Type 2 CCS Sedan D 5 5002354.20
1 No RWD Type 2 CCS Hatchback C 5 2704950.00
2 Yes AWD Type 2 CCS Liftback D 5 5088912.60
3 Yes RWD Type 2 CCS SUV D 5 6134826.60
4 Yes RWD Type 2 CCS Hatchback B 4 2975174.51

Model_Brand
0 Tesla Model 3 Long Range Dual Motor
1 Volkswagen ID.3 Pure
2 Polestar 2
3 BMW iX3
4 Honda e

0.1.4 Exploration

[7]: cat_column=['RapidCharge','PowerTrain','PlugType','BodyStyle','Segment','Seats']

[8]: for attribute in cat_column:


sns.set(style='whitegrid')
plt.figure(figsize=(8,5))
sns.countplot(df[attribute])
plt.xticks(rotation=90)
plt.title(f'Frequency plot of {attribute}')
plt.show()

7
8
9
10
11
Interpretation
• There are a greater amount of rapid charge EV vehicles.
• The AWD power train of vehicles are in large number.
• Type 2 CCS plug type vehicles are larger in number.
• The SUVs are in a large number.
• C(Medium Segment) vehicles are in abundance.
• Most of the vehicles have 5 seats.

[9]: df['Seats']=df['Seats'].astype('str')

[10]: df['RapidCharge']=df['RapidCharge'].map({'Yes':1,'No':0})

[11]: # high value preferred columns


num_column=['TopSpeed_KmH','Range_Km','FastCharge_KmH']

num_df=df[num_column]
num_df.set_index(keys=df.Model_Brand,inplace=True)

[12]: def plot_num_att(att):


top_val = num_df[att].sort_values(ascending=False)[:10]
sns.set(style='whitegrid')
plt.figure(figsize=(8,5))
sns.barplot(x=top_val.index, y=top_val)
plt.xticks(rotation=90)
plt.title(f'Bar plot of {att}')
plt.show()

[13]: for att in num_column:


plot_num_att(att)

12
13
14
Interpretation
• Tesla Roadster is the fastest among all.
• Again Tesla Roadster has the highest range/km ratio, followed by tesla cybertruck and lucid
air.
• The vehicles Tesla model 3 long range, tesla y long range and tesla roadster have the highest
fast charge efficiency.

[14]: df.columns

[14]: Index(['AccelSec', 'TopSpeed_KmH', 'Range_Km', 'Efficiency_WhKm',


'FastCharge_KmH', 'RapidCharge', 'PowerTrain', 'PlugType', 'BodyStyle',

15
'Segment', 'Seats', 'Price', 'Model_Brand'],
dtype='object')

[15]: # low values preferred columns


num_column=['AccelSec','Efficiency_WhKm','Price']
num_df=df[num_column]
num_df.set_index(keys=df.Model_Brand,inplace=True)

[16]: def plot_num_att(att):


top_val = num_df[att].sort_values()[:10]
sns.set(style='whitegrid')
plt.figure(figsize=(8,5))
sns.barplot(x=top_val.index, y=top_val)
plt.xticks(rotation=90)
plt.title(f'Bar plot of {att}')
plt.show()

[17]: for att in num_column:


plot_num_att(att)

16
17
18
Interpretation
• Tesla Roadster has the lowest acclereation second among all.
• Lightyear One has the lowest efficiency WhKm, which means it is most efficient.
• The vehicles seat mini, smart eq, volkswagon e-up and smart eq four have the lowest prices.

0.1 Checking Outliers

[18]: num_attributes = ['AccelSec', 'Efficiency_WhKm', 'Price', 'TopSpeed_KmH',␣


↪'Range_Km', 'FastCharge_KmH']

sns.set(style='whitegrid')
fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(10, 8))

colors = sns.color_palette('muted', n_colors=len(num_attributes))

for i, attribute in enumerate(num_attributes):

19
row = i // 3
col = i % 3
sns.boxplot( y='value', data=pd.melt(df[[attribute]]), ax=axs[row, col],␣
↪color=colors[i])

axs[row, col].set_xlabel('')
axs[row, col].set_ylabel(attribute)

fig.suptitle('Box plots of numerical attributes', fontsize=14)


plt.tight_layout()
plt.show()

• Except FastCharge every other attribute has outliers present

[19]: fig = plt.figure(figsize=(8,5))


sns.heatmap(df[num_attributes].corr(),annot=True)
plt.show()

20
There is a strong positive correlation between: * Price and Fast_charge. * Price and Range_km.
* Price and Top Speed. * Top Speed and Fast Charge. * Top Speed and Range km. * Range_km
and Fast charge.
There is a negative correlation between: * Accel_sec is negatively correlated with every other
attribute.

0.2.1 Multivariate Analysis

[20]: sns.pairplot(df[num_attributes],diag_kind='kde')
plt.show()

21
[21]: def check_skweness(df,columnName):

try:
(mu, sigma) = norm.fit(df[columnName])
except RuntimeError:
(mu,sigma) = norm.fit(df[columnName].dropna())
print("Mu {} : {}, Sigma {} : {}".format(
columnName.upper(), mu, columnName.upper(), sigma))
plt.figure(figsize=(20,10))
sns.distplot(df[columnName], fit=norm, color="orange")
plt.title(columnName.upper() +
" Distplot", color="black")
plt.show()

22
[22]: for columns in df[num_attributes].columns:
check_skweness(df[num_attributes],columns)

Mu ACCELSEC : 7.39611650485437, Sigma ACCELSEC : 3.0027470377696464

Mu EFFICIENCY_WHKM : 189.16504854368932, Sigma EFFICIENCY_WHKM :


29.42296081389322

Mu PRICE : 5033055.821747573, Sigma PRICE : 3062291.940017147

23
Mu TOPSPEED_KMH : 179.19417475728156, Sigma TOPSPEED_KMH : 43.36099501160743

Mu RANGE_KM : 338.7864077669903, Sigma RANGE_KM : 125.40123181797216

24
Mu FASTCHARGE_KMH : 444.2718446601942, Sigma FASTCHARGE_KMH : 202.95679363121414

• The numerical attributes are mostly normally distributed.

25
0.2 Cluster Analysis

[23]: from sklearn.pipeline import Pipeline


from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.cluster import KMeans

[24]: cat_column=['PowerTrain', 'PlugType', 'BodyStyle', 'Segment', 'Seats']

0.3.1 Determining optimal cluster solution


0.3.2 K Means clustering

[25]: elbow = dict()


preprocessor = ColumnTransformer(
transformers=[
('num', StandardScaler(), [col for col in num_attributes]),
('cat', OneHotEncoder(), [col for col in cat_column])
])

for i in range(2,8):

pipeline = Pipeline([
('preprocessor', preprocessor),
('estimator', KMeans(n_clusters=i))

])
clusters = pipeline.fit_predict(df)
kmeans_estimator = pipeline.named_steps['estimator']
elbow[i] = kmeans_estimator.inertia_

#Plotting Elbow plot


plt.plot(*zip(*elbow.items()), marker='o', linestyle='--')
plt.title('Elbow Method for Optimal k')
plt.ylabel('Inertia')
plt.xlabel('Clusters');

26
In this elbow plot k=4 seems the optimal solution

Choosing n_clusters=4 as optimal solution


[26]: pipeline = Pipeline([
('preprocessor', preprocessor),
('estimator', KMeans(n_clusters=4))
])

df['Labels'] = pipeline.fit_predict(df)

[27]: df['RapidCharge']=df['RapidCharge'].map({1:'Yes',0:'No'})

0.3 Studying Segments

[28]: df['Seats']=df['Seats'].astype('int')
df.groupby('Labels').mean()

[28]: AccelSec TopSpeed_KmH Range_Km Efficiency_WhKm FastCharge_KmH \


Labels

27
0 6.216667 185.416667 380.694444 211.194444 510.555556
1 12.681818 132.545455 154.090909 173.727273 189.090909
2 8.660526 153.447368 278.815789 170.894737 313.684211
3 3.855556 249.611111 494.444444 193.111111 743.333333

Seats Price
Labels
0 5.055556 5.361855e+06
1 4.000000 2.451013e+06
2 4.868421 3.184689e+06
3 5.111111 9.855480e+06

The previous attribute information provides that: * Lower values AccelSec are generally preferred
as they indicate faster acceleration. * Higher values TopSpeed_KmH are generally preferred as
they indicate greater speed. * Higher values Range_Km are generally preferred as they indicate
greater range. * Lower values Efficiency_WhKm are generally preferred as they indicate better
energy efficiency. * Higher values FastCharge_KmH are generally preferred as they indicate faster
charging. * Lower values Price are generally preferred as they indicate greater affordability. *
Higher values Seats are generally preferred as they indicate more passenger capacity.

Renaming labels
[29]: df['Labels']=df['Labels'].map({1:'High1-Range',2:'High2-Range',3:'Mid-Range',0:
↪'Low-Range'})

0.4 Visualising Clusters

[30]: from sklearn.manifold import TSNE


def Visualise_cluster(data):

model = TSNE(random_state=1)
transformed = model.fit_transform(preprocessor.fit_transform(data))

plt.title('Flattened Graph of 4 Clusters')


sns.scatterplot(x=transformed[:,0], y=transformed[:,1], hue=data['Labels'],␣
↪style=data['Labels'], palette="Set1")

Visualise_cluster(df)

28
Interpretation :
The market is majorly dominated by mid range and a mix of high and mid car models, whereas
the low end and the high end vehicles are present in fewer number.

0.5.1 Ward Linkage

[31]: df1=data.copy()
df1 = df1.astype({'Brand': str, 'Model': str})
df1['Model_Brand']=df1['Brand']+df1['Model']
df1.drop(['Brand','Model'],axis=1,inplace=True)
df1['Seats']=df1['Seats'].astype('str')
df1['RapidCharge']=df1['RapidCharge'].map({'Yes':1,'No':0})

[32]: from sklearn.cluster import AgglomerativeClustering


from scipy.cluster.hierarchy import dendrogram

[33]: ward = AgglomerativeClustering(distance_threshold=0, n_clusters=None,␣


↪linkage='ward')

clusters_customers = ward.fit_predict(preprocessor.fit_transform(df1))

29
[34]: def plot_dendrogram(model, **kwargs):
# create linkage matrix and then plot the dendrogram

# create the counts of samples under each node


counts = np.zeros(model.children_.shape[0])
n_samples = len(model.labels_)
for i, merge in enumerate(model.children_):
current_count = 0
for child_idx in merge:
if child_idx < n_samples:
current_count += 1 # leaf node
else:
current_count += counts[child_idx - n_samples]
counts[i] = current_count

linkage_matrix = np.column_stack([model.children_, model.distances_,␣


↪counts]).astype(float)

# plot the corresponding dendrogram


dendrogram(linkage_matrix, **kwargs)

[35]: plt.title('Dendrogram with Ward Linkage')


plot_dendrogram(ward, truncate_mode='lastp')

30
• According to the dendrogram 2 cluster solution is appropriate, in case of Ward’s Linkage

[36]: pipeline1 = Pipeline([


('preprocessor', preprocessor),
('estimator', AgglomerativeClustering(distance_threshold=None,␣
↪n_clusters=2, linkage='ward'))

])

df1['Labels']=pipeline1.fit_predict(df1)

[37]: df1['RapidCharge']=df1['RapidCharge'].map({1:'Yes',0:'No'})

0.5 Studying Segments

[38]: df1['Seats']=df1['Seats'].astype('int')
df1.groupby('Labels').mean()

[38] : AccelSec TopSpeed_KmH Range_Km Efficiency_WhKm FastCharge_KmH \


Labels
0 5.102083 213.083333 419.375000 205.958333 597.291667

31
1 9.398182 149.618182 268.454545 174.509091 310.727273

Seats Price
Labels
0 5.083333 7.169506e+06
1 4.709091 3.168518e+06

• The above labels suggest that label 0 are high end vehicles.
• The label 1 has vehicles that fall under mid-end section vehicles.

Renaming Labels
[39]: df1['Labels']=df1['Labels'].map({1:'Mid-Range',0:'High-Range'})

0.6 Visualising Clusters

[40]: Visualise_cluster(df1)

• For a two cluster solution the market is evenly distributed for High and Mid range

32
Segment Extraction:
1 1. Feature Engineering: If needed, perform feature engineering
. techniques to preprocess the input features. This may include data
normalization, handling missing values, encoding categorical
F variables, and transforming features for better representation.
e
a 1. Train-Test Split: Split the dataset into training and testing sets.
t
u The training set is used to train the Gradient Boosting Regressor
r model, while the testing set is used to evaluate its performance
e
and generalization ability.
E 2. Model Training: Fit the Gradient Boosting Regressor to the
n
g training data. The model learns to iteratively improve the
i predictions by minimizing the residuals (errors) of the previous
n
e models in the ensemble. Gradient Boosting combines multiple
e decision trees, where each subsequent tree corrects the errors
r
made by the previous trees.
i
n
3. Hyperparameter Tuning: Tune the hyperparameters of the
g
: Gradient Boosting Regressor model to optimize its performance.
This may involve adjusting parameters such as the learning
I
f rate, number of estimators (trees), maximum depth of the trees,
and minimum samples required for a leaf node.
n
e 4. Model Evaluation: Evaluate the trained model using the testing
e
set. Calculate relevant regression metrics such as mean squared
d
e error (MSE), mean absolute error (MAE), or R-squared to assess
d the model's accuracy and reliability in predicting the electric
,
vehicle range.
p
e 5. Segment Extraction: Once the Gradient Boosting Regressor
r model is trained and validated, it can be used to extract
f
segments based on the importance of the input features. The
33
m to the relative significance of different features in predicting the
o range, thereby identifying the segments where specific features
d play a more crucial role.
e
6, Interpretation and Analysis: Analyze the results and
l interpretations from the model to understand the distinct

segments within the electric vehicle range prediction. This can


c help identify patterns and relationships that differentiate various
a segments, such as the impact of battery capacity, driving behavior,
n or environmental conditions on the range.

p
ML Models:-
r
o 1. In the context of electric vehicle range prediction using regression
analysis, several ML techniques can be utilized to extract segments.
v
Regression analysis aims to establish a relationship between input
i variables (features) and the target variable (electric vehicle range) to
d make predictions. Here are some ML techniques commonly used for
segment extraction in electric vehicle range prediction using regression
e analysis:

i 1. Linear Regression: Linear regression is a fundamental technique


n used to model the relationship between input features and the
s target variable. It assumes a linear relationship between the
i features and the range. Through the estimation of coefficients,
g it determines the weight or importance of each feature in
h predicting the range.
t
2. 2. Ridge Regression: Ridge reRidge regression: is a
s
regularization technique that helps prevent overfitting in
regression models. It adds a penalty term to the linear
i
regression objective function, which encourages smaller
n
coefficient values and reduces the impact of irrelevant or noisy
34
f useful when dealing with high-dimensional data or when
e multicollinearity is present among the input features.
a
t 3. Lasso Regression: Lasso regression is another regularization
u technique that introduces a different penalty term. It not only
r shrinks coefficient values but also performs feature selection by
e driving some coefficients to exactly zero. Lasso regression is
s effective when there is a large number of features, and feature
. selection is desired to identify the most relevant predictors for
range prediction.
R
i
d 4. Support Vector Regression (SVR): SVR is a regression technique
g based on support vector machines. It finds an optimal
e hyperplane that maximizes the margin while still fitting the
training data within a certain margin of error (epsilon). SVR can
r handle non-linear relationships by using kernel functions and is
e robust to outliers.
g
r
5. Gradient Boosting Regressor is a machine learning technique
e that can be used for segment extraction in electric vehicle
s range prediction through regression analysis. Gradient
s Boosting is an ensemble method that combines multiple weak
i learners (decision trees) to create a strong predictive model.
Here's how Gradient Boosting RegrRregressor can be used for
o
segment extraction.
n

 Profiling :
i  process of creating user profiles or individualized representations
s based on their specific characteristics, preferences, and historical data.
35
T model to provide personalized range predictions for different users.
h Here's how profiling can be incorporated into an ML model for electric
e vehicle range prediction:
s  Data Collection: Collect data from individual electric vehicle
e
users, including their driving patterns, charging habits,
p historical range information, and other relevant features. This
r
o data serves as the basis for creating user profiles.
f
 User Segmentation: Analyze the collected data to identify
i
l different user segments based on their driving behavior,
e charging patterns, and other relevant factors. This
s
segmentation helps group users with similar characteristics
h together, allowing for more targeted profiling.
e
l  Profile Creation: For each user segment, create individual
p
profiles that capture their specific characteristics and
t preferences. The profiles can include information such as
a average daily distance traveled, charging frequency, preferred
i
l charging locations, and other user-specific details.
o
r  Feature Extraction: Extract relevant features from the user
profiles that are likely to impact range prediction. These
t
h features can include driving distance, time of day, weather
e conditions during the commute, charging duration, and any
other personalized attributes identified during profiling.
r
e  Model Training: Use the extracted features from the user
g
r profiles along with the corresponding range values to train the
e regression model. The model learns the relationship between
s
s the personalized features and the range, enabling it to provide
i individualized range predictions.
o
n
 Code Link:
36
 C AveshBhati7/Market-Segementation-EV-cars/tree/main
o
d
e

L
i
n
k
:
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
37

You might also like