Skip to content

Commit

Permalink
fix: updated jsonstack-model
Browse files Browse the repository at this point in the history
  • Loading branch information
yawetse committed Jul 26, 2022
1 parent 19180db commit 0b13cfc
Show file tree
Hide file tree
Showing 43 changed files with 4,588 additions and 185 deletions.
2 changes: 1 addition & 1 deletion .dccache

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions build/constants.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as ModelXDataTypes from '@jsonstack/data/src/DataSet';
import { DateTime, DateTimeJSOptions, DateObject } from 'luxon';
import * as JSONStackData from '@jsonstack/data/src/DataSet';
import { DateTime, DateTimeJSOptions, DateObjectUnits } from 'luxon';
export declare enum Dimensions {
YEARLY = "yearly",
WEEKLY = "weekly",
Expand All @@ -14,7 +14,7 @@ export declare enum BooleanAnswer {
FALSE = 0,
TRUE = 1
}
export interface ParsedDate extends DateObject {
export interface ParsedDate extends DateObjectUnits {
hour?: number;
minute?: number;
week?: number;
Expand Down Expand Up @@ -68,15 +68,15 @@ export declare function getLocalParsedDate({ date, time_zone, dimension, }: {
dimension: Dimensions;
}): {
year: number;
month: number;
day: number;
hour: number;
minute: number;
second: number;
days_in_month: number;
month: import("luxon").MonthNumbers;
day: import("luxon").DayNumbers;
hour: import("luxon").HourNumbers;
minute: import("luxon").SecondNumbers;
second: import("luxon").SecondNumbers;
days_in_month: import("luxon").PossibleDaysInMonth;
ordinal_day: number;
week: number;
weekday: number;
week: import("luxon").WeekNumbers;
weekday: import("luxon").WeekdayNumbers;
weekend: boolean;
origin_time_zone: string;
start_origin_date_string: string;
Expand Down Expand Up @@ -144,17 +144,17 @@ export declare const dimensionDurations: string[];
export declare const flattenDelimiter = "+=+";
export declare function getOpenHour(options?: {}): BooleanAnswer;
export declare function getIsOutlier(this: {
data: ModelXDataTypes.Data;
datum: ModelXDataTypes.Datum;
data: JSONStackData.Data;
datum: JSONStackData.Datum;
}, { outlier_property, }?: {
outlier_property?: string;
}): BooleanAnswer;
export declare function addMockDataToDataSet(DataSet: ModelXDataTypes.DataSet, { mockEncodedData, includeConstants, }: {
mockEncodedData?: ModelXDataTypes.Data;
export declare function addMockDataToDataSet(DataSet: JSONStackData.DataSet, { mockEncodedData, includeConstants, }: {
mockEncodedData?: JSONStackData.Data;
includeConstants?: boolean;
}): ModelXDataTypes.DataSet;
export declare function removeMockDataFromDataSet(DataSet: ModelXDataTypes.DataSet, { mockEncodedData, includeConstants, }: {
mockEncodedData?: ModelXDataTypes.Data;
}): JSONStackData.DataSet;
export declare function removeMockDataFromDataSet(DataSet: JSONStackData.DataSet, { mockEncodedData, includeConstants, }: {
mockEncodedData?: JSONStackData.Data;
includeConstants?: boolean;
}): ModelXDataTypes.DataSet;
export declare function removeEvaluationData(evaluation: ModelXDataTypes.Datum): ModelXDataTypes.Datum;
}): JSONStackData.DataSet;
export declare function removeEvaluationData(evaluation: JSONStackData.Datum): JSONStackData.Datum;
3 changes: 2 additions & 1 deletion build/dataset.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Data } from '@jsonstack/data/src/DataSet';
import { CSVOptions } from '@jsonstack/data/src/csv';
import { getFirstDataset } from './transforms';
import Promisie from 'promisie/src/index';
export declare type DataSets = {
[index: string]: Data;
};
Expand Down Expand Up @@ -35,7 +36,7 @@ export declare type ReducerFunctionData = {
index?: number;
};
export declare const defaultReducerContext: {
Promisie: any;
Promisie: typeof Promisie;
getFirstDataset: typeof getFirstDataset;
};
/**
Expand Down
2 changes: 1 addition & 1 deletion build/dataset.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { loadCSV, loadTSV, } from '@jsonstack/data/src/csv';
import { getFirstDataset, } from './transforms';
import Promisie from 'promisie';
import Promisie from 'promisie/src/index';
import axios from 'axios';
export const defaultReducerContext = {
Promisie,
Expand Down
16 changes: 8 additions & 8 deletions build/features.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as ModelXDataTypes from '@jsonstack/data/src/DataSet';
import * as JSONStackDataTypes from '@jsonstack/data/src/DataSet';
export declare type UniqueDateOptions = {
start: string;
end: string;
Expand Down Expand Up @@ -138,7 +138,7 @@ export declare const dimensionDates: {
secondly: typeof getUniqueSeconds;
};
export declare function getEncodedFeatures({ DataSet, features, }: {
DataSet: ModelXDataTypes.DataSet;
DataSet: JSONStackDataTypes.DataSet;
features?: string[];
}): any[];
export declare enum AutoFeatureTypes {
Expand All @@ -155,20 +155,20 @@ export declare type AutoFeature = {
export declare type AutoFeatureAutoAssignmentOptions = {
independent_variables?: string[];
dependent_variables?: string[];
datum?: ModelXDataTypes.Datum;
datum?: JSONStackDataTypes.Datum;
input_independent_features?: AutoFeature[];
output_dependent_features?: AutoFeature[];
training_feature_column_options?: ModelXDataTypes.DataSetTransform;
preprocessing_feature_column_options?: ModelXDataTypes.DataSetTransform;
training_feature_column_options?: JSONStackDataTypes.DataSetTransform;
preprocessing_feature_column_options?: JSONStackDataTypes.DataSetTransform;
features?: AutoFeature[];
};
export declare function getAutoFeatures({ variables, datum }: {
variables: string[];
datum: ModelXDataTypes.Datum;
datum: JSONStackDataTypes.Datum;
}): AutoFeature[];
export declare function autoAssignFeatureColumns({ independent_variables, dependent_variables, datum, input_independent_features, output_dependent_features, training_feature_column_options, preprocessing_feature_column_options, }: AutoFeatureAutoAssignmentOptions): {
x_raw_independent_features: any[];
y_raw_dependent_labels: any[];
training_feature_column_options: ModelXDataTypes.DataSetTransform;
preprocessing_feature_column_options: ModelXDataTypes.DataSetTransform;
training_feature_column_options: JSONStackDataTypes.DataSetTransform;
preprocessing_feature_column_options: JSONStackDataTypes.DataSetTransform;
};
7 changes: 5 additions & 2 deletions build/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
export { ModelX, ModelTypes, ModelCategories, getGeneratedStatefulFunction, sumPreviousRows, ModelX as JSONModel, } from './model';
export { getModel, getModelFromJSONM, getModelTrainingOptions, } from './jsonm';
export { getDataSet, } from './dataset';
export * as Data from '@jsonstack/data/src/index';
export * as Model from '@jsonstack/model/src/index';
export { getAutoFeatures, autoAssignFeatureColumns, } from './features';
export * as Data from '@jsonstack/data';
export * as Model from '@jsonstack/model';
export { setBackend, getBackend, createModelFitCallback, } from './tensorflow_singleton';
export { setScikit, getScikit } from './scikitjs_singleton';
7 changes: 5 additions & 2 deletions build/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
export { ModelX, ModelTypes, ModelCategories, getGeneratedStatefulFunction, sumPreviousRows, ModelX as JSONModel, } from './model';
export { getModel, getModelFromJSONM, getModelTrainingOptions, } from './jsonm';
export { getDataSet, } from './dataset';
export * as Data from '@jsonstack/data/src/index';
export * as Model from '@jsonstack/model/src/index';
export { getAutoFeatures, autoAssignFeatureColumns, } from './features';
export * as Data from '@jsonstack/data';
export * as Model from '@jsonstack/model';
export { setBackend, getBackend, createModelFitCallback, } from './tensorflow_singleton';
export { setScikit, getScikit } from './scikitjs_singleton';
34 changes: 25 additions & 9 deletions build/jsonm.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ModelX, ModelTypes, ModelConfiguration } from './model';
import { Data, Datum } from '@jsonstack/data/src/DataSet';
import { Data, Datum } from '@jsonstack/data';
import { TrainingProgressCallback } from './constants';
import { JDS } from './dataset';
import { AutoFeature } from './features';
Expand Down Expand Up @@ -30,8 +30,24 @@ export declare type JML = {
forecast_date_format?: string;
forecast_date_time_zone?: string;
};
export declare type ModelDataOptions = {
inputs: string[];
outputs: string[];
data: JDS | Data;
};
export declare function getModelFromJSONM(jml?: JML): Promise<ModelX>;
export declare const getModel: typeof getModelFromJSONM;
/**
* Splits into training and prediction data
* @param options.inputs - list of inputs
* @param options.outputs - list of outputs
* @param options.data - data to split into training and prediction data
* @returns two objects (trainingData and predictionData)
*/
export declare function splitTrainingPredictionData(options?: ModelDataOptions): Promise<{
trainingData: Data;
predictionData: Data;
}>;
export declare function getModelTrainingOptions({ accuracy_target }?: {
accuracy_target?: number;
}): {
Expand Down Expand Up @@ -62,8 +78,8 @@ export declare function getModelOptions(jml?: JML, datum?: Datum): {
training_size_values?: number;
training_progress_callback?: TrainingProgressCallback;
prediction_options?: import("./model").PredictModelConfig;
prediction_inputs?: Data;
trainingData?: Data;
prediction_inputs?: import("@jsonstack/data/src/DataSet").Data;
trainingData?: import("@jsonstack/data/src/DataSet").Data;
retrain_forecast_model_with_predictions?: boolean;
prediction_inputs_next_value_functions?: import("./model").GeneratedFunctionDefinitionsList;
prediction_timeseries_time_zone?: string;
Expand All @@ -74,20 +90,20 @@ export declare function getModelOptions(jml?: JML, datum?: Datum): {
prediction_timeseries_end_date?: string | Date;
dimension?: import("./constants").Dimensions;
entity?: import("./constants").Entity;
DataSet?: import("@jsonstack/data/src/DataSet").DataSet;
emptyObject?: Datum;
mockEncodedData?: Data;
DataSet?: any;
emptyObject?: import("@jsonstack/data/src/DataSet").Datum;
mockEncodedData?: import("@jsonstack/data/src/DataSet").Data;
x_independent_features?: string[];
y_dependent_labels?: string[];
x_raw_independent_features?: string[];
y_raw_dependent_labels?: string[];
testDataSet?: import("@jsonstack/data/src/DataSet").DataSet;
trainDataSet?: import("@jsonstack/data/src/DataSet").DataSet;
testDataSet?: any;
trainDataSet?: any;
x_indep_matrix_train?: import("@jsonstack/data/src/DataSet").Matrix;
x_indep_matrix_test?: import("@jsonstack/data/src/DataSet").Matrix;
y_dep_matrix_train?: import("@jsonstack/data/src/DataSet").Matrix;
y_dep_matrix_test?: import("@jsonstack/data/src/DataSet").Matrix;
Model?: import("@jsonstack/model/src/model_interface").TensorScriptModelInterface;
Model?: any;
training_options?: TensorScriptOptions;
validate_training_data?: boolean;
cross_validation_options?: import("./model").CrossValidationOptions;
Expand Down
18 changes: 18 additions & 0 deletions build/jsonm.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,24 @@ export async function getModelFromJSONM(jml) {
});
}
export const getModel = getModelFromJSONM;
/**
* Splits into training and prediction data
* @param options.inputs - list of inputs
* @param options.outputs - list of outputs
* @param options.data - data to split into training and prediction data
* @returns two objects (trainingData and predictionData)
*/
export async function splitTrainingPredictionData(options) {
const dataset = await getDataSet(options?.data);
const { trainingData, predictionData } = dataset.reduce((result, datum) => {
if (options?.outputs?.filter((output) => datum[output] === undefined || datum[output] === null).length)
result.predictionData.push(datum);
else
result.trainingData.push(datum);
return result;
}, { trainingData: [], predictionData: [], });
return { trainingData, predictionData };
}
export function getModelTrainingOptions({ accuracy_target } = {}) {
return {
fit: {
Expand Down

0 comments on commit 0b13cfc

Please sign in to comment.