Logistic回归简介-最常见的分类算法
整个世界都是一个大数据问题。如今,我们可以看到数据科学家,统计学家和大
数据分析人员有很多机会。您必须折磨数据,数据将打开并承认所有您想知道的信息!但是拥有足够的数据来进行预测吗?没有!为了做出预测,必须清理,分析,可视化,测试和训练数据。
另外,要进行预测,必须绘制所需的图,检查数据的分布方式,这些数字说明了什么,它们足以进行预测吗?一次,您可以使用多种方法处理数据,这将帮助您实现目标。因此,让我们看看如何处理数据并得出预测性输出!
在本文中,我们将看到一种称为“回归”的监督学习算法。在回归中,有一些子类别,例如线性回归,多元回归和逻辑回归。今天,我们将讨论逻辑回归。
什么是回归?
简而言之,它是统计学中的一个概念:一种变量(例如输出)的平均值与其他变量的对应值之间的关系的量度。
什么是Logistic回归?
Logistic回归是用于统计数据的数学模型,用于使用一些先前的数据来估计(猜测)事件发生的可能性。Logistic回归适用于事件发生(1)或事件不发生(0)的二进制数据。
我们将使用的数据集是关于心脏病的。我们将使用这些数据,您将在此处获取数据集: 数据集
首先,我们需要导入将在模型创建中使用的库。另外,我们将通过添加.csv文件的路径来导入数据集。添加数据后,使用dataframe.head()命令打印数据集的前5行。
将numpy导入为np
将熊猫作为pd导入
导入matplotlib.pyplot作为plt
数据集= pd.read_csv('../ input / logistic-regression-heart-disease-prediction / framingham_heart_disease.csv')#添加数据
#print第1 5行数据集.head
()
头
在玩任何游戏之前,我们必须了解详细信息和规则。同样,在处理数据之前,我们必须了解其详细信息和预测模型的规则。现在我们知道所有列,让我们看看这些属性的数据类型是什么,以及每列中有多少个空值。
dataset.isnull()。sum()
数据集
Logistic回归-缺少值
Logistic回归-数据类型
在这个游戏中,我们将使用这些属性中存在的数据来预测心脏病患者。你怎么看?教育对了解一个人的健康重要吗?当然不!对?因此,我们将删除该列。另外,某些列中存在许多缺失值,因此我们将删除这些列,并且如果没有这些列,则可以进行预测。
您认为这个数据游戏是如此简单吗?好吧,不!您是否观察到Cigsperday列?您不认为这对我们的预测会有帮助吗?是!本专栏非常重要。但是,如何处理那些缺失的价值呢?如果缺少一两张牌,您在打牌时会怎么做?我们用小丑卡代替这些卡,对吗?因此,这里我们将这些缺失值替换为平均值。
数据= dataset.drop([''education','BPMeds','totChol','BMI','葡萄糖','heartRate'],轴='columns')
data.head()
香烟=数据['cigsPerDay']
香烟.head()
CIG =香烟。平均值()
逻辑回归-导入数学
您是否观察了最后一栏?有值1或0。这使我们的数据标记为data。
那么,相关值和独立值是什么?
#此数据被标记为数据
#独立变量(X)将为年龄,估计工资#独立
变量(y)将为Purcahsed(这将是可能的)
#定义X,y
X = dataset.iloc [:
y = dataset.iloc [:
#print X,y
打印(X [:5,:])
打印(y [:5])
现在,该测试和训练数据了!
从sklearn #import train_test_split训练和测试我们的数据
从sklearn.model_selection导入train_test_split
#define
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.25,random_state = 0)
#print
print(X_train [:5],' \ n ',' \ n ',y_train [:5],' \ n ',' \ n ',X_test [:5],' \ n ',' \ n ',y_test [:5])
#create LogisticRegression类的对象称为分类器
从sklearn.linear_model导入LogisticRegression
分类器= LogisticRegression(random_state = 0)
classifier.fit(X_train,y_train)
y_pred = classifier.predict(X_test)
打印
混淆矩阵有点混乱吧?别担心!我们将拟合数据并打印分数。
X = data [['male','age','currentSmoker','cigsPerDay','prevalentStroke','prevalentHyp','diabetes','sysBP','diaBP']]
y =数据['TenYearCHD']
从sklearn.model_selection导入train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.20,random_state = 99)
从sklearn.linear_model导入LogisticRegression
模型= LogisticRegression()
model.fit(X_train,y_train)
model.score(X_test,y_test)
这个分数是.86!它告诉我们我们的预测是非常好的。您可以通过更改随机状态来检查分数。因此,我们的预测得分不错,因此赢得了比赛!
题库