Linear Classifier in Tensorflow – GeeksforGeeks

On this article, we can be utilizing tf.estimator.LinearClassifier to construct a mannequin and practice it on the well-known titanic dataset. All of this can be completed by utilizing the TensorFlow API.

Importing Libraries 

Python libraries make it straightforward for us to deal with the information and carry out typical and complicated duties with a single line of code.

  • Pandas – This library helps to load the information body in a 2D array format and has a number of features to carry out evaluation duties in a single go.
  • Numpy – Numpy arrays are very quick and may carry out giant computations in a really brief time.
  • Matplotlib/Seaborn – This library is used to attract visualizations.


import tensorflow as tf

import tensorflow.feature_column as fc


import numpy as np

import pandas as pd

import matplotlib.pyplot as plt


import warnings


Importing Dataset

We are going to import the dataset by utilizing the Tensorflow API for datasets after which load it into the panda’s knowledge body.




y_train = x_train.pop('survived')

y_val = x_val.pop('survived')

We are going to want the information for the specific columns and the numeric(steady) column current within the dataset individually to initialize our Linear Classifier mannequin.


objects = []

numerics = []


for col in x_train.columns:

    if x_train[col].dtype == 'object':



    elif x_train[col].dtype == 'int':









['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']
['age', 'fare']


feat_cols = []

for feat_name in objects:

    vocabulary = x_train[feat_name].distinctive()




for feat_name in numerics:



We have to make a callable perform that may be handed to the LinearClassifier perform.


def make_input_fn(knowledge, label,




    def input_function():

        ds = tf.knowledge.Dataset



        if shuffle:

            ds = ds.shuffle(1000)

        ds = ds.batch(batch_size)


        return ds

    return input_function



train_input_fn = make_input_fn(x_train, y_train)

val_input_fn = make_input_fn(x_val, y_val, num_epochs=1, shuffle=False)

Now we’re good to go to coach the tf.estimator.LinearClassifier mannequin utilizing the titanic dataset. Linear Classifier because the identify suggests is a Linear mannequin which is used to be taught resolution boundaries between a number of courses of the item however that ought to be Linear not non-Linear as we accomplish that within the SVM algorithm.

LinearClassifier Mannequin


linear_est = tf.estimator.LinearClassifier(feature_columns=feat_cols)


end result = linear_est.consider(val_input_fn)


print(end result)


{'accuracy': 0.75,
 'accuracy_baseline': 0.625,
 'auc': 0.8377411,
 'auc_precision_recall': 0.7833674,
 'average_loss': 0.47364476,
 'label/imply': 0.375, 'loss': 0.4666896,
 'precision': 0.6666667,
 'prediction/imply': 0.37083066,
 'recall': 0.6666667,
 'global_step': 200}

Right here we are able to observe that the mannequin has been evaluated on a number of matrices utilizing the validation dataset and the accuracy obtained can be very passable.

Latest articles

Related articles

Leave a reply

Please enter your comment!
Please enter your name here