Kaggle X FastAI系列 1 --titanic

数据准备

        直接在Anaconda命令行里用kaggle提供的命令下载,参考fastbook中09_tabula的API方法没有成功。

        用pandas读取一下数据。

path = URLs.path('titanic')
train_path = path/'train.csv'
test_path = path/'test.csv'
df = pd.read_csv(train_path, low_memory=False,skipinitialspace=True)
test_df = pd.read_csv(test_path, low_memory=False,skipinitialspace=True)

        生成DataLoaders

cat_names = [ 'Pclass', 'SibSp',
       'Parch', 'Fare', 'Cabin', 'Embarked', 'Sex']
cont_names = ['Age','PassengerId']
procs = [Categorify, FillMissing, Normalize]
dls = TabularDataLoaders.from_csv(train_path, path, procs=procs, cat_names=cat_names, cont_names=cont_names, 
                                 y_names=dep_var, valid_idx=list(range(600,800)), bs=64,y_block = CategoryBlock)

        其中要特别注意的是预测中的y_name,这个数据集中是dep_var = 'Survived'是不可以加入cat_names 和cont_names中的,第一次用的时候直接对df.columns复制粘贴,因为加入了y_name到离散型变量中引发了莫名其妙的pandas bug,找了将近一个小时才发现是这个原因。

开始训练

learn = tabular_learner(dls,metrics=accuracy)
learn.fit_one_cycle(100)

        这里就采用了默认的tabular_learner,结果如下:

epochtrain_lossvalid_lossaccuracytime
00.6879100.6720020.64000000:01
10.6791520.6652650.64000000:00
20.6706700.6586790.68000000:00
30.6631440.6491060.67000000:00
40.6541190.6423870.67000000:00
50.6425540.6438970.61000000:00
60.6275250.6264490.61500000:00
70.6080220.5947940.68000000:00
80.5795660.5742570.71000000:00
90.5409280.5323650.72500000:00
100.4953520.4871200.75500000:00
110.4494790.4450670.77000000:00
120.4073280.5108660.75500000:00
130.3726190.5129420.77500000:00
140.3443800.5540820.77500000:00
150.3162520.4873150.77500000:00
160.2908130.5255960.75500000:00
170.2669760.6067960.77500000:00
180.2487520.6046650.75500000:00
190.2322900.5906090.75000000:00
200.2183910.5786650.74500000:00
210.2035870.5865810.75000000:00
220.1891890.6283360.70500000:00
230.1809110.6895950.71500000:00
240.1700230.6370400.73500000:00
250.1615360.6309650.76500000:00
260.1526050.5913960.74000000:00
270.1462940.6485900.73000000:00
280.1425790.6880910.73000000:00
290.1359670.7815100.71500000:00
300.1277390.7443470.74000000:00
310.1232550.6554970.74500000:00
320.1192410.7153050.74500000:00
330.1149360.9022630.72500000:00
340.1122550.8397630.72000000:00
350.1065220.7422900.73000000:00
360.1026510.7899780.76000000:00
370.1000170.7716530.73000000:00
380.0963460.8852130.72000000:00
390.0940710.8217060.74500000:00
400.0899690.7286420.75000000:00
410.0863000.7643770.73500000:00
420.0803750.7375200.75000000:00
430.0757490.8404100.73500000:00
440.0708740.8770530.73500000:00
450.0704020.8795260.72500000:00
460.0691620.8859280.73000000:00
470.0659400.9512720.75500000:00
480.0649350.8358280.76000000:00
490.0624910.9569260.70500000:00
500.0628180.9959810.73000000:00
510.0603780.9435670.74500000:00
520.0614011.0840700.71000000:00
530.0614990.9707150.72500000:00
540.0612171.1696100.73500000:00
550.0612420.9146830.74000000:00
560.0583860.9553980.74000000:00
570.0553450.9218710.72000000:00
580.0520270.9150620.73500000:00
590.0479300.9336160.73500000:00
600.0439680.9986850.73500000:00
610.0424890.9624080.74500000:00
620.0414751.0492560.72000000:00
630.0403911.0456980.72000000:00
640.0428201.0197000.73500000:00
650.0431630.9713710.72500000:00
660.0395861.0061200.74500000:00
670.0393051.0858230.70500000:00
680.0381551.1671340.70000000:00
690.0357761.1438210.70000000:00
700.0351921.1462050.72500000:00
710.0341361.1751870.71000000:00
720.0320351.0824350.73000000:00
730.0311231.0803880.72500000:00
740.0306511.1472220.71000000:00
750.0300571.1515470.73000000:00
760.0286811.1305300.73000000:00
770.0273781.1520990.71500000:00
780.0280831.1340530.72500000:00
790.0276031.1470270.72500000:00
800.0267481.1640770.71500000:00
810.0272231.2007460.71500000:00
820.0255081.1467670.71500000:00
830.0248931.1302840.72000000:00
840.0252311.1269820.72000000:00
850.0259871.1334230.72000000:00
860.0258251.1438050.71500000:00
870.0254621.1446190.72500000:00
880.0246871.1348260.72000000:00
890.0255011.1344390.73500000:00
900.0245481.1372040.72500000:00
910.0239101.1496080.73000000:00
920.0239501.1502100.73000000:00
930.0242121.1418030.73000000:00
940.0253191.1474050.72500000:00
950.0243291.1482250.73000000:00
960.0236541.1582210.72500000:00
970.0245231.1700790.71500000:00
980.0244791.1659720.72000000:00
990.0233621.1538340.73000000:00

可以看出很不幸,验证集的loss远大于训练集的loss,标准的OverFitting发生了且很严重,下一步准备纳入L2正则化之类的东西改善一下,准确率达到了73%,勉强可以接受。

模型预测

test_df = pd.read_csv(test_path, low_memory=False,skipinitialspace=True)
#df.head()
dl = learn.dls.test_dl(test_df)
preds=learn.get_preds(dl=dl)

提交比赛结果

 

        得到了0.7的得分(最高1.00000) 

改进计划

        体感修一修OverFitting性能提高的空间还是挺大的,目标0.9分,改进之后下次上船Github贴上Github仓库

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值