kpfadnis commited on
Commit
ba53458
·
1 Parent(s): 5db7074

fix (aggregators): Minor fix to median aggregator.

Browse files

Signed-off-by: Kshitij Fadnis <[email protected]>

src/utilities/aggregators.ts CHANGED
@@ -82,8 +82,8 @@ export const medianAggregator: Aggregator = {
82
  // Step 3: Calculate aggregate value & standard deviation
83
  const median =
84
  sortedNumericScores.length % 2 == 0
85
- ? sortedNumericScores[sortedNumericScores.length / 2]
86
- : sortedNumericScores[(sortedNumericScores.length + 1) / 2];
87
  const std = Math.sqrt(
88
  sortedNumericScores
89
  .map((score) => Math.pow(score - median, 2))
 
82
  // Step 3: Calculate aggregate value & standard deviation
83
  const median =
84
  sortedNumericScores.length % 2 == 0
85
+ ? sortedNumericScores[sortedNumericScores.length / 2 - 1]
86
+ : sortedNumericScores[(sortedNumericScores.length + 1) / 2 - 1];
87
  const std = Math.sqrt(
88
  sortedNumericScores
89
  .map((score) => Math.pow(score - median, 2))
src/utilities/metrics.ts CHANGED
@@ -230,7 +230,7 @@ function computeMedian(
230
  // Step 6: Calculate median
231
  const median =
232
  sortedNumericScores.length % 2 == 0
233
- ? sortedNumericScores[sortedNumericScores.length / 2]
234
  : sortedNumericScores[(sortedNumericScores.length + 1) / 2 - 1];
235
 
236
  // Step 7: Common patterns
 
230
  // Step 6: Calculate median
231
  const median =
232
  sortedNumericScores.length % 2 == 0
233
+ ? sortedNumericScores[sortedNumericScores.length / 2 - 1]
234
  : sortedNumericScores[(sortedNumericScores.length + 1) / 2 - 1];
235
 
236
  // Step 7: Common patterns
src/views/model-behavior/ModelBehavior.tsx CHANGED
@@ -180,9 +180,8 @@ export default function ModelBehavior({
180
  const [selectedMetric, setSelectedMetric] = useState<Metric | undefined>(
181
  undefined,
182
  );
183
- const [selectedAllowedValues, setSelectedAllowedValues] = useState<string[]>(
184
- [],
185
- );
186
  const [selectedAnnotator, setSelectedAnnotator] = useState<
187
  string | undefined
188
  >(undefined);
@@ -313,7 +312,7 @@ export default function ModelBehavior({
313
  ).sort();
314
  }
315
 
316
- return [];
317
  }, [
318
  evaluationsPerMetric,
319
  selectedModels,
@@ -519,8 +518,11 @@ export default function ModelBehavior({
519
  ) : null}
520
 
521
  {selectedMetric &&
522
- selectedMetric.aggregator === 'majority' &&
523
- availableAllowedValues ? (
 
 
 
524
  <div className={classes.allowedValueSelector}>
525
  <FilterableMultiSelect
526
  key={'allowed-value-selector' + selectedAllowedValues.join('::')}
 
180
  const [selectedMetric, setSelectedMetric] = useState<Metric | undefined>(
181
  undefined,
182
  );
183
+ const [selectedAllowedValues, setSelectedAllowedValues] =
184
+ useState<string[]>();
 
185
  const [selectedAnnotator, setSelectedAnnotator] = useState<
186
  string | undefined
187
  >(undefined);
 
312
  ).sort();
313
  }
314
 
315
+ return undefined;
316
  }, [
317
  evaluationsPerMetric,
318
  selectedModels,
 
518
  ) : null}
519
 
520
  {selectedMetric &&
521
+ selectedMetric.type === 'categorical' &&
522
+ (selectedMetric.aggregator === 'majority' ||
523
+ selectedMetric.aggregator === 'median') &&
524
+ availableAllowedValues &&
525
+ selectedAllowedValues ? (
526
  <div className={classes.allowedValueSelector}>
527
  <FilterableMultiSelect
528
  key={'allowed-value-selector' + selectedAllowedValues.join('::')}
src/workers/filter.ts CHANGED
@@ -103,7 +103,6 @@ onmessage = function (event: MessageEvent<FilterationRequest>) {
103
  evaluation.modelId in models &&
104
  evaluation[metric.name].hasOwnProperty(annotator) &&
105
  (!allowedValues ||
106
- isEmpty(allowedValues) ||
107
  allowedValues.includes(evaluation[metric.name][annotator].value))
108
  ) {
109
  // Step 3.b.i.*: Create and add record
@@ -126,7 +125,6 @@ onmessage = function (event: MessageEvent<FilterationRequest>) {
126
  .map((level) => level.value)
127
  .includes(evaluation[`${metric.name}_agg`].level)) &&
128
  (!allowedValues ||
129
- isEmpty(allowedValues) ||
130
  allowedValues.includes(evaluation[`${metric.name}_agg`].value))
131
  ) {
132
  // Step 3.b.ii.*: Create and add record
@@ -161,7 +159,6 @@ onmessage = function (event: MessageEvent<FilterationRequest>) {
161
  evaluation.modelId in models &&
162
  evaluation[metric].hasOwnProperty(annotator) &&
163
  (!allowedValues ||
164
- isEmpty(allowedValues) ||
165
  allowedValues.includes(evaluation[metric][annotator].value))
166
  ) {
167
  records.push({
@@ -179,7 +176,6 @@ onmessage = function (event: MessageEvent<FilterationRequest>) {
179
  .map((level) => level.value)
180
  .includes(evaluation[`${metric}_agg`].level)) &&
181
  (!allowedValues ||
182
- isEmpty(allowedValues) ||
183
  allowedValues.includes(evaluation[`${metric}_agg`].value))
184
  ) {
185
  records.push({
 
103
  evaluation.modelId in models &&
104
  evaluation[metric.name].hasOwnProperty(annotator) &&
105
  (!allowedValues ||
 
106
  allowedValues.includes(evaluation[metric.name][annotator].value))
107
  ) {
108
  // Step 3.b.i.*: Create and add record
 
125
  .map((level) => level.value)
126
  .includes(evaluation[`${metric.name}_agg`].level)) &&
127
  (!allowedValues ||
 
128
  allowedValues.includes(evaluation[`${metric.name}_agg`].value))
129
  ) {
130
  // Step 3.b.ii.*: Create and add record
 
159
  evaluation.modelId in models &&
160
  evaluation[metric].hasOwnProperty(annotator) &&
161
  (!allowedValues ||
 
162
  allowedValues.includes(evaluation[metric][annotator].value))
163
  ) {
164
  records.push({
 
176
  .map((level) => level.value)
177
  .includes(evaluation[`${metric}_agg`].level)) &&
178
  (!allowedValues ||
 
179
  allowedValues.includes(evaluation[`${metric}_agg`].value))
180
  ) {
181
  records.push({