@modelx/modelx
Version:
Construct AI & ML models with JSON using Typescript & Tensorflow
176 lines (175 loc) • 8.3 kB
TypeScript
import { Dimensions } from './constants';
import * as ModelXDataTypes from '@modelx/data/src/DataSet';
export declare type UniqueDateOptions = {
start: string;
end: string;
time_zone: string;
weekday?: string | number;
};
/**
* Returns an array of JavaScript Dates by Month within a range of ISO dates
* @example
getUniqueYears({ start: '2018-01-01', end: '2018-03-01', time_zone: 'America/Los_Angeles', }) => [
2017-01-01T08:00:00.000Z,
2018-01-01T08:00:00.000Z,
2019-01-01T08:00:00.000Z ]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueYears({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Month within a range of ISO dates
* @example
getUniqueMonths({ start: '2018-01-01', end: '2018-03-01', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T08:00:00.000Z,
2018-02-01T08:00:00.000Z,
2018-03-01T08:00:00.000Z ]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueMonths({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Weeks within a range of ISO dates
* @example
getUniqueMonths({ start: '2018-01-01', end: '2018-01-31', weekday:'monday', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T08:00:00.000Z,
2018-01-08T08:00:00.000Z,
2018-01-15T08:00:00.000Z,
2018-01-22T08:00:00.000Z,
2018-01-29T08:00:00.000Z ]]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @param {String|Number} options.weekday - 'monday' or '1'
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueWeeks({ start, end, weekday, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Days within a range of ISO dates
* @example
getUniqueMonths({ start: '2018-01-01', end: '2018-01-31', weekday:'monday', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T08:00:00.000Z,
2018-01-02T08:00:00.000Z,
...
2018-01-29T08:00:00.000Z,
2018-01-30T08:00:00.000Z,
2018-01-31T08:00:00.000Z ]]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueDays({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Hours within a range of ISO dates
* @example
getUniqueHours({ start: '2018-01-01', end: '2018-01-31', weekday:'monday', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T00:08:00.000Z,
2018-01-01T01:09:00.000Z,
...
2018-01-01T21:00:00.000Z,
2018-01-01T22:00:00.000Z,
2018-01-01T23:00:00.000Z ]]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueHours({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Hours within a range of ISO dates
* @example
getUniqueHours({ start: '2018-01-01', end: '2018-01-31', weekday:'monday', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T00:08:00.000Z,
2018-01-01T01:09:00.000Z,
...
2018-01-01T21:00:00.000Z,
2018-01-01T22:00:00.000Z,
2018-01-01T23:00:00.000Z ]]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueMinutes({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an array of JavaScript Dates by Hours within a range of ISO dates
* @example
getUniqueSeconds({ start: '2018-01-01', end: '2018-01-31', weekday:'monday', time_zone: 'America/Los_Angeles', }) => [
2018-01-01T00:08:00.000Z,
2018-01-01T01:09:00.000Z,
...
2018-01-01T21:00:00.000Z,
2018-01-01T22:00:00.000Z,
2018-01-01T23:00:00.000Z ]]
* @param {String} options.start - start of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.end - end of date range (ISO Date String) e.g. 2018-05-31
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date[]} Array of JavaScript Dates
*/
export declare function getUniqueSeconds({ start, end, time_zone, }: UniqueDateOptions): Date[];
/**
* Returns an end date from a start date by dimension
* @example
getEndDate({ start: '2018-01-01', dimension: 'monthly', time_zone: 'America/Los_Angeles', }) => 2018-02-01T00:08:00.000Z
getEndDate({ start: '2018-01-01', dimension: 'weekly', time_zone: 'America/Los_Angeles', }) => 2018-01-08T00:08:00.000Z
getEndDate({ start: '2018-01-01', dimension: 'daily', time_zone: 'America/Los_Angeles', }) => 2018-01-02T00:08:00.000Z
getEndDate({ start: '2018-01-01', dimension: 'hourly', time_zone: 'America/Los_Angeles', }) => 2018-01-01T00:09:00.000Z
* @param {Date} options.start_date - start of date
* @param {String} options.dimension - monthly, weekly, daily, hourly
* @param {String} options.time_zone - valid IANA time_zone e.g. America/Los_Angeles
* @returns {Date} JavaScript end date
*/
export declare function getEndDate(options: {
start_date: Date;
dimension: string;
time_zone: string;
}): Date;
export declare const dimensionDates: {
[Dimensions.YEARLY]: typeof getUniqueYears;
[Dimensions.MONTHLY]: typeof getUniqueMonths;
[Dimensions.WEEKLY]: typeof getUniqueWeeks;
[Dimensions.DAILY]: typeof getUniqueDays;
[Dimensions.HOURLY]: typeof getUniqueHours;
[Dimensions.MINUTELY]: typeof getUniqueMinutes;
[Dimensions.SECONDLY]: typeof getUniqueSeconds;
};
export declare function getEncodedFeatures({ DataSet, features, }: {
DataSet: ModelXDataTypes.DataSet;
features?: string[];
}): any[];
export declare enum AutoFeatureTypes {
TEXT = "text-encoded",
LABEL = "text-label",
BOOLEAN = "boolean",
NUMBER = "number",
AUTO = "auto-detect"
}
export declare type AutoFeature = {
feature_field_type: AutoFeatureTypes;
feature_field_name: string;
};
export declare type AutoFeatureAutoAssignmentOptions = {
independent_variables?: string[];
dependent_variables?: string[];
datum?: ModelXDataTypes.Datum;
input_independent_features?: AutoFeature[];
output_dependent_features?: AutoFeature[];
training_feature_column_options?: ModelXDataTypes.DataSetTransform;
preprocessing_feature_column_options?: ModelXDataTypes.DataSetTransform;
features?: AutoFeature[];
};
export declare function getAutoFeatures({ variables, datum }: {
variables: string[];
datum: ModelXDataTypes.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;
};