Возвращать сведения о ячейке предиктора
возвращает информацию на уровне ячейки, такую как частоты «Хорошо», «Плохо» и статистика ячейки для предиктора, указанного в bi = bininfo(sc,PredictorName)PredictorName.
добавляет необязательные аргументы «имя-значение».bi = bininfo(___,Name,Value)
[ добавляет необязательные аргументы «имя-значение».bi,bm] = bininfo(sc,PredictorName,Name,Value)bininfo также при необходимости возвращает карту биннинга (bm) или правила bin в виде вектора точек отсечения для числовых предикторов или таблицы группировок категорий для категориальных предикторов.
[ возвращает информацию на уровне ячейки, такую как частоты «Хорошо», «Плохо» и статистика ячейки для предиктора, указанного в bi,bm,mv] = bininfo(sc,PredictorName,Name,Value)PredictorName использование необязательных аргументов пары имя-значение. bininfo (необязательно) возвращает карту привязки или правила bin в виде вектора точек отсечения для числовых предикторов или таблицы групп категорий для категориальных предикторов. Кроме того, необязательные аргументы пары имя-значение mv возвращает числовой массив, содержащий минимальное и максимальное значения, заданные (или определенные) пользователем. mv выходной аргумент устанавливается в пустой массив для категориальных предикторов.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Отображение сведений о ячейке для категориального предиктора ResStatus.
bi = bininfo(sc,'ResStatus')bi=4×6 table
Bin Good Bad Odds WOE InfoValue
______________ ____ ___ ______ _________ _________
{'Home Owner'} 365 177 2.0621 0.019329 0.0001682
{'Tenant' } 307 167 1.8383 -0.095564 0.0036638
{'Other' } 131 53 2.4717 0.20049 0.0059418
{'Totals' } 803 397 2.0227 NaN 0.0097738
Используйте CreditCardData.mat файл для загрузки данных (dataWeights), который содержит столбец (RowWeights) для весов (с использованием набора данных из Refaat 2011).
load CreditCardDataСоздать creditscorecard объект, использующий необязательный аргумент пары имя-значение для 'WeightsVar'.
sc = creditscorecard(dataWeights,'WeightsVar','RowWeights')
sc =
creditscorecard with properties:
GoodLabel: 0
ResponseVar: 'status'
WeightsVar: 'RowWeights'
VarNames: {1x12 cell}
NumericPredictors: {1x7 cell}
CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'}
BinMissingData: 0
IDVar: ''
PredictorVars: {1x10 cell}
Data: [1200x12 table]
Отображение информации о ячейке для числового предиктора 'CustIncome'. Когда необязательный аргумент пары имя-значение 'WeightsVar' используется для указания веса наблюдения (образца), bi таблица содержит взвешенные счетчики.
bi = bininfo(sc,'CustIncome');
bi(1:10,:)ans=10×6 table
Bin Good Bad Odds WOE InfoValue
_________ _______ _______ _______ ________ __________
{'18000'} 0.94515 1.496 0.63179 -1.1667 0.0059198
{'19000'} 0.47588 0.80569 0.59065 -1.2341 0.0034716
{'20000'} 2.1671 1.4636 1.4806 -0.31509 0.00061392
{'21000'} 3.2522 0.88064 3.693 0.59889 0.0021303
{'22000'} 1.5438 1.2714 1.2142 -0.51346 0.0012913
{'23000'} 1.787 2.7529 0.64913 -1.1397 0.010509
{'24000'} 3.4111 2.2538 1.5135 -0.29311 0.00082663
{'25000'} 2.2333 6.1383 0.36383 -1.7186 0.042642
{'26000'} 2.1246 4.4754 0.47474 -1.4525 0.024526
{'27000'} 3.1058 3.528 0.88032 -0.83501 0.0082144
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Отображение настраиваемой информации о ячейке для категориального предиктора ResStatus, сохраняя только WOE столбец. Вес доказательств (WOE) определяется bin by bin, но не существует понятия «всего WOE», поэтому последний элемент в 'Totals' строка имеет значение NaN.
bi = bininfo(sc,'ResStatus','Statistics','WOE'); disp(bi)
Bin Good Bad WOE
______________ ____ ___ _________
{'Home Owner'} 365 177 0.019329
{'Tenant' } 307 167 -0.095564
{'Other' } 131 53 0.20049
{'Totals' } 803 397 NaN
Отображение настраиваемой информации о ячейке для категориального предиктора ResStatus, сохраняя только Odds и WOE столбцы, без Totals строка.
bi = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE'},'Totals','Off'); disp(bi)
Bin Good Bad Odds WOE
______________ ____ ___ ______ _________
{'Home Owner'} 365 177 2.0621 0.019329
{'Tenant' } 307 167 1.8383 -0.095564
{'Other' } 131 53 2.4717 0.20049
Отображение статистики по значению информации, энтропии, Джини и квадрату хи. Для получения дополнительной информации об этой статистике см. Статистика для кредитной карты показателей.
Для значения информации, энтропии и Джини значение, сообщаемое на уровне ячейки, является вкладом ячейки в общее значение. Общее информационное значение, энтропия и показатели Джини находятся в 'Totals' строка.
Для квадрата хи, если есть N ячеек, первые N-1 значения в 'Chi2' столбец отчет попарно chi квадратная статистика для смежных ячеек. Например, эта парная мера также используется 'Merge' алгоритм в autobinning для определения необходимости объединения двух смежных ячеек. В этом примере первое значение в 'Chi2' столбец (1.0331) - статистика квадратов хи для ячеек 1 и 2 ('Home Owner' и 'Tenant') и второе значение в столбце (2.5103) - статистика квадратов хи для ячеек 2 и 3 ('Tenant' и 'Other'). В этом примере больше нет парных значений хи-квадрата, поэтому третий элемент 'Chi2' столбец имеет значение NaN. Значение квадрата хи, указанное в 'Totals' строка - это статистика хи-квадрат, вычисленная по всем ячейкам.
bi = bininfo(sc,'ResStatus','Statistics',{'InfoValue','Entropy','Gini','Chi2'}); disp(bi)
Bin Good Bad InfoValue Entropy Gini Chi2
______________ ____ ___ _________ _______ _______ ______
{'Home Owner'} 365 177 0.0001682 0.91138 0.43984 1.0331
{'Tenant' } 307 167 0.0036638 0.93612 0.45638 2.5103
{'Other' } 131 53 0.0059418 0.86618 0.41015 NaN
{'Totals' } 803 397 0.0097738 0.91422 0.44182 2.5549
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Карта привязки или правила для категориальных данных суммируются в таблице «группирования категорий», возвращаемой как необязательный вывод. По умолчанию каждая категория помещается в отдельную ячейку. Вот информация для предиктора ResStatus.
[bi,cg] = bininfo(sc,'ResStatus')bi=4×6 table
Bin Good Bad Odds WOE InfoValue
______________ ____ ___ ______ _________ _________
{'Home Owner'} 365 177 2.0621 0.019329 0.0001682
{'Tenant' } 307 167 1.8383 -0.095564 0.0036638
{'Other' } 131 53 2.4717 0.20049 0.0059418
{'Totals' } 803 397 2.0227 NaN 0.0097738
cg=3×2 table
Category BinNumber
______________ _________
{'Home Owner'} 1
{'Tenant' } 2
{'Other' } 3
Для группирования категорий Tenant и Other, изменить таблицу группировки категорий cg чтобы номер ячейки для Other совпадает с номером ячейки для Tenant. Затем используйте modifybins для обновления карты показателей.
cg.BinNumber(3) = 2; sc = modifybins(sc,'ResStatus','CatGrouping',cg);
Просмотрите обновленную информацию о ячейке. Метки ячеек обновлены, и информация о членстве в ячейках содержится в группировке категорий. cg.
[bi,cg] = bininfo(sc,'ResStatus')bi=3×6 table
Bin Good Bad Odds WOE InfoValue
__________ ____ ___ ______ _________ __________
{'Group1'} 365 177 2.0621 0.019329 0.0001682
{'Group2'} 438 220 1.9909 -0.015827 0.00013772
{'Totals'} 803 397 2.0227 NaN 0.00030592
cg=3×2 table
Category BinNumber
______________ _________
{'Home Owner'} 1
{'Tenant' } 2
{'Other' } 2
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Предсказатель CustIncome является числовым. По умолчанию каждое значение предиктора помещается в отдельный бункер.
bi = bininfo(sc,'CustIncome')bi=46×6 table
Bin Good Bad Odds WOE InfoValue
_________ ____ ___ _______ _________ __________
{'18000'} 2 3 0.66667 -1.1099 0.0056227
{'19000'} 1 2 0.5 -1.3976 0.0053002
{'20000'} 4 2 2 -0.011271 6.3641e-07
{'21000'} 6 3 2 -0.011271 9.5462e-07
{'22000'} 4 2 2 -0.011271 6.3641e-07
{'23000'} 4 4 1 -0.70442 0.0035885
{'24000'} 5 5 1 -0.70442 0.0044856
{'25000'} 4 9 0.44444 -1.5153 0.026805
{'26000'} 4 11 0.36364 -1.716 0.038999
{'27000'} 6 6 1 -0.70442 0.0053827
{'28000'} 13 11 1.1818 -0.53736 0.0061896
{'29000'} 11 10 1.1 -0.60911 0.0069988
{'30000'} 18 16 1.125 -0.58664 0.010493
{'31000'} 24 8 3 0.39419 0.0038382
{'32000'} 21 15 1.4 -0.36795 0.0042797
{'33000'} 35 19 1.8421 -0.093509 0.00039951
⋮
Уменьшите количество ячеек с помощью autobinning функция ( modifybins также может использоваться функция).
sc = autobinning(sc,'CustIncome');Просмотрите обновленную информацию о ячейке. Карта привязки или правила для числовых данных суммируются как «точки отсечения», возвращаемые как необязательный вывод (cp).
[bi,cp] = bininfo(sc,'CustIncome')bi=8×6 table
Bin Good Bad Odds WOE InfoValue
_________________ ____ ___ _______ _________ __________
{'[-Inf,29000)' } 53 58 0.91379 -0.79457 0.06364
{'[29000,33000)'} 74 49 1.5102 -0.29217 0.0091366
{'[33000,35000)'} 68 36 1.8889 -0.06843 0.00041042
{'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359
{'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05
{'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175
{'[47000,Inf]' } 183 56 3.2679 0.47972 0.041657
{'Totals' } 803 397 2.0227 NaN 0.12285
cp = 6×1
29000
33000
35000
40000
42000
47000
Удалите вручную вторую точку реза (границу между вторым и третьим бункерами) для объединения бункеров 2 и 3. Используйте modifybins для обновления карты показателей.
cp(2) = []; sc = modifybins(sc,'CustIncome','CutPoints',cp,'MinValue',0);
Просмотрите обновленную информацию о ячейке.
[bi,cp,mv] = bininfo(sc,'CustIncome')bi=7×6 table
Bin Good Bad Odds WOE InfoValue
_________________ ____ ___ _______ _________ __________
{'[0,29000)' } 53 58 0.91379 -0.79457 0.06364
{'[29000,35000)'} 142 85 1.6706 -0.19124 0.0071274
{'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359
{'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05
{'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175
{'[47000,Inf]' } 183 56 3.2679 0.47972 0.041657
{'Totals' } 803 397 2.0227 NaN 0.12043
cp = 5×1
29000
35000
40000
42000
47000
mv = 1×2
0 Inf
Следует отметить, что рекомендуется избегать использования бункеров с нулевыми частотами, поскольку они приводят к бесконечности или неопределенности (NaN) статистика. Используйте modifybins или autobinning для изменения ячеек.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла dataMissing с отсутствующими значениями.
load CreditCardData.mat
head(dataMissing,5)ans=5×11 table
CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status
______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______
1 53 62 <undefined> Unknown 50000 55 Yes 1055.9 0.22 0
2 61 22 Home Owner Employed 52000 25 Yes 1161.6 0.24 0
3 47 30 Tenant Employed 37000 61 No 877.23 0.29 0
4 NaN 75 Home Owner Employed 53000 20 Yes 157.37 0.08 0
5 68 56 Home Owner Employed 53000 14 Yes 561.84 0.11 0
fprintf('Number of rows: %d\n',height(dataMissing))Number of rows: 1200
fprintf('Number of missing values CustAge: %d\n',sum(ismissing(dataMissing.CustAge)))Number of missing values CustAge: 30
fprintf('Number of missing values ResStatus: %d\n',sum(ismissing(dataMissing.ResStatus)))Number of missing values ResStatus: 40
Использовать creditscorecard с аргументом имя-значение 'BinMissingData' установить в значение true в складское место отсутствующих данных в отдельном складском месте.
sc = creditscorecard(dataMissing,'IDVar','CustID','BinMissingData',true); sc = autobinning(sc); disp(sc)
creditscorecard with properties:
GoodLabel: 0
ResponseVar: 'status'
WeightsVar: ''
VarNames: {1x11 cell}
NumericPredictors: {1x6 cell}
CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'}
BinMissingData: 1
IDVar: 'CustID'
PredictorVars: {1x9 cell}
Data: [1200x11 table]
Просмотр информации о ячейках для числовых данных для 'CustAge' который включает отсутствующие данные в отдельной ячейке с маркировкой <missing>.
bi = bininfo(sc,'CustAge');
disp(bi) Bin Good Bad Odds WOE InfoValue
_____________ ____ ___ ______ ________ __________
{'[-Inf,33)'} 69 52 1.3269 -0.42156 0.018993
{'[33,37)' } 63 45 1.4 -0.36795 0.012839
{'[37,40)' } 72 47 1.5319 -0.2779 0.0079824
{'[40,46)' } 172 89 1.9326 -0.04556 0.0004549
{'[46,48)' } 59 25 2.36 0.15424 0.0016199
{'[48,51)' } 99 41 2.4146 0.17713 0.0035449
{'[51,58)' } 157 62 2.5323 0.22469 0.0088407
{'[58,Inf]' } 93 25 3.72 0.60931 0.032198
{'<missing>'} 19 11 1.7273 -0.15787 0.00063885
{'Totals' } 803 397 2.0227 NaN 0.087112
plotbins(sc,'CustAge')
Просмотр информации о ячейках для категориальных данных для 'ResStatus' который включает отсутствующие данные в отдельной ячейке с маркировкой <missing>.
[bi,cg] = bininfo(sc,'ResStatus');
disp(bi) Bin Good Bad Odds WOE InfoValue
______________ ____ ___ ______ _________ __________
{'Tenant' } 296 161 1.8385 -0.095463 0.0035249
{'Home Owner'} 352 171 2.0585 0.017549 0.00013382
{'Other' } 128 52 2.4615 0.19637 0.0055808
{'<missing>' } 27 13 2.0769 0.026469 2.3248e-05
{'Totals' } 803 397 2.0227 NaN 0.0092627
disp(cg)
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 3
Обратите внимание, что таблица группировки категорий не включает <missing> потому что это зарезервированная ячейка, и пользователи не могут взаимодействовать непосредственно с <missing> бункер.
plotbins(sc,'ResStatus')
sc - Модель кредитной карты показателейcreditscorecard объектМодель кредитной карты показателей, указанная как creditscorecard объект. Использовать creditscorecard для создания creditscorecard объект.
PredictorName - Имя предиктораИмя предиктора, указанное с помощью символьного вектора, содержащего имя предиктора. PredictorName чувствителен к регистру.
Типы данных: char
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
bi = bininfo(sc, PredictorName,'Statistics','WOE','Totals','On')'Statistics' - Перечень статистических данных, включаемых для информации о ячейках{'Odds','WOE','InfoValue'} (по умолчанию) | символьный вектор со значениями 'Odds', 'WOE', 'InfoValue','Entropy', 'Gini', 'Chi2' | массив ячеек символьных векторов со значениями 'Odds', 'WOE', 'InfoValue', 'Entropy','Gini', 'Chi2'Список статистических данных для включения в информацию ячейки, указанный как пара, разделенная запятыми, состоящая из 'Statistics' и символьный вектор или массив ячеек символьных векторов. Для получения дополнительной информации см. Статистика для кредитной карты показателей. Возможные значения:
'Odds' - Информация о коэффициентах - это соотношение «Товаров» и «Бэдов».
'WOE' - Вес доказательств. WOE Statistic измеряет отклонение между распределением «Товаров» и «Bads».
'InfoValue' - Информационное значение. Тесно связано с WOE, это статистика, используемая для определения того, насколько сильным предиктором является использование в модели подгонки. Измеряет, насколько сильно отклонение между распределениями «Товар» и «Бэдс». Однако ячейки с только «хорошими» или только «плохими» наблюдениями действительно приводят к бесконечному информационному значению. Рассмотрите возможность изменения ячеек в этих случаях с помощью modifybins или autobinning.
'Entropy' - Энтропия является мерой непредсказуемости, содержащейся в бункерах. Чем больше количество «Товаров» и «Бэдов» различается в пределах бункеров, тем ниже энтропия.
'Gini' - Измерение статистической дисперсии или неравенства в выборке данных.
'Chi2' - Измерение статистической разницы и независимости между группами.
Примечание
Избегайте наличия бункеров с нулевыми частотами, поскольку они приводят к бесконечности или неопределенности (NaN) статистика. Использовать modifybins или autobinning для изменения ячеек.
Типы данных: char | cell
'Totals' - Индикатор для включения строки итогов в нижнюю информационную таблицу'On'
(по умолчанию) | символьный вектор со значениями 'On', 'Off'Индикатор для включения строки итоговых значений в нижней части информационной таблицы, указанной как разделенная запятыми пара, состоящая из 'Totals' и вектор символов со значениями On или Off.
Типы данных: char
bi - Информация о ячейке Сведения о ячейке, возвращенные в виде таблицы. Информационная таблица складского места содержит одну строку на складское место и строку итоговых сумм. Столбцы содержат описания ячеек, частоты «Хорошо» и «Плохо», а также статистику ячеек. Избегайте наличия бункеров с нулевыми частотами, поскольку они приводят к бесконечности или неопределенности (NaN) статистика. Использовать modifybins или autobinning для изменения ячеек.
Примечание
При создании creditscorecard объект с creditscorecard, если необязательный аргумент пары имя-значение WeightsVar был использован для указания веса наблюдения (образца), затем bi таблица содержит взвешенные счетчики.
bm - Карта биннинга или правилаКарта или правила привязки, возвращаемые как вектор точек отсечения для числовых предикторов или таблица групп категорий для категориальных предикторов. Дополнительные сведения см. в разделе modifybins.
mv - Минимальное и максимальное значения BinningМинимальное и максимальное значения Binning (заданные или определенные пользователем), возвращаемые в виде числового массива. mv выходной аргумент устанавливается в пустой массив для категориальных предикторов.
Вес доказательств (WOE) - это мера разницы распределения «Товаров» и «Бэдов» внутри бункера.
Предположим, что данные предсказателя принимают M возможных значений b1,..., bM. Для привязанных данных M - небольшое число. Ответ принимает два значения: «Хорошо» и «Плохо». Таблица частот данных задается следующим образом:
| Хорошо | Плохо | Общее количество | |
|---|---|---|---|
| b1: | n11 | n12 | n1 |
| b2: | n21 | n22 | n2 |
| bM: | nM1 | nM2 | nM |
| Итого: | nGood | nBad | nTotal |
Вес доказательств (WOE) определяется для каждого значения данных. bi как
WOE(i) = log((ni1/nGood)/(ni2/nBad)).
При определении
pGood(i) = ni1/nGood, pBad(i) = ni2/nBad
тогда pGoodi) Доля «хороших» наблюдений, которые принимают значение bi, и аналогично для pBad(i). Другими словами, pGood(i) дает распределение хороших наблюдений по М наблюдаемым значениям предиктора и аналогично для pBad(i). При этом эквивалентной формулой для WOE является
WOE(i) = log(pGood(i)/pBad(i)).
Odds(i) = ni1 / ni2,
OddsTotal = nGood / nBad.
Для каждой строки i можно также вычислить ее вклад в общее информационное значение, заданное
InfoValue(i) = (pGood(i) - pBad(i)) * WOE(i),
и общее информационное значение является просто суммой всех InfoValuel (i) условия. ( Anansum возвращается для отбрасывания вкладов из строк без каких-либо наблюдений.)
Аналогично, для каждой строки i мы можем вычислить его вклад в общую энтропию, заданную
Entropy(i) = -1/log(2)*(ni1/ni*log(ni1/ni)+ni2/ni*log(ni2/ni),
Entropy = sum(ni/nTotal * Entropy(i)), i = 1...M.
Chi2 вычисляется попарно для каждой пары ячеек и измеряет статистическую разницу между двумя группами при разделении или слиянии ячеек и определяется как:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1).
Коэффициент Джини является мерой родительского узла, то есть заданных ячеек/категорий перед разделением или объединением. Коэффициент Джини определяется как:
Gr = 1-G_hat/Gp
G_hat - взвешенная мера Джини для текущего разделения или слияния:G_hat = Sum((nj/N) * Gj, j=1..m).
bininfo с весамиПри определении весов наблюдения с помощью необязательного параметра WeightsVar аргумент при создании creditscorecard объект, вместо подсчета строк, которые являются хорошими или плохими в каждой ячейке, bininfo функция накапливает вес строк, которые являются хорошими или плохими в каждой ячейке.
Указанные «частоты» больше не являются основным «количеством» строк, а «совокупным весом» строк, которые являются хорошими или плохими и попадают в конкретный бункер. Как только эти «взвешенные частоты» известны, вся другая соответствующая статистика (Good, Bad, Odds, WOE, и InfoValue) вычисляются с помощью обычных формул. Для получения дополнительной информации см. Моделирование карт показателей кредитования с использованием весов наблюдений.
[1] Андерсон, R. The Credit Скоринг Toolkit. Издательство Оксфордского университета, 2007 год.
[2] Рефаат, М. Карты оценки кредитных рисков: разработка и внедрение с использованием SAS. lulu.com, 2011.
autobinning | bindata | creditscorecard | displaypoints | fitmodel | formatpoints | modifybins | modifypredictor | plotbins | predictorinfo | probdefault | score | setmodel | validatemodel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.