Saya rasa tidak banyak orang tersisa yang belum mendengar tentang hackathon dan kompetisi Data Science. Saya mendengar tentang mereka enam bulan lalu. Berpartisipasi dalam semua yang saya lihat (dan bahkan memenangkan sesuatu), saya tidak dapat melewati AgroCode 2020, yang diselenggarakan oleh Bank Pertanian Rusia. Saya berhasil masuk ke puncak peserta terbaik di beberapa arah, dan di satu arah saya bahkan mendapat hadiah. Berkat pencapaian ini, saya menjadi spesialis Ilmu Data di Pusat Pengembangan Teknologi Keuangan Bank Pertanian Rusia. Dan bagaimana saya melakukannya - baca di bawah.
Agro-coding utama negara
Untuk memulainya, saya akan mengatakan beberapa patah kata tentang acara itu sendiri. AgroCode 2020 menyatukan banyak orang yang tidak peduli dengan teknologi baru di bidang pertanian. Ini terdiri dari beberapa kegiatan:
Lomba analisis data Agro Data Science Cup dengan 2 tugas:
.
Agro Hack 6 :
.
, , . 10 .
Agro Idea, .
, , . , , , . . DS- . -10, - 2 !
. 17 .
?
: , ID , , ( ) 365 .
F1- sklearn ( average="weighted").
, . : , . .
? ?
, , NDVI β
, 4 : RGB . , RED β , NIR β .
?
-, 45 , 279 . : - , () , .
-, , - ( - ). , .
-, . , , . .
. , , . - , , . , .
β¦ , , . , . .
ID, . . - . . : 2 4 .
?
, . - 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 . - . , , . , , .
18 . , , . , 18 2 . , - . β .
: . . , , , .
( ) . , .
. β 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 , .
. β β . , . .
:
, , .
β .
( , , , ..).
5 , , , .
3 . .
: -.
, , , .
, :
, 19 30 , 23 25 . .
. , .
- . , .
7.
, . . , . :
: - , - , - ( ).
-? . , , . , , β . :
?
, , , . , , Agro Hack :) ( , ).
, ? - , ! , .
!
, , , , , , .