рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ - рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
рдФрд░ рдореБрдЭреЗ рджреИрдирд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд┐рдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдпрд╣ рд▓реЗрдЦ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рдирдореВрдирд╛ рддрдХрдиреАрдХреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред
рд╕рд░рд▓ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирдореВрдирд╛
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдЪрдпрдирд┐рдд рд╣реЛрдиреЗ рдХреА рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдиреАрдЪреЗ рд╣рдо рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рдРрд╕реЗ 100 рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
sample_df = df.sample(100)
рд╕реНрддрд░реАрдХреГрдд рдирдореВрдирд╛рдХрд░рдг
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рдЪреБрдирд╛рд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╡реЛрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реИред рддреАрди рд╢рд╣рд░реЛрдВ рдореЗрдВ рдорддрджрд╛рди рд╣реБрдЖ:
1 рдорд┐рд▓рд┐рдпрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╢рд╣рд░ рдП рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ
2 рдорд┐рд▓рд┐рдпрди рдХрд▓рд╛рдХрд╛рд░ рдмреА рд╢рд╣рд░ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ
3 рд▓рд╛рдЦ рд╡рд░рд┐рд╖реНрда рдирд╛рдЧрд░рд┐рдХ рд╢рд╣рд░ C рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ
рдпрджрд┐ рд╣рдо рдкреВрд░реА рдЖрдмрд╛рджреА рдХреЗ рдмреАрдЪ 60 рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдирдореВрдиреЗ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╢рд╣рд░реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЕрд╕рдВрддреБрд▓рд┐рдд рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкрдХреНрд╖рдкрд╛рддреА рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдпрджрд┐ рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрд░рдорд╢рдГ рдП , рдмреА рдФрд░ рд╕реА рд╢рд╣рд░реЛрдВ рд╕реЗ 10, 20 рдФрд░ 30 рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдирдореВрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдиреНрдпреВрдирддрдо рд╣реЛрдЧреАред
рдкрд╛рдпрдерди рдореЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.25)
рдЬрд▓рд╛рд╢рдп рдХрд╛ рдирдореВрдирд╛
рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдпрд╣ рд╕реВрддреНрд░реАрдХрд░рдг рдкрд╕рдВрдж рд╣реИ:
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝реЗ рдЕрдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдзрд╛рд░рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдПрдВ рдЬреЛ рдзрд╛рд░рд╛ рд╕реЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪреБрдирддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ?
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЕрдирдВрдд рдзрд╛рд░рд╛ рд╕реЗ 5 рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдзрд╛рд░рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХреЗред
import random def generator(max): number = 1 while number < max: number += 1 yield number
рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреИрд╕реЗ?
рдЬрдм рдЧрдгрд┐рдд рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рддреЛ рдЖрдЗрдП 3 рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдзрд╛рд░рд╛ рджреЗрдЦреЗрдВ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдХреЗрд╡рд▓ 2 рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдкрд╣рд▓рд╛ рддрддреНрд╡ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЯреИрдВрдХ рдореЗрдВ рдЕрднреА рднреА рдЬрдЧрд╣ рд╣реИред рд╣рдо рджреВрд╕рд░реЗ рддрддреНрд╡ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЯреИрдВрдХ рдореЗрдВ рдЕрднреА рднреА рдЬрдЧрд╣ рд╣реИред
рд╣рдо рддреАрд╕рд░рд╛ рддрддреНрд╡ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо 2/3 рдкреНрд░рд╛рдпрд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рддреАрд╕рд░реЗ рддрддреНрд╡ рдХреЛ рдмрдЪрд╛рдПрдВрдЧреЗред
рдЖрдЗрдП рдЕрдм рджреЗрдЦреЗрдВ рдХрд┐ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреА рдЕрдВрддрд┐рдо рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:
рдЬрд▓рд╛рд╢рдп рд╕реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рд╡рд┐рд╕реНрдерд╛рдкрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рддреАрд╕рд░реЗ рддрддреНрд╡ рдХреЗ рдЪрдпрдирд┐рдд рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐ рджреЛ рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рд╡рд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ рд╣реИ:
2/3 * 1/2 = 1/3
рдЕрд░реНрдерд╛рддреН, рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреА рдЕрдВрддрд┐рдо рд╕рдВрднрд╛рд╡рдирд╛:
1 - 1/3 = 2/3
рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╣реА рддрд░реНрдХ рджреВрд╕рд░реЗ рддрддреНрд╡ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдмрдврд╝рддреЗ рд╣реБрдП рдЬрд▓рд╛рд╢рдп рдХреЗ рд╕рд╛рде рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ 2/3 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ k / n рдХреЗ рд╕рд╛рде рдмрдЪрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд░реИрдВрдбрдо рдЕрдВрдбрд░рд╕рдореНрдкрд▓рд┐рдВрдЧ рдФрд░ рдУрд╡рд░рд╕рдорд▓рд┐рдВрдЧ
рд╕реНрд░реЛрддрдЬреАрд╡рди рдореЗрдВ рдЕрдХреНрд╕рд░ рдЕрд╕рдВрддреБрд▓рд┐рдд рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЛ рд░рд╕рдорд▓рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрднреА-рдХрднреА рд╡реЗ рд░реВрд╕реА рдЕрдиреБрд╡рд╛рдж рдореЗрдВ "рд░реЗрдЬрд╝рд╛рдорд╛рдкрд▓рд┐рдВрдЧ" рдХрд╣рддреЗ рд╣реИрдВ ред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╛ рддреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реЗрдЯ (рдЕрдВрдбрд░рд╕реНрд▓реЗрдордкреНрд▓рд┐рдВрдЧ) рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ / рдпрд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рд╕реЗрдЯ (рдУрд╡рд░рд╕рдореНрдкрд▓рд┐рдВрдЧ) рдореЗрдВ рдЕрдзрд┐рдХ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред
рдЪрд▓реЛ рдХреБрдЫ рдЕрд╕рдВрддреБрд▓рд┐рдд рд╕реЗрдЯ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
from sklearn.datasets import make_classification X, y = make_classification( n_classes=2, class_sep=1.5, weights=[0.9, 0.1], n_informative=3, n_redundant=1, flip_y=0, n_features=20, n_clusters_per_class=1, n_samples=100, random_state=10 ) X = pd.DataFrame(X) X['target'] = y
рдЕрдм рд╣рдо рдЗрд╕ рддрд░рд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдВрдбрд░рд╕рдореНрдкрд▓рд┐рдВрдЧ рдФрд░ рдУрд╡рд░рд╕рдореНрдкрд▓рд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
num_0 = len(X[X['target']==0]) num_1 = len(X[X['target']==1]) print(num_0,num_1)
рдЕрд╕рдВрддреБрд▓рд┐рдд-рд╕реАрдЦрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбрд░рд╕рдорд╛рдкрд▓рд┐рдВрдЧ рдФрд░ рдУрд╡рд░рд╕реИрдВрдкрд▓рд┐рдВрдЧ
рдЕрд╕рдВрддреБрд▓рд┐рдд-рд╕реАрдЦрдирд╛ (imblearn) рдЕрд╕рдВрддреБрд▓рд┐рдд рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рдЗрд╕рдореЗрдВ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред
рдПрдХред Tomek рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдВрдбрд░реНрд╕рдордкрд▓рд┐рдВрдЧ:
рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЯреЛрдореЗрдХ рд▓рд┐рдВрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "рд▓рд┐рдВрдХ" рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рдЬреЛрдбрд╝реЗ рд╣реИрдВ рдЬреЛ рдкрд╛рд╕ рд╣реИрдВред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдВрддрддрдГ рдпреБрдЧреНрдо рддрддреНрд╡ рдХреЛ рдмрдбрд╝реЗ рд╕реЗрдЯ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рдЬреЛ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╕реНрд░реЛрдд
from imblearn.under_sampling import TomekLinks tl = TomekLinks(return_indices=True, ratio='majority') X_tl, y_tl, id_tl = tl.fit_sample(X, y)
рдЦред SMOTE рдХреЗ рд╕рд╛рде Oversampling:
SMOTE (рд╕рд┐рдВрдереЗрд╕рд┐рд╕ рдорд╛рдЗрдиреЙрд░рд┐рдЯреА рдУрд╡рд░рд╛рдореЙрдкрд▓рд┐рдВрдЧ рдореЗрдердб) рдореЗрдВ, рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реЗрдЯ рдореЗрдВ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрд╛ рдореЗрдВ рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд from imblearn.over_sampling import SMOTE smote = SMOTE(ratio='minority') X_sm, y_sm = smote.fit_sample(X, y)
рд▓реЗрдХрд┐рди рдЗрдореНрдмреЗрд▓рд░ рдореЗрдВ рдЕрдВрдбрд░рд╕реНрдореИрдкрд▓рд┐рдВрдЧ (рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрдВрдЯреНрд░реЛрдЗрдбреНрд╕, рдирд┐рдпрд░рд┐рдорд┐рд╕, рдЖрджрд┐) рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЗ рдФрд░ рдУрд╡рд░рд╕реИрдорд▓рд┐рдВрдЧ (ADASYN рдФрд░ bSMOTE) рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧреА рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдХрд╛ рдЦреВрди рд╣реИред
рдирдореВрдирд╛рдХрд░рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рддрд╣реА рдЕрд╡рд▓реЛрдХрди рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪреБрдиреА рдЧрдИ рдирдореВрдирд╛ рд░рдгрдиреАрддрд┐ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рде рдЦреАрдВрдЪ рд╕рдХрддреА рд╣реИред рдЪрдпрдирд┐рдд рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЪреБрдирд╛рд╡ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред