赞
踩
train=pd.read_csv('train.csv')
test=pd.read_csv('test.csv')
datas = pd.concat([train, test], ignore_index = True)
# 获取数据集
我们可以使用head函数比如使用train.head()就可以查看到训练集中的数据,默认前五行
train.head()
我们可以使用shape函数比如使用train.shape就可以查看到训练集中行列数量
train.shape
#(891, 12)891行,12列
我们可以使用info函数比如使用train.info()就可以查看到数据中,每一行的类型和空行
train.info()
由以上数据可以看出Age,Fare,Cabin,Embarked,几列中数据有空值,应进行相应的填充
通过info获知了那些列是空的,因此我们要把空列中的那些行查出,方便后续操作。
# Embarked 填充港口参数
# 查看港口那一列空值行
datas[datas['Embarked'].isnull()]
根据人员信息看出,是两名女性,船票是一等票,建议填充为存活率高的港口分类。
#填充数据集中Embarked列的空白行为C
datas['Embarked'] = datas['Embarked'].fillna('C')
首先寻找特征,使用目标对象的年龄,性别,船票,训练一个模型,然后有那个模型
from sklearn.ensemble import RandomForestRegressor
ages = datas[['Age', 'Pclass','Sex']]
ages=pd.get_dummies(ages)
known_ages = ages[ages.Age.notnull()].values
unknown_ages = ages[ages.Age.isnull()].values
y = known_ages[:, 0]
X = known_ages[:, 1:]
rfr = RandomForestRegressor(random_state=60, n_estimators=100, n_jobs=-1)
rfr.fit(X, y)
pre_ages = rfr.predict(unknown_ages[:, 1::])
datas.loc[ (datas.Age.isnull()), 'Age' ] = pre_ages
从中取出关键列,或者认为构建的关键列
axis默认为0代表行,axis=1则使用列
#合并两个集合 datas=pd.concat([train, test]) #从集合中取出关键的列,有些是人为构建的 datas=datas[['Survived','Pclass','Sex','Age','Fare','Embarked','Title','Fam_type','Board','Ticketlabels']] #将类别数据转换为向量 datas=pd.get_dummies(datas) #train是有存活数据的数据集 train=datas[datas['Survived'].notnull()] #test是没有没有存活信息的数据集,并且删除掉Survived那一列 test=datas[datas['Survived'].isnull()].drop('Survived',axis=1) # X的值不包含第0列,从第一列开始到后面的所有列 X = train.values[:,1:] # y仅有一列,就是Survived 第0列,用作模型的训练 y = train.values[:,0] #fit(X,y) #训练的数据是X,验证的结果集是y
如果数据集非常大,而这些缺失项很少,建议直接删除,该行
datas.dropna(axis=0, how='any')
从train数据集中删除票价大于的行
train = train.drop(index= train[train.Fare>= 700].index, axis=0)
train.corr()['Survived']
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。