Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MLModelTrainer"/> class.
        /// </summary>
        /// <param name="userConnection">The user connection.</param>
        /// <param name="modelConfig">The model configuration.</param>
        public MLModelTrainer(UserConnection userConnection, MLModelConfig modelConfig)
        {
            userConnection.CheckArgumentNull("userConnection");
            modelConfig.CheckArgumentNull("modelConfig");
            modelConfig.Id.CheckArgumentEmpty("MLModelConfig.Id");
            _userConnection = userConnection;
            _modelConfig    = modelConfig;
            _proxy          = InitServiceProxy();
            ConstructorArgument userConnectionArg = new ConstructorArgument("userConnection", _userConnection);

            _modelEventsNotifier = ClassFactory.Get <MLModelEventsNotifier>(userConnectionArg);
            _metadataGenerator   = ClassFactory.Get <IMLMetadataGenerator>();
            _queryBuilder        = ClassFactory.Get <IMLModelQueryBuilder>(userConnectionArg);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sets human-readable localized captions and display values for feature weights.
        /// </summary>
        /// <param name="userConnection">The user connection.</param>
        /// <param name="features">The features.</param>
        /// <param name="modelId">The model identifier.</param>
        /// <param name="isPrediction"><c>true</c> if it's for prediction, false - for training.</param>
        public static void LocalizeFeatures(UserConnection userConnection, List <LocalizedFeatureWeight> features,
                                            Guid modelId, bool isPrediction)
        {
            IMLModelLoader loader = ClassFactory.Get <IMLModelLoader>();

            if (!loader.TryLoadModel(userConnection, modelId, out MLModelConfig model))
            {
                return;
            }
            loader.LoadModelMetadataCaptions(userConnection, model);
            var modelQueryBuilder = ClassFactory.Get <IMLModelQueryBuilder>(
                new ConstructorArgument("userConnection", userConnection));
            var query  = isPrediction ? model.BatchPredictionQuery : model.TrainingSetQuery;
            var select = modelQueryBuilder.BuildSelect(model.EntitySchemaId, query, model.ColumnExpressions);
            IMLMetadataGenerator metadataGenerator = ClassFactory.Get <IMLMetadataGenerator>();
            var metadata = metadataGenerator.GenerateMetadata(select, model.MetaData, fillColumnsInfo: true);
            var columnExpressionMapping = modelQueryBuilder.GetColumnExpressionMapping(model.EntitySchemaId,
                                                                                       query, model.ColumnExpressions);

            FillCaptions(userConnection, features, columnExpressionMapping, model.EntitySchemaId, metadata);
            FillDisplayValues(userConnection, features, columnExpressionMapping, model.EntitySchemaId, metadata);
        }