Contrôle du visage pour les citrons et les fraises martiennes: comment j'ai obtenu un stage à la Rosselkhozbank après avoir participé au concours DS

Je pense qu'il ne reste plus beaucoup de gens qui n'ont pas entendu parler des hackathons et des concours de science des données. J'en ai entendu parler il y a six mois. Participant à tout ce que j'ai vu (et même gagner quelque chose), je ne pouvais pas passer par AgroCode 2020, organisé par la Banque agricole russe. J'ai réussi à me classer parmi les meilleurs participants dans plusieurs directions, et dans un sens j'ai même remporté un prix. Grâce à ces réalisations, je suis devenu un spécialiste de la science des données au Centre pour le développement des technologies financières de la Banque agricole de Russie. Et comment je l'ai fait - lisez ci-dessous.





Le principal agro-codage du pays

Pour commencer, je dirai quelques mots sur l'événement lui-même. AgroCode 2020 a rassemblé de nombreuses personnes qui ne sont pas indifférentes aux nouvelles technologies en agriculture. Il se composait de plusieurs activités:





  1. Concours d'analyse de données Agro Data Science Cup avec 2 tâches:









    • .





  2. Agro Hack 6 :

























    • .





      , , . 10 .





  3. Agro Idea, .





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





. 17 .





?

: , ID , , ( ) 365 .





Ensemble de données pour le problème de l'indice de végétation

F1- sklearn ( average="weighted").





, . : , . .





? ?

, , NDVI —





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





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





Image d'un champ avec ndvi compté
ndvi

?

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





  • -, , - ( - ). , .





  • -, . , , . .





. , , . - , , . , .





… , , . , . .





ID, . . - . . : 2 4 .





?

Répartition des cultures dans les données de formation

, . - 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 . - . , , . , , .





Distribution prévue des cultures dans les données de test

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





Le classement final de la première tâche

: . . , , , .





( ) . , .





Quel citron choisirez-vous?
?

. — 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 , .





Classement final pour la deuxième tâche

. “ ” . , . .





Photo de notre présentation

:





  1. , , .





  2. – .





  3. ( , , , ..).





5 , , , .





3 . .





Ensemble de données avec lectures de capteur
Ensemble de données avec valeurs de rendement

: -.





, , , .





, :





  • , 19 30 , 23 25 . .





  • . , .





  • - . , .





  • 7.





, . . , . :





Régime de température dans la serre

: - , - , - ( ).





-? . , , . , , — . :





?

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





, ? - , ! , .





!





, , , , , , .








All Articles