Python使用Scikit-learn逻辑回归实战
准备工作:
1. 安装Python:在官网(https://www.python.org/downloads/)下载并安装Python的最新版本。
2. 安装Scikit-learn:打开命令行窗口,运行以下命令:
pip install scikit-learn
依赖的类库:
- Pandas:用于数据处理和分析,安装命令为`pip install pandas`
- NumPy:用于数值计算和数组操作,安装命令为`pip install numpy`
- Matplotlib:用于可视化,安装命令为`pip install matplotlib`
- Seaborn:基于Matplotlib的数据可视化库,安装命令为`pip install seaborn`
数据集介绍:
本次实战使用的是泰坦尼克号乘客的数据集,包含了乘客的特征信息(如年龄、性别、船票等级等)以及是否生存的标签。数据集包含了训练集(train.csv)和测试集(test.csv)两个文件,可以在Kaggle网站上下载(https://www.kaggle.com/c/titanic/data)。
样例数据:
训练集中的部分数据如下所示:
PassengerId Survived Pclass ... Fare Cabin Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C
2 3 1 3 ... 7.9250 NaN S
3 4 1 1 ... 53.1000 C123 S
4 5 0 3 ... 8.0500 NaN S
完整的样例代码如下:
python
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取训练集
train_data = pd.read_csv('train.csv')
# 数据预处理
train_data = train_data[['Survived', 'Pclass', 'Sex', 'Age', 'Fare']]
train_data = train_data.dropna()
train_data['Sex'] = train_data['Sex'].map({'female': 0, 'male': 1})
# 划分特征和标签
X = train_data[['Pclass', 'Sex', 'Age', 'Fare']]
y = train_data['Survived']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建逻辑回归模型
model = LogisticRegression()
# 模型训练
model.fit(X_train, y_train)
# 模型预测
y_pred = model.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
代码说明:
1. 首先导入需要的库和类。
2. 使用Pandas库读取训练集的csv文件,并对数据进行预处理,选择了需要的特征列,并删除了含有空值的行,同时将性别一列的值转换为数字表示。
3. 划分特征和标签。
4. 使用train_test_split将数据集划分为训练集和测试集。
5. 创建LogisticRegression对象,即逻辑回归模型。
6. 对模型进行训练。
7. 使用训练好的模型对测试集进行预测。
8. 使用accuracy_score计算预测准确率。
9. 打印准确率。
总结:
本次实战使用Scikit-learn库中的逻辑回归模型对泰坦尼克号乘客的数据进行预测,并计算了预测准确率。通过这个样例,我们可以学习到如何使用Scikit-learn进行机器学习的建模和预测任务,并对数据进行预处理和特征选择。