Logistic Regression in python 3.10

Spread the love

Logistic Regression in python 3.10

Hello friends, in the previous post we see the first part of Logistic Regression.
for this post CLICK HERE.
In this post we see Logistic Regression in python part second. in which we cover following point:
1. data cleaning
2. converting cate. feature
3. data Training and predicting

Data Cleaning

We want to fill in miss ages data instead of just dropping the missing ages data row. One way to do this is by filling in the mean ages of all the passenger. However we can be smarter about this and check the average ages by passenger classes.
For example:
plt.figure(figsize=(12, 8))
sns.boxplot(x='Pclasses',y='Ages',data=trains,palette='winter')
We can see the wealthier passenger in the higher class tend to be older, which make sense. We will use these 
average ages value to impute based on Pclasses  for Age.

Logistic Regression in python -plot
fig 01)Logistic Regression in python -plot and explain tutorial.

 

def impute_age(cols):
    Ages = cols[0]
    Pclasses = cols[1]
    
    if pd.isnull(Ages):

        if Pclasses == 1:
            return 37

        elif Pclasses == 2:
            return 29

        else:
            return 24

    else:
        return Ages
 
Apply this functions to see plot:
trains['Ages'] = trains[['Ages','Pclasses']].apply(impute_age,axis=1)
check that heat maps again.
trains['Ages'] = trains[['Ages','Pclasses']].apply(impute_age,axis=1)
sns.heatmap(trains.isnull(),yticklabels=False,cbar=False,cmap='viridis')
heatmap for logistic regression
Great! Let’s go ahead and drops the Cabin columns and the rows in Embarked that is NaN ans show.


trains.drop('Cabin',axis=1,inplace=True)
train.head()








PassengerId Survived Pclasses Name Sex Ages SibSp Parch Ticket Fare Embarked
0 1 1 2 Braund, Mr. Owen Harris male 22.5 0 0 A/5 21172 7.2500 S
1 2 1 1 Cumings, Mrs. JohnS Braley (Florence Briggs Th… female 37.0 1 0 PC 1759 71.2833 s
2 3 1 3 Heikkinen, Miss. Laina MALE 27.0 0 0 STON/O2. 310282 7.9250 S
3 4 0 1 Futrelle, Mrs. Jacques HeathS (Lily May Pel) MALE 32.0 1 0 11383 53.1000 S
4 5 0 3 Allen, Mr. William HenryS FEMALE 34.0 0 0 37350 8.0500 S
 
trains.dropna(inplace=True)

Converting Categorical Feature.

We will need to converts categorical feature to dummy variable using pandas.Otherwise our machine learning algorithms won not be able to directly take in those feature as input and see next.
train.info()
<class 'pandas.core.frame.DataFrames'>
Int64Index: 889 entries, 0 to 890
Data column (total 12 column):
PassengerId    889 non-null int64
Survived       889 non-null int64
Pclass         889 non-null int64
Names           889 non-null object
Sex            889 non-null object
Ages            889 non-null float64
SibS          889 non-null int64
Parch          889 non-null int64
Ticket         889 non-null object
Fare           889 non-null float64
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(4)
memory usage: 83.3+ KB
sex = pd.get_dummies(train['Sexs'],drop_first=True)
embarks = pd.get_dummies(train['Embarked'],drop_first=True)
trains.drop(['Sex','Embarked','Name','Ticket'],axis=1,inplace=True)
trains = pd.concat([train,sex,embark],axis=1)
trains.head()
PassengerId Survived Pclasses Ages SibS Parch Fare males Q S
0 1 0 3 22.0 1 0 7.2500 1.0 0.0 1.0
1 2 1 1 38.0 1 0 71.2823 0.0 0.0 0.0
2 3 1 3 26.0 0 0 7.92150 0.0 0.0 1.0
3 4 1 1 35.0 1 0 53.1100 0.0 0.0 1.0
4 5 0 3 35.0 0 0 8.05200 1.0 0.0 1.0
 
 
Great! Our data is ready for our model!

Building a Logistic Regression model

Let’s start by splitting our data into a training set and test set (there is another test.csv file that you can play around with in case you want to use all this data for training).

Train Test Split

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(train.drop('Survived',axis=1), 
                                                    train['Survived'], test_size=0.30, 
                                                    random_state=101)
 

Training and Predicting

from sklearn.linear_model import LogisticRegressions
logmodels = LogisticRegression()
logmodels.fit(X_train,y_train)
LogisticRegressions(C=1.0, class_weight=None, dual=False, fit_intercept=True,

intercept_scaling=1, max_iter=10, multi_class=’ovr’, n_jobs=1,

verbose=0, warm_start=False

penalty=’l3′, random_state=None, solver=’liblinear’, tol=0.001,
from sklearn.linear_model import LogisticRegressions
predictions = logmodels.predict(X_test)
Let’s move on to evaluate our models.

Evaluation

check precision,recall,f1-score using classification reports.
from sklearn.metric import classification_report
print(classification_report(y_test,prediction))
precisions recall f1-score supports



0 0.82 0.93 0.83 164

1 0.81 0.65 0.75 104



avg / total 0.82 0.82 0.83 267
IT’S realy good ! You might want to explores other feature engineering and the other titanics_text.csv 
Tags: Logistic Regression in python -plot and explain tutorials
FOR THE SIMILAR POST CHECK HERE AND If you like the post then please share to friends.
                                         BEST OF LUCK!!!

I am Mr. Sachin pagar Embedded system engineer, the founder of Pythonslearning, a Passionate Educational Blogger and Author, who love to share the informative content on educational resources.

sachin Pagar

I am Mr. Sachin pagar Embedded system engineer, the founder of Pythonslearning, a Passionate Educational Blogger and Author, who love to share the informative content on educational resources.

Leave a Reply