#pandas
import pandas as pd
#numpy
import numpy as np
#seaborn
import seaborn as sns
#matplotlib
import matplotlib.pyplot as plt
#sklearn
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.linear_model import LinearRegression
title_sz = 20
x_ = 10
y_ = 8
Load Dataset :
data = pd.read_csv('CrabAgePrediction.csv')
data.head()
Exploratory Data Analysis :
plt.figure(figsize=(x_,y_))
sns.countplot(x='Sex',data=data);
plt.title("Distribution of Feature Sex",{'fontsize':title_sz});
female_crab = data[data.Sex == 'F']
male_crab = data[data.Sex == 'M']
fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)
sns.histplot(ax=axes[0], x=female_crab['Length'],color='b');
axes[0].set_title("Length");
sns.histplot(ax=axes[1], x=female_crab['Diameter'],color='b');
axes[1].set_title("Diameter");
sns.histplot(ax=axes[2], x=female_crab['Weight'],color='b');
axes[2].set_title("Weight");
fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)
sns.histplot(ax=axes[0], x=male_crab['Length'],color='b');
axes[0].set_title("Length");
sns.histplot(ax=axes[1], x=male_crab['Diameter'],color='b');
axes[1].set_title("Diameter");
sns.histplot(ax=axes[2], x=male_crab['Weight'],color='b');
axes[2].set_title("Weight");
Length Vs Age :
plt.figure(figsize=(x_,y_))
plt.scatter(x=data.Length,y=data.Age,c='blue');
Diameter Vs Age :
plt.figure(figsize=(x_,y_))
plt.scatter(x=data.Diameter,y=data.Age,c='blue');
Weight Vs Age :
plt.figure(figsize=(x_,y_))
plt.scatter(x=data.Weight,y=data.Age,c='blue');
Split Data:
X = data.drop(['Age','Sex'],axis=1)
y = data.Age
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=42)
Model Building:
model = LinearRegression()
model.fit(X_train,y_train)
y_pred = model.predict(X_test)
Mean Squared Error :
print("Mean Squared Error", metrics.mean_squared_error(y_test, y_pred))
Mean Squared Error 4.714150114949805
Root Mean Squared Error :
print("Root Mean Squared Error", np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
Root Mean Squared Error 2.1712093669081765
Thank You ):