titanic_model = pd.get_dummies(titanic_model, columns=['pclass'])
时间: 2024-06-04 18:09:46 浏览: 99
这行代码是用来对 Titanic 数据集中的 'pclass' 变量进行独热编码的。独热编码是将离散型变量转换为机器学习模型可以理解的数值型变量的一种方式。在这里,'pclass' 变量是船票等级,有三个等级,分别为1、2、3。使用独热编码可以将其转换为三个二元变量:'pclass_1'、'pclass_2' 和 'pclass_3',取值为 0 或 1,表示某个乘客的船票等级是否为 1、2 或 3。这样,模型就可以将船票等级作为数值型变量来处理,并更好地利用该变量对预测结果进行建模。
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LogisticRegression '''导入数据并粗略查看情况''' train_data = pd.read_csv(r'C:\Users\86181\Desktop\titanic\train.csv') test_data = pd.read_csv(r'C:\Users\86181\Desktop\titanic\test.csv') print(train_data.head()) print(np.sum(pd.isnull(train_data)))#查看缺失的信息 '''SibSp为兄弟妹的个数,Parch为父母与小孩的个数,Embarked为登船港口''' '''数据清洗''' train_data = train_data.drop(['PassengerId', 'Name', 'Ticket','Cabin'], axis = 1)#删除无关项 test_data = test_data.drop(['PassengerId', 'Name', 'Ticket','Cabin'], axis = 1) print(train_data.head()) train_data = train_data.dropna(axis = 0) print(np.sum(pd.isnull(train_data)))#再次查看是否还有缺失的信息 '''查看数据的总体情况''' train_data['Age'].hist() plt.xlabel('Age') plt.ylabel('Numbers of passengers') plt.title('The age of all passengers') plt.show() train_data['Pclass'].hist() plt.xlabel("'Passengers' class") plt.ylabel('Numbers of passengers') plt.title('The class of all passengers') plt.show() train_data['Sex'].hist() plt.xlabel("Sex") plt.ylabel('Numbers of passengers') plt.title('The sex of all passengers') plt.show() train_data['SibSp'].hist() plt.xlabel("The number of SibSp") plt.ylabel('Numbers of passengers') plt.title('The SibSp of all passengers') plt.show() train_data['Parch'].hist() plt.xlabel("The number of Parch") plt.ylabel('Numbers of passengers') plt.title('The Parch of all passengers') plt.show() train_data['Fare'].hist() plt.xlabel("Fare") plt.ylabel('Numbers of passengers') plt.title('The fare of all passengers') plt.show() train_data['Embarked'].hist() plt.xlabel("Embarked") plt.ylabel('Embarked of passengers') plt.title('The Embarked of all passengers') plt.show() train_data['Survived'].hist() plt.xlabel("Survived") plt.ylabel('Numbers of passengers') plt.title('Survived passengers') plt.show() '''开始分析''' X_train = train_data[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']] Y_train = train_data[['Survived']] X_train = pd.get_dummies(train_data, columns = ['Pclass']) X_train = pd.get_dummies(train_data, columns = ['Embarked']) X_train['Sex'].replace('female', 0, inplace = True) X_train['Sex'].replace('male', 1, inplace = True) print(X_train.head()) print(np.sum(pd.isnull(X_train)))
这段Python代码的作用是:导入一些常用的数据分析和可视化库(numpy、pandas、matplotlib、sklearn),然后使用pandas读取Titanic数据集中的训练集和测试集。而后打印出训练集的前五行数据,以及训练集中每列的缺失值总数量。
使用决策树算法进行titanic生还预测,训练数据集为titanic_train.csv,测试数据集为titanic_test.csv。
在Titanic生存预测问题中,我们可以使用决策树算法对乘客的生还情况进行分类。首先,需要加载titanic_train.csv的数据集作为训练样本,这个文件通常包含乘客的各种特征,如年龄、性别、票价、船舱等级等,以及是否幸存的标签。
以下是使用Python的scikit-learn库进行决策树模型训练的基本步骤:
1. **数据预处理**:读取csv文件,处理缺失值,例如使用平均值填充数值型缺失值,或通过模式填补类别型缺失值。将非数值特征转换为可以用于机器学习的数值表示,比如使用独热编码(One-Hot Encoding)处理类别特征。
```python
import pandas as pd
from sklearn.impute import SimpleImputer
train_data = pd.read_csv('titanic_train.csv')
test_data = pd.read_csv('titanic_test.csv')
# 缺失值处理
imputer = SimpleImputer(strategy='mean') # 或者其他策略
train_data_num = imputer.fit_transform(train_data[['Age', 'Fare']])
test_data_num = imputer.transform(test_data[['Age', 'Fare']])
# 对类别特征进行编码
categorical_features = ['Sex', 'Pclass']
train_data_encoded = pd.get_dummies(train_data, columns=categorical_features)
test_data_encoded = pd.get_dummies(test_data, columns=categorical_features)
```
2. **分割特征和目标变量**:从训练数据中分离出特征(X)和目标变量(y,即Survived列)。
```python
X_train = train_data_encoded.drop('Survived', axis=1)
y_train = train_data_encoded['Survived']
X_test = test_data_encoded
```
3. **创建并训练决策树模型**:
```python
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
```
4. **评估模型性能**:使用交叉验证或训练集上的指标(如准确率、召回率、AUC-ROC等)来评估模型的性能。
5. **预测**:利用训练好的模型对titanic_test.csv中的数据进行预测。
```python
predictions = model.predict(X_test)
```
6. **提交结果**:保存预测到新的CSV文件,格式应符合竞赛的要求,通常包括PassengerId和Survived两列。
阅读全文