构建随机森林算法预测泰坦尼克号幸存者数据
随机森林算法是一种基于决策树的集成学习算法,它可以用于分类和回归问题。在本文中,我们将使用随机森林算法来预测泰坦尼克号幸存者数据。
首先,我们需要导入所需的库和数据集:
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取数据集
data = pd.read_csv("titanic.csv")
接着,我们需要对数据集进行预处理,包括数据清洗、特征工程等。在本例中,我们只对数据进行简单的处理,包括删除无用的列和缺失值填充:
# 删除无用的列
data = data.drop(["PassengerId", "Name", "Ticket", "Cabin"], axis=1)
# 填充缺失值
data["Age"].fillna(data["Age"].median(), inplace=True)
data["Embarked"].fillna(method="ffill", inplace=True)
# 将分类变量转换为数值变量
data = pd.get_dummies(data, columns=["Sex", "Embarked"])
接着,我们将数据集分为训练集和测试集:
# 将数据集分为训练集和测试集
X = data.drop("Survived", axis=1)
y = data["Survived"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
然后,我们可以使用随机森林算法来训练模型:
# 训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
最后,我们可以使用测试集来评估模型的性能:
# 在测试集上评估模型性能
y_pred = rf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy * 100))
完整代码如下:
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取数据集
data = pd.read_csv("titanic.csv")
# 删除无用的列
data = data.drop(["PassengerId", "Name", "Ticket", "Cabin"], axis=1)
# 填充缺失值
data["Age"].fillna(data["Age"].median(), inplace=True)
data["Embarked"].fillna(method="ffill", inplace=True)
# 将分类变量转换为数值变量
data = pd.get_dummies(data, columns=["Sex", "Embarked"])
# 将数据集分为训练集和测试集
X = data.drop("Survived", axis=1)
y = data["Survived"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 在测试集上评估模型性能
y_pred = rf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy * 100))
``
原文地址: https://www.cveoy.top/t/topic/fIX7 著作权归作者所有。请勿转载和采集!