mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: finish work on post work
This commit is contained in:
1 parent
bdbc0073a8
commit
de22efabc4
3 files changed
+40
-30
No files matched your search
+25
-15
@@ -1,5 +1,4 @@
|
|||||||
import { times } from 'lodash';
|
import { times } from 'lodash';
|
||||||
import { compress } from 'lz4js';
|
|
||||||
import { argv } from 'process';
|
import { argv } from 'process';
|
||||||
import ProgressBar from 'progress';
|
import ProgressBar from 'progress';
|
||||||
import { Region, REGIONS } from '../src/constants/regions';
|
import { Region, REGIONS } from '../src/constants/regions';
|
||||||
@@ -9,11 +8,13 @@ import { asset } from '../src/core/blitzkit/asset';
|
|||||||
import {
|
import {
|
||||||
AverageDefinitions,
|
AverageDefinitions,
|
||||||
AverageDefinitionsAllStats,
|
AverageDefinitionsAllStats,
|
||||||
|
AverageDefinitionsEntry,
|
||||||
|
AverageDefinitionsEntrySubPartial,
|
||||||
} from '../src/core/blitzkit/averageDefinitions';
|
} from '../src/core/blitzkit/averageDefinitions';
|
||||||
import { averageDefinitionsAllStatsKeys } from '../src/core/blitzkit/averageDefinitions/constants';
|
import { averageDefinitionsAllStatsKeys } from '../src/core/blitzkit/averageDefinitions/constants';
|
||||||
import { commitAssets } from '../src/core/blitzkit/commitAssets';
|
import { commitAssets } from '../src/core/blitzkit/commitAssets';
|
||||||
import { superCompress } from '../src/core/blitzkit/superCompress';
|
import { superCompress } from '../src/core/blitzkit/superCompress';
|
||||||
import { DidsReadStream, DidsWriteStream } from '../src/core/streams/dids';
|
import { DidsReadStream } from '../src/core/streams/dids';
|
||||||
import { IndividualTankStats } from '../src/types/tanksStats';
|
import { IndividualTankStats } from '../src/types/tanksStats';
|
||||||
|
|
||||||
interface DataPoint {
|
interface DataPoint {
|
||||||
@@ -172,6 +173,13 @@ function postWork() {
|
|||||||
|
|
||||||
tankIds.forEach((id) => {
|
tankIds.forEach((id) => {
|
||||||
const tanks = sorted[id];
|
const tanks = sorted[id];
|
||||||
|
const samples = tanks.length;
|
||||||
|
const entry: AverageDefinitionsEntrySubPartial = {
|
||||||
|
samples,
|
||||||
|
mu: {},
|
||||||
|
sigma: {},
|
||||||
|
r: {},
|
||||||
|
};
|
||||||
|
|
||||||
averageDefinitionsAllStatsKeys.forEach((key) => {
|
averageDefinitionsAllStatsKeys.forEach((key) => {
|
||||||
const data: DataPoint[] = tanks.map((tank) => ({
|
const data: DataPoint[] = tanks.map((tank) => ({
|
||||||
@@ -190,15 +198,24 @@ function postWork() {
|
|||||||
const sum_w = sum(({ w }) => w);
|
const sum_w = sum(({ w }) => w);
|
||||||
const sum_wx = sum(({ w, x }) => w * x);
|
const sum_wx = sum(({ w, x }) => w * x);
|
||||||
const sum_wy = sum(({ w, y }) => w * y);
|
const sum_wy = sum(({ w, y }) => w * y);
|
||||||
const x_w = sum_wx / sum_w;
|
const mu_x = sum_wx / sum_w;
|
||||||
const y_w = sum_wy / sum_w;
|
const mu_y = sum_wy / sum_w;
|
||||||
const r_numerator = sum(({ w, x, y }) => w * (x - x_w) * (y - y_w));
|
const mu = mu_x;
|
||||||
const r_denominator_x = sum(({ w, x }) => w * (x - x_w) ** 2);
|
|
||||||
const r_denominator_y = sum(({ w, y }) => w * (y - y_w) ** 2);
|
|
||||||
|
|
||||||
|
const sigma_numerator = sum(({ w, x }) => w * (x - mu_x) ** 2);
|
||||||
|
const sigma = Math.sqrt(sigma_numerator / sum_w);
|
||||||
|
|
||||||
|
const r_numerator = sum(({ w, x, y }) => w * (x - mu_x) * (y - mu_y));
|
||||||
|
const r_denominator_x = sum(({ w, x }) => w * (x - mu_x) ** 2);
|
||||||
|
const r_denominator_y = sum(({ w, y }) => w * (y - mu_y) ** 2);
|
||||||
const r = r_numerator / Math.sqrt(r_denominator_x * r_denominator_y);
|
const r = r_numerator / Math.sqrt(r_denominator_x * r_denominator_y);
|
||||||
const mu = x_w;
|
|
||||||
|
entry.mu[key] = mu;
|
||||||
|
entry.sigma[key] = sigma;
|
||||||
|
entry.r[key] = r;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
averages[id] = entry as AverageDefinitionsEntry;
|
||||||
});
|
});
|
||||||
|
|
||||||
commitAssets(
|
commitAssets(
|
||||||
@@ -209,13 +226,6 @@ function postWork() {
|
|||||||
content: superCompress(averages),
|
content: superCompress(averages),
|
||||||
encoding: 'base64',
|
encoding: 'base64',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: 'definitions/discovered.dids.lz4',
|
|
||||||
content: Buffer.from(
|
|
||||||
compress(new DidsWriteStream().dids(discoveredIds).uint8Array),
|
|
||||||
).toString('base64'),
|
|
||||||
encoding: 'base64',
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
production,
|
production,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { AverageDefinitionsAllStats } from '.';
|
import { AverageDefinitionsAllStats } from '.';
|
||||||
|
|
||||||
import { emptyAllStats } from '../../blitzstars/getStatsInPeriod/constants';
|
import { emptyAllStats } from '../../blitzstars/getStatsInPeriod/constants';
|
||||||
|
|
||||||
export const emptyAverageDefinitionsAllStats: AverageDefinitionsAllStats = {
|
export const emptyAverageDefinitionsAllStats: AverageDefinitionsAllStats = {
|
||||||
|
|||||||
@@ -6,21 +6,22 @@ export interface AverageDefinitionsAllStats extends AllStats {
|
|||||||
battle_life_time: number;
|
battle_life_time: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AverageDefinitions {
|
export interface AverageDefinitionsEntry {
|
||||||
[id: number]: {
|
samples: number;
|
||||||
samples: number;
|
mu: AverageDefinitionsAllStats;
|
||||||
|
sigma: AverageDefinitionsAllStats;
|
||||||
|
r: AverageDefinitionsAllStats;
|
||||||
|
}
|
||||||
|
|
||||||
// average
|
export interface AverageDefinitionsEntrySubPartial {
|
||||||
mu: AverageDefinitionsAllStats;
|
samples: number;
|
||||||
// standard deviation
|
mu: Partial<AverageDefinitionsAllStats>;
|
||||||
sigma: AverageDefinitionsAllStats;
|
sigma: Partial<AverageDefinitionsAllStats>;
|
||||||
// correlation coefficient
|
r: Partial<AverageDefinitionsAllStats>;
|
||||||
r: AverageDefinitionsAllStats;
|
}
|
||||||
// least squares regression line slope
|
|
||||||
m: AverageDefinitionsAllStats;
|
export interface AverageDefinitions {
|
||||||
// least squares regression line y-intercept
|
[id: number]: AverageDefinitionsEntry;
|
||||||
b: AverageDefinitionsAllStats;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const averageDefinitions = fetchCdonLz4<AverageDefinitions>(
|
export const averageDefinitions = fetchCdonLz4<AverageDefinitions>(
|
||||||
|
|||||||
Reference in new issue
Block a user