基于支持向量机的泰坦尼克号生还预测数据集
时间: 2023-10-31 12:18:00 浏览: 185
泰坦尼克号生还预测数据集是一个经典的分类问题。我们可以使用支持向量机(SVM)来进行建模和预测。
首先,我们需要加载数据集并进行数据清洗和预处理。常见的预处理步骤包括填充缺失值、删除无用的特征和转换类别特征等。
接下来,我们需要将数据集拆分为训练集和测试集。训练集用于训练SVM模型,而测试集则用于评估模型的性能。
在训练SVM模型之前,我们需要进行特征缩放。这是因为SVM算法对于特征的尺度非常敏感,需要对特征进行缩放以确保它们具有相同的尺度。
然后,我们可以使用SVM算法来训练模型,并使用测试集对其进行评估。评估指标可以是准确率、精确率、召回率和F1分数等。
最后,我们可以使用训练好的模型对新的数据进行预测。
Python中有很多SVM库可供使用,如scikit-learn和libsvm等。以下是一个使用scikit-learn进行泰坦尼克号生还预测的示例代码:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载数据集
data = pd.read_csv('titanic.csv')
# 数据清洗和预处理
data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
data['Age'].fillna(data['Age'].mean(), inplace=True)
data['Embarked'].fillna('S', inplace=True)
data = pd.get_dummies(data)
# 拆分数据集
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=0)
# 特征缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 训练SVM模型
clf = SVC(kernel='linear', C=0.1, random_state=0)
clf.fit(X_train, y_train)
# 预测并评估模型
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
在这个示例中,我们使用了线性SVM分类器,并将C参数设置为0.1。您可以尝试使用不同的内核和参数来得到更好的性能。
阅读全文