数据科学与逻辑回归分析

在这个数据驱动的时代,面临着海量的数据问题。数据科学家、统计学家和大数据分析师的角色变得越来越重要。正如前英国高级公务员、经济学家Gus O’Donnell所言:“相信基于证据的分析。”数据本身并不足以做出预测,需要对数据进行清洗、分析、可视化、测试和训练。

在这篇文章中,将探讨一种名为回归的监督学习算法。回归算法包括线性回归、多元回归和逻辑回归等子类别。今天将重点讨论逻辑回归。

回归分析是一种统计学概念,用于衡量一个变量(例如输出)的平均值与其他变量值之间的关系。逻辑回归是一种数学模型,用于根据先前的数据估计事件发生的概率。逻辑回归处理的是二元数据,即事件要么发生(1),要么不发生(0)。

将使用一个关于心脏病的数据集来进行分析。首先,需要导入模型创建中将使用的库,并添加.csv文件的路径来导入数据集。添加数据后,使用dataframe.head()命令打印数据集的前五行。

# Python代码示例 import pandas as pd # 导入数据集 dataset = pd.read_csv('path_to_your_dataset.csv') print(dataset.head())

在开始任何游戏之前,必须了解细节和规则。同样,在处理数据之前,必须了解其细节和规则,以便预测模型。现在知道了所有列,让看看这些属性的数据类型,以及每列中存在多少空值。

# 检查空值和数据类型 print(dataset.isnull().sum()) print(dataset.dtypes)

在这个游戏中,将使用这些属性中的数据来预测心脏病患者的情况。认为教育对了解一个人的健康重要吗?当然不是!对吧?因此,将删除该列。此外,一些列中存在许多缺失值,因此将删除这些列,因为即使没有这些列,也可以进行预测。

# 删除不必要的列 data = dataset.drop(['education', 'BPMeds', 'totChol', 'BMI', 'glucose', 'heartRate'], axis='columns') print(data.head())

注意到“Cigsperday”这一列了吗?不认为它将有助于预测吗?是的!这一列非常重要。但是如何处理这些缺失值呢?当打牌时,如果缺少一两张牌,会怎么做?使用王牌代替那些牌,对吧?因此,将用平均值替换这些缺失值。

# 处理缺失值 cigarettes = data['cigsPerDay'] cig_mean = cigarettes.mean() data['cigsPerDay'] = cigarettes.fillna(cig_mean)

观察最后一列,有1或0的值。这使数据成为标记数据。那么,什么是自变量和因变量呢?

# 定义自变量和因变量 X = data.iloc[:, [1, 3]].values y = data.iloc[:, 15].values print(X[:5, :]) print(y[:5])

现在是时候测试和训练数据了!将使用sklearn库中的train_test_split函数来训练和测试数据。

# 训练和测试数据 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0) print(X_train[:5], '\n', y_train[:5], '\n', X_test[:5], '\n', y_test[:5]) # 创建逻辑回归分类器 from sklearn.linear_model import LogisticRegression classifier = 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 = data['TenYearCHD'] model = LogisticRegression() model.fit(X_train, y_train) score = model.score(X_test, y_test) print("模型分数:", score)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485