Gesichtskontrolle fĂźr Zitronen und Marserdbeeren: Wie ich nach der Teilnahme am DS-Wettbewerb ein Praktikum bei der Rosselkhozbank bekam

Ich denke, es gibt nicht mehr viele Leute, die noch nichts von Hackathons und Data Science-Wettbewerben gehĂśrt haben. Ich habe vor sechs Monaten davon gehĂśrt. Ich nahm an allem teil, was ich sah (und gewann sogar etwas) und konnte den von der Russischen Landwirtschaftsbank organisierten AgroCode 2020 nicht bestehen. Ich habe es geschafft, in verschiedenen Richtungen an die Spitze der besten Teilnehmer zu gelangen, und in einer Richtung habe ich sogar einen Preis gewonnen. Dank dieser Erfolge wurde ich Data Science-Spezialist am Zentrum fĂźr die Entwicklung von Finanztechnologien der Russischen Landwirtschaftsbank. Und wie ich es gemacht habe - lesen Sie unten.





Die wichtigste Agro-Kodierung des Landes

Zunächst werde ich ein paar Worte ßber das Ereignis selbst sagen. AgroCode 2020 brachte viele Menschen zusammen, denen neue Technologien in der Landwirtschaft nicht gleichgßltig sind. Es bestand aus mehreren Aktivitäten:





  1. Agro Data Science Cup Datenanalyse-Wettbewerb mit 2 Aufgaben:









    • .





  2. Agro Hack 6 :

























    • .





      , , . 10 .





  3. Agro Idea, .





, , . , , , . . DS- . -10, - 2 !





. 17 .





?

: , ID , , ( ) 365 .





Datensatz fĂźr das Vegetationsindexproblem

F1- sklearn ( average="weighted").





, . : , . .





? ?

, , NDVI —





NDVI = \ frac {NIR-RED} {NIR + RED}





, 4 : RGB . , RED — , NIR — .





Bild eines Feldes mit ndvi gezählt
ndvi

?

  • -, 45 , 279 . : - , () , .





  • -, , - ( - ). , .





  • -, . , , . .





. , , . - , , . , .





… , , . , . .





ID, . . - . . : 2 4 .





?

Verteilung der Pflanzen in Trainingsdaten

, . - KFold StratifiedKFold , . . , . , . -. .





, , CatBoost. , , , :





params = {
  'iterations': 2000, 
  'depth': 6, 
  'early_stopping_rounds': 500, 
  'l2_leaf_reg': 5, 
  'bagging_temperature': 1, 
  'random_seed': 17, 
  'class_names': classes, 
  'auto_class_weights': 'Balanced', 
  'eval_metric': 'TotalF1', 
  'loss_function': 'MultiClassOneVsAll', 
  'task_type': 'GPU', 
  'devices': '0:1', 
  'verbose': 2000 
}
      
      



“Balanced” “MultiClassOneVsAll”. . . , , , random_seed . - . , , . , , .





Voraussichtliche Ernteverteilung in Testdaten

18 . , , . , 18 2 . , - . — .





Die letzte Rangliste der ersten Aufgabe

: . . , , , .





( ) . , .





Welche Zitrone wirst du wählen?
?

. — 1056 1056 .jpg. . , , . . : https://www.kaggle.com/maciejadamiak/lemons-quality-controldataset





ROC-AUC. :





def score(y_true, y_preds):
  table = y_true.merge(y_preds, left_on='image_id', right_on='image_id')
  m = keras.metrics.AUC(curve='ROC')
  m.update_state(table.iloc[:, 1:10], table.iloc[:, 10:])
  return m.result().numpy() 
      
      



.





csv-. .py , -. , . , .





20 . , . ? .





, , . , . , , , , .





. , .





aug = ImageDataGenerator(
  rotation_range=40,
  width_shift_range=0.1,
  height_shift_range=0.1,
  brightness_range=[0.5, 1],
  shear_range=0.2,
  channel_shift_range=0.2,
  zoom_range=0.2,
  horizontal_flip=True,
  vertical_flip=True,
  fill_mode="nearest"
) 
      
      



?

, . backbone VGG16, AveragePooling, (Dense) Dropout.





model = VGG16(weights=None, include_top=False, input_shape=[image_size, image_size, 3]) 
x = AveragePooling2D(pool_size=(2, 2))(model.output) 
x = Flatten()(x) 
x = Dense(256, activation='relu')(x) 
x = Dropout(0.5)(x) 
output = Dense(9, activation='sigmoid')(x)
      
      



, , .





KFold -. , , .





9 , .





Letzte Rangliste fĂźr die zweite Aufgabe

. “ ” . , . .





Bild aus unserer Präsentation

:





  1. , , .





  2. – .





  3. ( , , , ..).





5 , , , .





3 . .





Datensatz mit Sensorwerten
Datensatz mit Ertragswerten

: -.





, , , .





, :





  • , 19 30 , 23 25 . .





  • . , .





  • - . , .





  • 7.





, . . , . :





Temperaturregime im Gewächshaus

: - , - , - ( ).





-? . , , . , , — . :





?

, , , . , , Agro Hack :) ( , ).





, ? - , ! , .





!





, , , , , , .








All Articles