针对实际数据集,使用集成学习stacking方法,进行分类问题的预测。主要是数据集在python种的导入方法。
数据集为泰坦尼克号数据集。
1、导入csv文件:
read_csv函数 、官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/index.html
import pandas as pd #导入pandas包
data = pd.read_csv("train.csv",low_memory=False) #读取文件名字为“train.csv”的csv文件,
#low_memory 默认为True 在块内部处理文件,导致分析时内存使用量降低,但可能数据类型混乱。要确保没有混合类型设置为False,或者使用dtype参数指定类型。请注意,不管怎样,整个文件都读入单个DataFrame中,请使用chunksize或iterator参数以块形式返回数据。 (仅在C语法分析器中有效)
#print(data) #打印所有文件
2、特征值处理:字符串转换为数字、填充……
# 特征值处理:如字符串改为数字
def harmonize_data(data):
# 填充空数据 和 把string数据转成integer表示
# 对于年龄字段发生缺失,我们用所有年龄的均值替代
data["Age"] = data["Age"].fillna(data["Age"].median())
# 性别男: 用0替代
data.loc[data["Sex"] == "male", "Sex"] = 0
# 性别女: 用1替代
data.loc[data["Sex"] == "female", "Sex"] = 1
data["Embarked"] = data["Embarked"].fillna("S")
data.loc[data["Embarked"] == "S", "Embarked"] = 0
data.loc[data["Embarked"] == "C", "Embarked"] = 1
data.loc[data["Embarked"] == "Q", "Embarked"] = 2
data["Fare"] = data["Fare"].fillna(data["Fare"].median())
return data
data = harmonize_data(data)
3、分别生成特征矩阵、标签矩阵:
# 分别生成特征矩阵、标签矩阵
data=np.array(data) #将data转成numpy矩阵
X = data[0:,2:] # 2-12列为特征矩阵X
Y = data[0:,1] # 1列为标签矩阵Y
pass #调试点,导入了data为数据,label为标签