1st Competition of Datawhale: the car price prediction
这里将作为整个赛程的总结。其中会遇到很多沟沟坎坎。望努力,最后通关,自己得到提升。
Task1 参赛组队
第一步就是参加比赛,组成队伍,确定队名我自己的编号。
- 我在3群,编号113。
- 队长队友都很好,早早就把baseline贴出来了。但是无奈信息对于我这个新手来说还是太多了。
- 3-27更新:Markdown文本的格式说明
Task 2 初步EDA,学习成果以blog的形式进行沉淀
这里的问题就比较多了。先说目标吧。2天时间是要跑一遍的,我的进度已经被群里的大神们甩开了。接下来就记录下我遇到的 坑吧
先说环境配置
原先我用win10 + pycharm。结果遇到一行代码,就是baseline里的“%”。
warnings.filterwarnings('ignore')
%matplotlib inline
没见过啊,internet后发现是Jupyter的代码。于是考虑后期的更改,跟大家同步的话,果断开始配置Jupyter。
- 导入了一些没有的库,如lightgbm xgboost missingno;
- 360浏览器默认打开Jupyter让我很不爽,更改为chrome (https://cloud.tencent.com/developer/article/1420759)
- Jupyter原来配色太刺眼,添加theme,并修改字体
- pip install --upgrade jupyterthemes
- jt -t oceans16 -f fira -fs 12 -cellw 90% -ofs 10 -dfs 11 -T (修改了一堆没用过的参数)
- IPython 因为导入不正确又用terminal导入了一遍。
- Jupyter的快捷键链接
环境舒服了就开始过baseline
坑一# 数据文件地址
copy代码进去发现两个错误:出现了FileNotFoundError
Train_data = pd.read_csv('datalab/231784/used_car_train_20200313.csv', sep=' ')
TestA_data = pd.read_csv('datalab/231784/used_car_testA_20200313.csv', sep=' ')
```-
回去找datalab,看不懂了。没见到Jupyter环境里有个datalab的库或者文件夹。
```javascript
# 查看数据文件目录 list datalab files
!ls datalab/
链接: 知乎上有关于这个"!"感叹号的说明。这里埋伏了shell与IDLE的交互问题
datalab的问题,是队长找到了datalab是天池上数据的文件夹名称,是对于天池参赛队伍的。
我后来反应过来,感觉像是服务器实验室之类的数据空间,供大家调用之类的。
前期队长down下来了csv数据。这里就把地址更改为本地地址。(主要是我的Jupyter的工作目录页比较深)
## 通过Pandas对于数据进行读取 (pandas是一个很友好的数据读取函数库)
Train_data = pd.read_csv('C:/Users/***/Desktop/DataWhale/Jupyter_datawhale/used_car_train_20200313.csv', sep=' ')
TestA_data = pd.read_csv('C:/Users/***/Desktop/DataWhale/Jupyter_datawhale/used_car_testA_20200313.csv', sep=' ')
如何查看隐藏列
然后顺利看到下图,等一等,省略内容没显示全。没关系,设置一下。
添加以下命令,设定显示列数为31。这里捎带修改了行数,多看了5行。
pd.set_option('max_column', 31) # 31 is optional
Train_data.head(n=10) # display 10 rows
坑二# 老版本pdf格式的文档代码查看不全。转战到天池的官方维护文档去。而且还是最新的版本五。
理解missingno工具
msno.matrix(Train_data.sample(250))
- 无效矩阵的数据密集显示,理解了中间黑色的部分意思是满的,白色部分是缺失的。同时右侧的The sparkline(迷你图) at right summarizes the general shape of the data completeness and points out the rows with the maximum and minimum nullity(无效[数] 零度;退化阶数) in the dataset.
- This visualization will comfortably accommodate up to 50 labelled variables. Past that range labels begin to overlap or become unreadable, and by default large displays omit them.最多显示50列,超出会隐藏。
- 经过讨论,sample带有shuffle性质,及时每次n=250显示的图也不一样。说明抽样250个,而非抽取前250个。去掉sample()函数后,显示的图就一样了。
msno.bar(Train_data.sample(