使用Logistic回归进行安置预测

使用Logistic回归进行安置预测

在这篇文章中,我们将讨论如何使用Logistic回归算法,根据各种学生属性来预测学生的安置状况。

安置工作对学生和教育机构具有重要意义。它帮助学生为今后的职业生涯打下坚实的基础,同时良好的就业记录也为学院/大学在教育市场上提供了竞争优势。

这项研究的重点是,根据学生的资质、历史数据和经验,预测学生是否会被安置的系统。这个预测器使用机器学习算法来给出结果。

使用的算法是Logistic回归。Logistic回归基本上是一种监督分类算法。在分类问题中,目标变量(或输出),y,对于给定的特征集(或输入),X,只能采取离散值。说到数据集,它包含学生的中学百分比,高中百分比,学位百分比,学位和工作经验。在预测结果之后,其效率也是根据数据集来计算的。这里使用的数据集是.csv格式。

以下是分步实现:

第1步:导入所需的模块。

# import modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

第二步:现在要读取我们要用于分析的数据集,然后检查数据集。

# reading the file
dataset = pd.read_csv('Placement_Data_Full_Class.csv')
dataset

输出:

使用Logistic回归进行安置预测

第3步:现在我们将删除不需要的列。

# dropping the serial no and salary col
dataset = dataset.drop('sl_no', axis=1)
dataset = dataset.drop('salary', axis=1)

第4步:在继续前进之前,我们需要对数据进行预处理和转换。为此,我们将对一些列使用astype()方法,并将数据类型改为category

# catgorising col for further labelling
dataset["gender"] = dataset["gender"].astype('category')
dataset["ssc_b"] = dataset["ssc_b"].astype('category')
dataset["hsc_b"] = dataset["hsc_b"].astype('category')
dataset["degree_t"] = dataset["degree_t"].astype('category')
dataset["workex"] = dataset["workex"].astype('category')
dataset["specialisation"] = dataset["specialisation"].astype('category')
dataset["status"] = dataset["status"].astype('category')
dataset["hsc_s"] = dataset["hsc_s"].astype('category')
dataset.dtypes

输出:

使用Logistic回归进行安置预测

步骤5:现在我们将在其中一些列上应用代码,将其文本值转换为数字值。

# labelling the columns
dataset["gender"] = dataset["gender"].cat.codes
dataset["ssc_b"] = dataset["ssc_b"].cat.codes
dataset["hsc_b"] = dataset["hsc_b"].cat.codes
dataset["degree_t"] = dataset["degree_t"].cat.codes
dataset["workex"] = dataset["workex"].cat.codes
dataset["specialisation"] = dataset["specialisation"].cat.codes
dataset["status"] = dataset["status"].cat.codes
dataset["hsc_s"] = dataset["hsc_s"].cat.codes
 
# display dataset
dataset

输出:

使用Logistic回归进行安置预测

第6步:现在使用iloc()函数将数据集分成特征和值。

# selecting the features and labels
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, -1].values
 
# display dependent variables
Y

第7步:现在我们将把数据集分成训练和测试数据,这些数据将在以后用于检查效率。

# dividing the data into train and test
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,
                                                    test_size=0.2)
 
# display dataset
dataset.head()

输出:

使用Logistic回归进行安置预测

第8步:现在我们需要训练我们的模型,为此我们需要导入一个文件,然后我们将使用sklearn模块创建一个分类器。然后我们将检查该模型的准确性。

# creating a classifier using sklearn
from sklearn.linear_model import LogisticRegression
 
clf = LogisticRegression(random_state=0, solver='lbfgs',
                         max_iter=1000).fit(X_train,
                                            Y_train)
# printing the acc
clf.score(X_test, Y_test)

输出:

使用Logistic回归进行安置预测

第9步:一旦我们训练好了模型,我们将给它一些随机值进行检查。

# predicting for random value
clf.predict([[0, 87, 0, 95, 0, 2, 78, 2, 0, 0, 1, 0]])

输出:

使用Logistic回归进行安置预测

第10步:为了更细致地了解我们模型的性能,我们需要制作一个混淆矩阵。混淆矩阵是一个有两行和两列的表格,报告假阳性、假阴性、真阳性和真阴性的数量。

为了得到混淆矩阵,它需要两个参数。你的测试集的实际标签y_test和预测的标签。分类器的预测标签被存储在y_pred中,如下所示。

# creating a Y_pred for test data
Y_pred = clf.predict(X_test)
 
# display predicted values
Y_pred

输出:

使用Logistic回归进行安置预测

第11步:最后,我们有了y_pred,所以我们可以生成混淆矩阵。

# evaluation of the classifier
from sklearn.metrics import confusion_matrix, accuracy_score
 
# display confusion matrix
print(confusion_matrix(Y_test, Y_pred))
 
# display accuracy
print(accuracy_score(Y_test, Y_pred))

输出:

使用Logistic回归进行安置预测

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程