Классификация наблюдений в перекрестно проверенной модели ECOC ядра
возвращает метки классов, предсказанные перекрестно проверенной моделью ECOC ядра (label = kfoldPredict(CVMdl)ClassificationPartitionedKernelECOC) CVMdl. Для каждого раза, kfoldPredict предсказывает метки классов для проверочных наблюдений с использованием модели, обученной тренировочным наблюдениям. kfoldPredict применяет те же данные, что и при создании CVMdl (см. fitcecoc).
Программное обеспечение предсказывает классификацию наблюдения, присваивая наблюдение классу, давая наибольшую отрицаемую среднюю двоичную потерю (или, что эквивалентно, наименьшую среднюю двоичную потерю).
возвращает прогнозируемые метки класса с дополнительными параметрами, заданными одним или несколькими аргументами пары имя-значение. Например, укажите метод оценки апостериорной вероятности, схему декодирования или уровень детализации.label = kfoldPredict(CVMdl,Name,Value)
[ дополнительно возвращает отрицательные значения средних двоичных потерь на класс (label,NegLoss,PBScore] = kfoldPredict(___)NegLoss) для кратных по валидации наблюдений и положительных оценок класса (PBScore) для кратных по валидации наблюдений, классифицированных каждым двоичным учеником, с использованием любой из комбинаций входных аргументов в предыдущих синтаксисах.
Если матрица кодирования изменяется по складкам (то есть схема кодирования sparserandom или denserandom), то PBScore пуст ([]).
[ дополнительно возвращает оценки вероятности апостериорного класса для проверочных наблюдений (label,NegLoss,PBScore,Posterior] = kfoldPredict(___)Posterior).
Чтобы получить вероятности заднего класса, двоичные ученики классификации ядра должны быть моделями логистической регрессии. В противном случае kfoldPredict выдает ошибку.
Классифицируйте наблюдения с помощью классификатора ECOC многоклассного ядра с перекрестной проверкой и отображайте матрицу путаницы для результирующей классификации.
Загрузите набор данных радужки Фишера. X содержит измерения цветов, и Y содержит названия видов цветов.
load fisheriris
X = meas;
Y = species;Перекрестная проверка модели ECOC, состоящей из двоичных учеников ядра.
rng(1); % For reproducibility CVMdl = fitcecoc(X,Y,'Learners','kernel','CrossVal','on')
CVMdl =
ClassificationPartitionedKernelECOC
CrossValidatedModel: 'KernelECOC'
ResponseName: 'Y'
NumObservations: 150
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedKernelECOC модель. По умолчанию программное обеспечение реализует 10-кратную перекрестную проверку. Чтобы указать другое количество сгибов, используйте 'KFold' аргумент пары имя-значение вместо 'Crossval'.
Классифицировать наблюдения, которые fitcecoc не использует при обучении складки.
label = kfoldPredict(CVMdl);
Создайте матрицу путаницы, чтобы сравнить истинные классы наблюдений с их предсказанными метками.
C = confusionchart(Y,label);

CVMdl модель ошибочно классифицирует четыре 'versicolor' ирисы как 'virginica' ирисы и неправильно классифицирует один 'virginica' радужная оболочка как 'versicolor' радужка.
Загрузите набор данных радужки Фишера. X содержит измерения цветов, и Y содержит названия видов цветов.
load fisheriris
X = meas;
Y = species;Перекрестная проверка модели ECOC моделей классификации ядра с использованием пятикратной перекрестной проверки.
rng(1); % For reproducibility CVMdl = fitcecoc(X,Y,'Learners','kernel','KFold',5)
CVMdl =
ClassificationPartitionedKernelECOC
CrossValidatedModel: 'KernelECOC'
ResponseName: 'Y'
NumObservations: 150
KFold: 5
Partition: [1x1 cvpartition]
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedKernelECOC модель. Он содержит свойство Trained, который является массивом ячеек 5 на 1 CompactClassificationECOC модели.
По умолчанию модели классификации ядра, которые составляют CompactClassificationECOC модели используют SVM. Оценки SVM подписаны расстояниями от наблюдения до границы принятия решения. Поэтому доменом является ). Создайте пользовательскую двоичную функцию потери, которая:
Сопоставляет матрицу дизайна кодирования (M) и оценки классификации положительного класса для каждого учащегося с двоичными потерями для каждого наблюдения
Использует линейные потери
Агрегирует двоичные потери учащихся с помощью медианы
Можно создать отдельную функцию для двоичной функции потери, а затем сохранить ее на пути MATLAB ®. Также можно указать анонимную двоичную функцию потери. В этом случае создайте дескриптор функции (customBL) к анонимной двоичной функции потери.
customBL = @(M,s)nanmedian(1 - bsxfun(@times,M,s),2)/2;
Спрогнозировать метки перекрестной проверки и оценить медианные двоичные потери на класс. Печать медианы отрицательных двоичных потерь на класс для случайного набора из 10 наблюдений.
[label,NegLoss] = kfoldPredict(CVMdl,'BinaryLoss',customBL); idx = randsample(numel(label),10); table(Y(idx),label(idx),NegLoss(idx,1),NegLoss(idx,2),NegLoss(idx,3),... 'VariableNames',[{'True'};{'Predicted'};... unique(CVMdl.ClassNames)])
ans=10×5 table
True Predicted setosa versicolor virginica
______________ ______________ ________ __________ _________
{'setosa' } {'setosa' } 0.20926 -0.84572 -0.86354
{'setosa' } {'setosa' } 0.16144 -0.90572 -0.75572
{'virginica' } {'versicolor'} -0.83532 -0.12157 -0.54311
{'virginica' } {'virginica' } -0.97235 -0.69759 0.16994
{'virginica' } {'virginica' } -0.89441 -0.69937 0.093778
{'virginica' } {'virginica' } -0.86774 -0.47297 -0.15929
{'setosa' } {'setosa' } -0.1026 -0.69671 -0.70069
{'setosa' } {'setosa' } 0.1001 -0.89163 -0.70848
{'virginica' } {'virginica' } -1.0106 -0.52919 0.039829
{'versicolor'} {'versicolor'} -1.0298 0.027354 -0.49757
Модель с перекрестной проверкой правильно предсказывает метки для 9 из 10 случайных наблюдений.
Оценка вероятности апостериорного класса с использованием модели классификации ECOC многоклассного ядра с перекрестной проверкой. Модели классификации ядра возвращают апостериорные вероятности только для учащихся с логистической регрессией.
Загрузите набор данных радужки Фишера. X содержит измерения цветов, и Y содержит названия видов цветов.
load fisheriris
X = meas;
Y = species;Создайте шаблон ядра для бинарных моделей классификации ядра. Укажите, чтобы подогнать учеников логистической регрессии.
t = templateKernel('Learner','logistic')
t =
Fit template for classification Kernel.
BetaTolerance: []
BlockSize: []
BoxConstraint: []
Epsilon: []
NumExpansionDimensions: []
GradientTolerance: []
HessianHistorySize: []
IterationLimit: []
KernelScale: []
Lambda: []
Learner: 'logistic'
LossFunction: []
Stream: []
VerbosityLevel: []
Version: 1
Method: 'Kernel'
Type: 'classification'
t является шаблоном ядра. Большинство его свойств пусты. При обучении классификатора ECOC с использованием шаблона программа устанавливает соответствующие свойства для их значений по умолчанию.
Перекрестная проверка модели ECOC с использованием шаблона ядра.
rng('default'); % For reproducibility CVMdl = fitcecoc(X,Y,'Learners',t,'CrossVal','on')
CVMdl =
ClassificationPartitionedKernelECOC
CrossValidatedModel: 'KernelECOC'
ResponseName: 'Y'
NumObservations: 150
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedECOC модель. По умолчанию программа использует десятикратную перекрестную проверку.
Предсказать апостериорные вероятности класса, кратные валидации.
[label,~,~,Posterior] = kfoldPredict(CVMdl);
Программное обеспечение назначает наблюдение классу, которое дает наименьшие средние двоичные потери. Поскольку все двоичные ученики вычисляют апостериорные вероятности, функция двоичных потерь quadratic.
Отображение задних вероятностей для 10 случайно выбранных наблюдений.
idx = randsample(size(X,1),10); CVMdl.ClassNames
ans = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
table(Y(idx),label(idx),Posterior(idx,:),... 'VariableNames',{'TrueLabel','PredLabel','Posterior'})
ans=10×3 table
TrueLabel PredLabel Posterior
______________ ______________ ________________________________
{'setosa' } {'setosa' } 0.68216 0.18546 0.13238
{'virginica' } {'virginica' } 0.1581 0.14405 0.69785
{'virginica' } {'virginica' } 0.071807 0.093291 0.8349
{'setosa' } {'setosa' } 0.74918 0.11434 0.13648
{'versicolor'} {'versicolor'} 0.09375 0.67149 0.23476
{'versicolor'} {'versicolor'} 0.036202 0.85544 0.10836
{'versicolor'} {'versicolor'} 0.2252 0.50473 0.27007
{'virginica' } {'virginica' } 0.061562 0.11086 0.82758
{'setosa' } {'setosa' } 0.42448 0.21181 0.36371
{'virginica' } {'virginica' } 0.082705 0.1428 0.7745
Столбцы Posterior соответствуют порядку классов CVMdl.ClassNames.
CVMdl - Перекрестная проверка модели ECOC ядраClassificationPartitionedKernelECOC модельПерекрестно проверенная модель ECOC ядра, указанная как ClassificationPartitionedKernelECOC модель. Можно создать ClassificationPartitionedKernelECOC модель путем обучения модели ECOC с использованием fitcecoc и указание следующих аргументов пары имя-значение:
'Learners'- Установите значение в 'kernel', объект шаблона, возвращенный templateKernelили массив ячеек таких объектов шаблона.
Один из аргументов 'CrossVal', 'CVPartition', 'Holdout', 'KFold', или 'Leaveout'.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
kfoldPredict(CVMdl,'PosteriorMethod','qp') определяет оценку мультиклассовых апостериорных вероятностей путем решения задачи наименьших квадратов с помощью квадратичного программирования.'BinaryLoss' - Двоичная функция потери ученика'hamming' | 'linear' | 'logit' | 'exponential' | 'binodeviance' | 'hinge' | 'quadratic' | дескриптор функцииДвоичная функция потери ученика, заданная как разделенная запятыми пара, состоящая из 'BinaryLoss' и встроенное имя или дескриптор функции потери.
Эта таблица содержит имена и описания встроенных функций, где yj - метка класса для конкретного двоичного ученика (в наборе {-1,1,0}), sj - оценка для наблюдения j, а g (yj, sj) - формула двоичных потерь.
| Стоимость | Описание | Домен оценки | g (yj, sj) |
|---|---|---|---|
'binodeviance' | Биномиальное отклонение | (–∞,∞) | журнал [1 + exp (-2yjsj) ]/[ 2log (2)] |
'exponential' | Показательный | (–∞,∞) | exp (-yjsj )/2 |
'hamming' | Хэмминг | [0,1] или (- ∞,∞) | [1 - знак (yjsj) ]/2 |
'hinge' | Стержень | (–∞,∞) | max (0,1 - yjsj )/2 |
'linear' | Линейный | (–∞,∞) | (1 - yjsj )/2 |
'logit' | Логистический | (–∞,∞) | log [1 + exp (-yjsj) ]/[ 2log (2)] |
'quadratic' | Квадратный | [0,1] | [1-yj (2sj-1)] 2/2 |
Программное обеспечение нормализует двоичные потери так, что потери составляют 0,5, когда yj = 0. Кроме того, программное обеспечение вычисляет средние двоичные потери для каждого класса.
Например, для пользовательской двоичной функции потери: customFunction, укажите его функциональный дескриптор 'BinaryLoss',@customFunction.
customFunction имеет следующую форму:
bLoss = customFunction(M,s)
M - матрица кодирования K-by-L, сохраненная в Mdl.CodingMatrix.
s - вектор 1-by-L строк классификационных баллов.
bLoss - потеря классификации. Этот скаляр агрегирует двоичные потери для каждого учащегося в конкретном классе. Например, можно использовать среднюю двоичную потерю для суммирования потерь по учащимся для каждого класса.
K - количество классов.
L - количество двоичных учеников.
По умолчанию, если все двоичные ученики являются моделями классификации ядра с использованием SVM, то BinaryLoss является 'hinge'. Если все двоичные ученики являются моделями классификации ядра с использованием логистической регрессии, то BinaryLoss является 'quadratic'.
Пример: 'BinaryLoss','binodeviance'
Типы данных: char | string | function_handle
'Decoding' - Схема декодирования'lossweighted' (по умолчанию) | 'lossbased'Схема декодирования, которая агрегирует двоичные потери, заданная как разделенная запятыми пара, состоящая из 'Decoding' и 'lossweighted' или 'lossbased'. Дополнительные сведения см. в разделе Потери двоичного кода.
Пример: 'Decoding','lossbased'
'NumKLInitializations' - Количество случайных начальных значений0 (по умолчанию) | неотрицательный целочисленный скалярЧисло случайных начальных значений для аппроксимации задних вероятностей минимизацией расходимости Куллбэка-Лейблера, определяемых как пара, разделенная запятыми, состоящая из 'NumKLInitializations' и неотрицательный целочисленный скаляр.
Если не запросить четвертый выходной аргумент (Posterior) и установить 'PosteriorMethod','kl' (по умолчанию), то программное обеспечение игнорирует значение NumKLInitializations.
Дополнительные сведения см. в разделе Апостериорная оценка с использованием дивергенции Kullback-Leibler.
Пример: 'NumKLInitializations',5
Типы данных: single | double
'Options' - Варианты оценки[] (по умолчанию) | массив структуры, возвращенный statsetОпции оценки, указанные как пара, разделенная запятыми, состоящая из 'Options' и массив структуры, возвращенный statset.
Для вызова параллельных вычислений:
Вам нужна лицензия Parallel Computing Toolbox™.
Определить 'Options',statset('UseParallel',true).
'PosteriorMethod' - Метод оценки апостериорной вероятности'kl' (по умолчанию) | 'qp'Метод оценки апостериорной вероятности, определяемый как разделенная запятыми пара, состоящая из 'PosteriorMethod' и 'kl' или 'qp'.
Если PosteriorMethod является 'kl'затем программное обеспечение оценивает мультиклассовые апостериорные вероятности путем минимизации расхождения Куллбэка-Лейблера между предсказанной и ожидаемой апостериорной вероятностями, возвращаемыми двоичными учениками. Дополнительные сведения см. в разделе Задняя оценка с использованием дивергенции Kullback-Leibler.
Если PosteriorMethod является 'qp', то программное обеспечение оценивает мультиклассовые апостериорные вероятности, решая задачу наименьших квадратов с помощью квадратичного программирования. Для использования этого параметра необходима лицензия Optimization Toolbox™. Дополнительные сведения см. в разделе Апостериорная оценка с использованием квадратичного программирования.
Если не запросить четвертый выходной аргумент (Posterior), то программное обеспечение игнорирует значение PosteriorMethod.
Пример: 'PosteriorMethod','qp'
'Verbose' - Уровень детализации0 (по умолчанию) | 1Уровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и 0 или 1. Verbose управляет количеством диагностических сообщений, отображаемых программой в окне команд.
Если Verbose является 0, то программное обеспечение не отображает диагностические сообщения. В противном случае программа отображает диагностические сообщения.
Пример: 'Verbose',1
Типы данных: single | double
label - Прогнозируемые метки классовПрогнозируемые метки класса, возвращаемые в виде категориального или символьного массива, логического или числового вектора или массива ячеек символьных векторов.
label имеет тот же тип данных и количество строк, что и CVMdl.Y.
Программное обеспечение предсказывает классификацию наблюдения, присваивая наблюдение классу, давая наибольшую отрицаемую среднюю двоичную потерю (или, что эквивалентно, наименьшую среднюю двоичную потерю).
NegLoss - Сведенные на нет средние двоичные потериСведенные на нет средние двоичные потери, возвращаемые в виде числовой матрицы. NegLoss - матрица n-by-K, где n - число наблюдений (size(CVMdl.Y,1)) и K - количество уникальных классов (size(CVMdl.ClassNames,1)).
PBScore - Положительные оценки классаПоложительные оценки для каждого двоичного ученика, возвращаемые в виде числовой матрицы. PBScore - матрица n-by-L, где n - количество наблюдений (size(CVMdl.Y,1)) и L - количество двоичных учеников (size(CVMdl.CodingMatrix,2)).
Если матрица кодирования изменяется по складкам (то есть схема кодирования sparserandom или denserandom), то PBScore пуст ([]).
Posterior - Вероятности заднего классаАпостериорные вероятности классов, возвращаемые в виде числовой матрицы. Posterior - матрица n-by-K, где n - число наблюдений (size(CVMdl.Y,1)) и K - количество уникальных классов (size(CVMdl.ClassNames,1)).
Чтобы вернуть апостериорные вероятности, каждый двоичный ученик классификации ядра должен иметь свои Learner свойство имеет значение 'logistic'. В противном случае программа выдает ошибку.
Двоичная потеря - это функция класса и оценки классификации, которая определяет, насколько хорошо двоичный ученик классифицирует наблюдение в классе.
Предположим, что:
mkj - элемент (k, j) матрицы M дизайна кодирования (то есть код, соответствующий классу k двоичного учащегося j).
sj - оценка двоичного ученика j для наблюдения.
g - функция двоичных потерь.
^ - прогнозируемый класс для наблюдения.
При декодировании на основе потерь [Escalera et al.] класс, производящий минимальную сумму двоичных потерь над двоичными учениками, определяет прогнозируемый класс наблюдения, то есть
).
При декодировании со взвешенными потерями [Escalera et al.] класс, производящий минимальное среднее двоичных потерь по двоичным ученикам, определяет прогнозируемый класс наблюдения, то есть
∑j=1L'mkj|.
Allwein et al. предполагают, что взвешенное по потерям декодирование улучшает точность классификации, сохраняя значения потерь для всех классов в одном динамическом диапазоне.
Эта таблица суммирует поддерживаемые функции потерь, где yj - метка класса для конкретного двоичного ученика (в наборе {-1,1,0}), sj - оценка для наблюдения j, и g (yj, sj).
| Стоимость | Описание | Домен оценки | g (yj, sj) |
|---|---|---|---|
'binodeviance' | Биномиальное отклонение | (–∞,∞) | журнал [1 + exp (-2yjsj) ]/[ 2log (2)] |
'exponential' | Показательный | (–∞,∞) | exp (-yjsj )/2 |
'hamming' | Хэмминг | [0,1] или (- ∞,∞) | [1 - знак (yjsj) ]/2 |
'hinge' | Стержень | (–∞,∞) | max (0,1 - yjsj )/2 |
'linear' | Линейный | (–∞,∞) | (1 - yjsj )/2 |
'logit' | Логистический | (–∞,∞) | log [1 + exp (-yjsj) ]/[ 2log (2)] |
'quadratic' | Квадратный | [0,1] | [1-yj (2sj-1)] 2/2 |
Программное обеспечение нормализует двоичные потери так, что потери составляют 0,5, когда yj = 0, и агрегирует, используя среднее значение двоичных учеников [Allwein et al.].
Не путайте бинарную потерю с общей классификационной потерей (указанной 'LossFun' аргумент пары имя-значение loss и predict объектные функции), который измеряет, насколько хорошо классификатор ECOC работает в целом.
Программное обеспечение может оценивать апостериорные вероятности классов, минимизируя дивергенцию Куллбэка-Лейблера или используя квадратичное программирование. Для следующих описаний алгоритмов апостериорной оценки предположим, что:
mkj - элемент (k, j) матрицы M дизайна кодирования.
I - функция индикатора.
k - оценка апостериорной вероятности класса для класса k наблюдения, k = 1,...,K.
rj - апостериорная вероятность положительного класса для двоичного учащегося j. То есть, rj - вероятность того, что двоичный ученик j классифицирует наблюдение в положительный класс, учитывая данные обучения.
По умолчанию программное обеспечение минимизирует дивергенцию Kullback-Leibler для оценки апостериорных вероятностей класса. Расхождение Куллбака-Лейблера между ожидаемой и наблюдаемой апостериорной вероятностями положительного класса составляет
rj1 − r ^ j],
где - вес для двоичного ученика j.
Sj - это набор показателей наблюдения, на которых обучается двоичный ученик j.
- вес наблюдения i.
Программное обеспечение минимизирует расхождение итеративно. Первым шагом является выбор начальных значений .., K для апостериорных вероятностей класса.
Если не указать 'NumKLIterations'затем программное обеспечение пробует оба набора детерминированных начальных значений, описанных далее, и выбирает набор, который минимизирует Δ.
..., K.
.., K - решение системы
= r,
где M01 - M со всеми mkj = -1, замененными на 0, и r - вектор апостериорных вероятностей положительного класса, возвращаемый L двоичными учениками [Dietterich et al.]. Программное обеспечение использует lsqnonneg для решения системы.
При указании 'NumKLIterations',c, где c является натуральным числом, то программное обеспечение делает следующее, чтобы выбрать множество .., K, и выбирает множество, которое минимизирует Δ.
Программное обеспечение пробует оба набора детерминированных начальных значений, как описано выше.
Программное обеспечение случайным образом генерирует c векторы длины К с использованием rand, а затем нормализует каждый вектор для суммирования в 1.
При итерации t программное обеспечение выполняет следующие действия:
Вычислить
mkj=+1∪mkj=−1).
Оценить апостериорную вероятность следующего класса, используя
mkj = + 1) + (1 − r ^ j (t)) I (mkj = − 1)].
Нормализовать ,..., K так, чтобы они были равны 1.
Проверьте сходимость.
Более подробно см. [Hastie et al.] и [Zadrozny].
Для оценки апостериорной вероятности с помощью квадратичного программирования требуется лицензия Optimization Toolbox. Чтобы оценить апостериорные вероятности для наблюдения с помощью этого метода, программное обеспечение выполняет следующие шаги:
Оцените апостериорные вероятности положительного класса, rj, для двоичных учеников j = 1,...,L.
Используя взаимосвязь между rj и k [Wu et al.], минимизируйте
(mkj = + 1)] 2
в отношении k и ограничений
Программа выполняет минимизацию с помощью quadprog(Панель инструментов оптимизации).
[1] Allwein, E., R. Schapire и Y. Singer. «Сокращение мультиклассов до двоичных: унифицирующий подход к classifiers маржи». Журнал исследований машинного обучения. Том 1, 2000, стр. 113-141.
[2] Диттерих, Т. и Г. Бакири. «Решение проблем многоклассового обучения с помощью кодов вывода с исправлением ошибок». Журнал исследований искусственного интеллекта. Том 2, 1995, стр. 263-286.
[3] Эскалера, С., О. Пужоль и П. Радева. «Процесс декодирования в выходных кодах с тройной коррекцией ошибок». Транзакции IEEE по анализу шаблонов и машинному интеллекту. Том 32, выпуск 7, 2010, стр. 120-134.
[4] Эскалера, С., О. Пужоль и П. Радева. «Разделяемость троичных кодов для разреженных конструкций выходных кодов с исправлением ошибок». Повторная запись шаблона. Том 30, выпуск 3, 2009, стр. 285-297.
[5] Хасти, Т. и Р. Тибширани. «Классификация по парной муфте». Анналы статистики. Том 26, выпуск 2, 1998, стр. 451-471.
[6] Wu, T.F., C. J. Лин и Р. Венг. «Оценки вероятности для классификации нескольких классов по парному соединению». Журнал исследований машинного обучения. Том 5, 2004, стр. 975-1005.
[7] Задрозный, В. «Уменьшение мультикласса до двоичного путем оценки вероятности связи». NIPS 2001: Proceedings of Advances in Neural Information Processing Systems 14, 2001, pp. 1041-1048.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.