kaggle泰坦尼克比赛总结

泰坦尼克数据挖掘比赛是kaggle上的新手入门赛,作为一个基础还没打好的菜鸡强行敲了一波代码,但是大部分还是跟着别人的思路,看着别人的代码写的。因此代码就不放了,放了跟搬运没啥区别。单纯总结一下学习感悟吧。
做数据挖掘的第一步就是读取数据之后进行分析和预处理。所要用到的python 库有pandas,numpy,matplotlib,seaborn…
1.读取数据之后先统计一下缺失值情况。

   data=pd.read_csv('训练集文件路径.csv')
   data.head()
#统计缺失值
data.isnul().sum()
#展示数据
data.describe()

2.获取数据之后要进行仔细的分析与理解,才能进行后面的建模。
为了更好地理解数据,必须掌握数据的可视化的操作。
3.对于缺失值我们必须进行填充,下面的例子是我使用sklearn的randmforest来拟合缺失数据

#用sklearn中的randomforest来拟合缺失的年龄数据。

from sklearn.ensemble import RandomForestRegressor

### 使用 RandomForestClassifier 填补缺失的年龄属性
def set_missing_ages(df):
  
  # 把已有的数值型特征取出来丢进Random Forest Regressor中
  age_df = df[['Age','Fare', 'Parch', 'SibSp', 'Pclass']]

  # 乘客分成已知年龄和未知年龄两部分
  known_age = age_df[age_df.Age.notnull()].as_matrix()
  unknown_age = age_df[age_df.Age.isnull()].as_matrix()

  # y即目标年龄
  y = known_age[:, 0]

  # X即特征属性值
  X = known_age[:, 1:]

  # fit到RandomForestRegressor之中
  rfr = RandomForestRegressor(random_state=0, n_estimators=2000, n_jobs=-1)
  rfr.fit(X, y)
  
  # 用得到的模型进行未知年龄结果预测
  predictedAges = rfr.predict(unknown_age[:, 1::])
  
  # 用得到的预测结果填补原缺失数据
  df.loc[ (df.Age.isnull()), 'Age' ] = predictedAges 
  
  return df, rfr

def set_Cabin_type(df):
  df.loc[ (df.Cabin.notnull()), 'Cabin' ] = "Yes"
  df.loc[ (df.Cabin.isnull()), 'Cabin' ] = "No"
  return df

df_train, rfr = set_missing_ages(df_train)
df_train = set_Cabin_type(df_train)

``
4.对每个特征进行单独分析,充分理解,看其与我们要预测的特征的关系,对于强特,很方便,对于弱特征,需要进行特征挖掘,特征组合,来提高预测效果,组合出强特。要不然就要舍掉影响很小的特征,进行约简。
5.单独分析之后就要在特征之间找相关性,进行特征工程,数据清洗。
在找特征之间的相关性的时候可以使用热度图。
6.要学会合并特征,比如在这个比赛里将客人的父母数量,兄弟姐妹数量合起来为家庭总人数的特征。
7.去掉不必要的特征,因为这些特征要么毫无意义,要么充满随机性。
8.利用机器学习算法来建模。

from sklearn.linear_model import LogisticRegression #logistic回归
from sklearn import svm  #支持向量机
from sklearn.ensemble import RandomForestClassifier #随机森林
from sklearn.neighbors import KNeighborsClassifier #KNN
from sklearn.naive_bayes import GaussianNB  #朴素贝叶斯
from sklearn.tree import DecisionTreeClassifier  #决策树

from sklearn.model_selection import train_test_split #切分数据集
from sklearn import metrics #精度测量
from sklearn.metrics import confusion_matrix #混淆矩阵

9.另外很重要的一点就是要进行交叉验证,这个的重要性无需多言。
10.注意用正则化防止过拟合的问题。
11.可以多做几组特征,多做几个模型,来进行模型融合,上分!
12.调参很重要,算法理解很重要,要实现底层。
13.也不需要太执着于特征挖掘,像我们中国移动消费者人群画像比赛里就一直执着于特征挖掘,最后发现特征选取的都差不多,差距在参数和其他的技巧上。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值