<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          三一挖掘機(jī)工作模式識(shí)別Baseline分享

          共 4728字,需瀏覽 10分鐘

           ·

          2021-05-29 20:54

          今天老肥和大家分享的是三一數(shù)據(jù)應(yīng)用大賽-挖掘機(jī)工作模式識(shí)別的Baseline方案,全流程需在DCLab平臺(tái)上進(jìn)行,選手需要在平臺(tái)上進(jìn)行數(shù)據(jù)處理、算法調(diào)試。現(xiàn)在很多比賽平臺(tái)出于數(shù)據(jù)保密等原因都需要在平臺(tái)上進(jìn)行數(shù)據(jù)處理、模型訓(xùn)練與預(yù)測(cè),平臺(tái)的使用方法不盡相同,這也是我第一次使用DCLab平臺(tái),很多選手都遇到了無法成功提交的問題,現(xiàn)在就來來替大家踩踩坑,讓大家少走一些彎路。

          數(shù)據(jù)兌閱與導(dǎo)入

          在成功報(bào)名比賽通過審核之后,使用DC平臺(tái)發(fā)送的站內(nèi)郵件里的兌閱碼對(duì)數(shù)據(jù)進(jìn)行兌閱。


          然后創(chuàng)建項(xiàng)目之后將數(shù)據(jù)動(dòng)態(tài)掛載,在notebook中輸入命令對(duì)數(shù)據(jù)進(jìn)行解壓縮操作。

          !ls ../input/*/*.zip | xargs -n1 unzip -d /home/workspace/ 

          模型訓(xùn)練

          導(dǎo)入數(shù)據(jù)之后我們可以在notebook中進(jìn)行數(shù)據(jù)讀取、特征提取與模型訓(xùn)練,這里的過程與在本地進(jìn)行數(shù)據(jù)挖掘無異,每一個(gè)文件作為一行數(shù)據(jù)來進(jìn)行模型訓(xùn)練,下面是我采用的一個(gè)粗糙的統(tǒng)計(jì)特征提取過程。模型訓(xùn)練完成之后記得將模型保存以便提交的時(shí)候進(jìn)行推理使用。


          def get_features(data):
              data = data.sort_values('receive_time')
              for f in ['action_code''alarm_code''auto_idling''workmode''intake_temperature''gear''fuel_temperature''displacement_speed']:
                  data[f'{f}_nunique'] = data[f].nunique()
              
              data['count'] = len(data)
              for f in ['altitude''avg_fuel_consumption''cooling_water_temperature''battery_voltage''day_fuel_consumption''displacement_direction''engine_output_power''engine_speed',
                       'fuel_level''hydraulic_oil_temperature''intake_temperature''oil_pressure''pump1_current''pump1_flow''pump1_pressure''pump_total_absorbed_power''pump_total_absorbed_torque',
                        'realtime_fuel_consumption''total_idle_time'
                       ]:
                  data[f'{f}_max'] = data[f].max()
                  data[f'{f}_mean'] = data[f].mean()
                  data[f'{f}_min'] = data[f].min()
                  data[f'{f}_std'] = data[f].std()
                  data[f'{f}_skew'] = data[f].skew()
              return data.drop_duplicates('serial_no').drop(origin_cols, axis=1)

          在線提交

          很多選手在這里遇到了各種提交報(bào)錯(cuò)的問題,我也不例外。下面是我踩坑多次后的成功提交的流程,首先將模型文件與run.pyrequirements.txt統(tǒng)一放在文件名為model的文件夾下。


          對(duì)于run.py,我們需要進(jìn)行修改以便讀取模型進(jìn)行在線的推理,這里非常重要的部分是我們需要使用絕對(duì)路徑而非相對(duì)路徑。

              to_pred_file_list = [os.path.join(to_pred_dir,f) for f in os.listdir(to_pred_dir)]

              result = []
              predictions_lgb = np.zeros((len(to_pred_file_list)))
              data = None
              for path in to_pred_file_list:
                  d = pd.read_csv(path)
                  d = get_features(d)
                  data = pd.concat([data, d])
              features = data.columns
              features = features.drop('serial_no')
              cwd = sys.argv[0]
              # 獲取當(dāng)前路徑
              for i in range(5):
                  clf = lgb.Booster(model_file=os.path.join(cwd[:-6], f'model_{i}.txt'))
                  y_pred = clf.predict(data[features], num_iteration=clf.best_iteration)
                  predictions_lgb[:] += y_pred / 5   

              y_pred = [1 if i >= 0.5 else 0 for i in predictions_lgb]
              data['label'] = y_pred
              data[['serial_no''label']].to_csv(result_save_path,index=None)

          對(duì)于requirements.txt, 我們需要將代碼需要安裝的庫以及版本羅列,如下所示:

          pandas==1.2.0
          lightgbm==3.2.1
          numpy==1.18.1

          這里還有一種離線測(cè)試的方法,查看是否能夠成功運(yùn)行。

          python /home/workspace/project/model/run.py  /home/workspace/train/mode1/ sub.csv

          接著打開終端,輸入命令進(jìn)入project目錄, 然后對(duì)model文件進(jìn)行壓縮,最后使用命令進(jìn)行提交,將token替換成自己的即可。

          cd  /home/workspace/project

          zip -r models.zip model

          castlecli --third sany --source /home/workspace/project/models.zip --token *********

          至此,我們就完成了整個(gè)流程,從數(shù)據(jù)加載特征工程以及模型在線推理的過程,本文所有代碼已經(jīng)上傳,在后臺(tái)回復(fù)挖掘機(jī)即可。

          ——END——


          掃碼二維碼

          獲取更多精彩

          老肥碼碼碼


          瀏覽 97
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本国产精品高朝 | 91色色福利 | 青青青草成人视频视频 | 欧美日韩国产在线观看 | 国产一级AA片 |