API reference - Samples for Transforms #1209

Description

@sfilipi

We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

MLContext Catalogs

CatalogTotal APIsSamples OwnerSamples Status / ETA
MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
MLContext.Transforms.Categorical2ZeeshanADone v1
MLContext.Transforms.Conversion6SenjaDoneV1
MLContext.Transforms.FeatureSelection4ZeeshanADone v1
MLContext.Transforms.TimeSeries4SenjaDone V1
MLContext.Transforms.Text29ZeeshanADone V1
MLContext.Data10SenjaDoneV1
MLContext.Model (root)4ZeeshanS DoneV1

P0+P1 Public API (extension methods) per Catalog

MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
Normalize1Done.1 #3244Ivan
CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
IndicateMissingValues2Done-v1 #3275Artidoro
ReplaceMissingValues2Done-v1 #3275Artidoro
ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
ResizeImages2Yes. Example not displaying.1 #3165Abhishek
ConvertToImage2Yes.1 #3165Abhishek
IidChangePointEstimator11- DoneSenja
IidSpikeEstimator11 - DoneSenja
SsaChangePointEstimator11 - DoneSenja
SsaSpikeEstimator11 - DoneSenja
ApplyOnnxModel3DoneV1#3349Gani
DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
NormalizeGlobalContrast1Done0 #3232Ivan
NormalizeLpNorm1Done.0 #3232Ivan
ApproximatedKernelMap1Done0 #3232Ivan
mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
OneHotEncoding22 #3179Abhishek
OneHotHashEncoding22 #3179Abhishek
MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
Hash2can't find the APIDoneSenja
ConvertType2Yes, needs improvement.DoneSenja
MapKeyToValue2Yes, needs improvement.DoneSenja
MapKeyToVector2Yes, needs improvement.DoneSenja
MapValueToKey2Yes.DoneSenja
MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
SelectFeaturesBasedOnCount22 #3184Abhishek
MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
FeaturizeText2#3120Zeeshan
TokenizeCharacters1#3123Zeeshan
NormalizeText1#3133Zeeshan
ExtractWordEmbeddings1#3142Zeeshan
TokenizeWords1#3156Zeeshan
ProduceNgrams3#3177Zeeshan
RemoveDefaultStopWords2#3156Zeeshan
RemoveStopWords2#3156Zeeshan
ProduceWordBags3#3183Zeeshan
ProduceHashedWordBags3#3183Zeeshan
ProduceHashedNgrams3#3177Zeeshan
LatentDirichletAllocation2#3191Zeeshan

For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

MLContext.DataNum OverloadsDocumentationSampleAPI Owner
LoadFromEnumerable1Done.1 - Done.Senja
CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
BootstrapSample1Done.1 - Done.Senja
Cache1Done.1 - Done.Senja
FilterRowsByColumn1Done.1 - Done.Senja
FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
FilterRowsByMissingValues1Done.1 - Done.Senja
ShuffleRows1Done.1 - Done.Senja
SkipRows1Done.1 - Done.Senja
TakeRows1Done.1 - Done.Senja
OtherNum OverloadsDocumentationSampleAPI Owner
Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

Metadata

Metadata

Labels

documentationRelated to documentation of ML.NET

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    API reference - Samples for Transforms #1209

    Description

    @sfilipi

    We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

    Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

    MLContext Catalogs

    CatalogTotal APIsSamples OwnerSamples Status / ETA
    MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
    MLContext.Transforms.Categorical2ZeeshanADone v1
    MLContext.Transforms.Conversion6SenjaDoneV1
    MLContext.Transforms.FeatureSelection4ZeeshanADone v1
    MLContext.Transforms.TimeSeries4SenjaDone V1
    MLContext.Transforms.Text29ZeeshanADone V1
    MLContext.Data10SenjaDoneV1
    MLContext.Model (root)4ZeeshanS DoneV1

    P0+P1 Public API (extension methods) per Catalog

    MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
    CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
    Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
    DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
    SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
    Normalize1Done.1 #3244Ivan
    CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
    IndicateMissingValues2Done-v1 #3275Artidoro
    ReplaceMissingValues2Done-v1 #3275Artidoro
    ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
    LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
    ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
    ResizeImages2Yes. Example not displaying.1 #3165Abhishek
    ConvertToImage2Yes.1 #3165Abhishek
    IidChangePointEstimator11- DoneSenja
    IidSpikeEstimator11 - DoneSenja
    SsaChangePointEstimator11 - DoneSenja
    SsaSpikeEstimator11 - DoneSenja
    ApplyOnnxModel3DoneV1#3349Gani
    DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
    NormalizeGlobalContrast1Done0 #3232Ivan
    NormalizeLpNorm1Done.0 #3232Ivan
    ApproximatedKernelMap1Done0 #3232Ivan
    mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
    MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
    OneHotEncoding22 #3179Abhishek
    OneHotHashEncoding22 #3179Abhishek
    MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
    Hash2can't find the APIDoneSenja
    ConvertType2Yes, needs improvement.DoneSenja
    MapKeyToValue2Yes, needs improvement.DoneSenja
    MapKeyToVector2Yes, needs improvement.DoneSenja
    MapValueToKey2Yes.DoneSenja
    MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
    MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
    SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
    SelectFeaturesBasedOnCount22 #3184Abhishek
    MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
    FeaturizeText2#3120Zeeshan
    TokenizeCharacters1#3123Zeeshan
    NormalizeText1#3133Zeeshan
    ExtractWordEmbeddings1#3142Zeeshan
    TokenizeWords1#3156Zeeshan
    ProduceNgrams3#3177Zeeshan
    RemoveDefaultStopWords2#3156Zeeshan
    RemoveStopWords2#3156Zeeshan
    ProduceWordBags3#3183Zeeshan
    ProduceHashedWordBags3#3183Zeeshan
    ProduceHashedNgrams3#3177Zeeshan
    LatentDirichletAllocation2#3191Zeeshan

    For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

    MLContext.DataNum OverloadsDocumentationSampleAPI Owner
    LoadFromEnumerable1Done.1 - Done.Senja
    CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
    BootstrapSample1Done.1 - Done.Senja
    Cache1Done.1 - Done.Senja
    FilterRowsByColumn1Done.1 - Done.Senja
    FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
    FilterRowsByMissingValues1Done.1 - Done.Senja
    ShuffleRows1Done.1 - Done.Senja
    SkipRows1Done.1 - Done.Senja
    TakeRows1Done.1 - Done.Senja
    OtherNum OverloadsDocumentationSampleAPI Owner
    Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

    Metadata

    Metadata

    Labels

    documentationRelated to documentation of ML.NET

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content

      API reference - Samples for Transforms #1209

      Description

      @sfilipi

      We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

      Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

      MLContext Catalogs

      CatalogTotal APIsSamples OwnerSamples Status / ETA
      MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
      MLContext.Transforms.Categorical2ZeeshanADone v1
      MLContext.Transforms.Conversion6SenjaDoneV1
      MLContext.Transforms.FeatureSelection4ZeeshanADone v1
      MLContext.Transforms.TimeSeries4SenjaDone V1
      MLContext.Transforms.Text29ZeeshanADone V1
      MLContext.Data10SenjaDoneV1
      MLContext.Model (root)4ZeeshanS DoneV1

      P0+P1 Public API (extension methods) per Catalog

      MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
      CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
      Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
      DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
      SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
      Normalize1Done.1 #3244Ivan
      CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
      IndicateMissingValues2Done-v1 #3275Artidoro
      ReplaceMissingValues2Done-v1 #3275Artidoro
      ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
      LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
      ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
      ResizeImages2Yes. Example not displaying.1 #3165Abhishek
      ConvertToImage2Yes.1 #3165Abhishek
      IidChangePointEstimator11- DoneSenja
      IidSpikeEstimator11 - DoneSenja
      SsaChangePointEstimator11 - DoneSenja
      SsaSpikeEstimator11 - DoneSenja
      ApplyOnnxModel3DoneV1#3349Gani
      DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
      NormalizeGlobalContrast1Done0 #3232Ivan
      NormalizeLpNorm1Done.0 #3232Ivan
      ApproximatedKernelMap1Done0 #3232Ivan
      mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
      MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
      OneHotEncoding22 #3179Abhishek
      OneHotHashEncoding22 #3179Abhishek
      MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
      Hash2can't find the APIDoneSenja
      ConvertType2Yes, needs improvement.DoneSenja
      MapKeyToValue2Yes, needs improvement.DoneSenja
      MapKeyToVector2Yes, needs improvement.DoneSenja
      MapValueToKey2Yes.DoneSenja
      MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
      MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
      SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
      SelectFeaturesBasedOnCount22 #3184Abhishek
      MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
      FeaturizeText2#3120Zeeshan
      TokenizeCharacters1#3123Zeeshan
      NormalizeText1#3133Zeeshan
      ExtractWordEmbeddings1#3142Zeeshan
      TokenizeWords1#3156Zeeshan
      ProduceNgrams3#3177Zeeshan
      RemoveDefaultStopWords2#3156Zeeshan
      RemoveStopWords2#3156Zeeshan
      ProduceWordBags3#3183Zeeshan
      ProduceHashedWordBags3#3183Zeeshan
      ProduceHashedNgrams3#3177Zeeshan
      LatentDirichletAllocation2#3191Zeeshan

      For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

      MLContext.DataNum OverloadsDocumentationSampleAPI Owner
      LoadFromEnumerable1Done.1 - Done.Senja
      CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
      BootstrapSample1Done.1 - Done.Senja
      Cache1Done.1 - Done.Senja
      FilterRowsByColumn1Done.1 - Done.Senja
      FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
      FilterRowsByMissingValues1Done.1 - Done.Senja
      ShuffleRows1Done.1 - Done.Senja
      SkipRows1Done.1 - Done.Senja
      TakeRows1Done.1 - Done.Senja
      OtherNum OverloadsDocumentationSampleAPI Owner
      Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

      Metadata

      Metadata

      Labels

      documentationRelated to documentation of ML.NET

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content

        API reference - Samples for Transforms #1209

        Description

        @sfilipi

        We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

        Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

        MLContext Catalogs

        CatalogTotal APIsSamples OwnerSamples Status / ETA
        MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
        MLContext.Transforms.Categorical2ZeeshanADone v1
        MLContext.Transforms.Conversion6SenjaDoneV1
        MLContext.Transforms.FeatureSelection4ZeeshanADone v1
        MLContext.Transforms.TimeSeries4SenjaDone V1
        MLContext.Transforms.Text29ZeeshanADone V1
        MLContext.Data10SenjaDoneV1
        MLContext.Model (root)4ZeeshanS DoneV1

        P0+P1 Public API (extension methods) per Catalog

        MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
        CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
        Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
        DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
        SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
        Normalize1Done.1 #3244Ivan
        CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
        IndicateMissingValues2Done-v1 #3275Artidoro
        ReplaceMissingValues2Done-v1 #3275Artidoro
        ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
        LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
        ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
        ResizeImages2Yes. Example not displaying.1 #3165Abhishek
        ConvertToImage2Yes.1 #3165Abhishek
        IidChangePointEstimator11- DoneSenja
        IidSpikeEstimator11 - DoneSenja
        SsaChangePointEstimator11 - DoneSenja
        SsaSpikeEstimator11 - DoneSenja
        ApplyOnnxModel3DoneV1#3349Gani
        DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
        NormalizeGlobalContrast1Done0 #3232Ivan
        NormalizeLpNorm1Done.0 #3232Ivan
        ApproximatedKernelMap1Done0 #3232Ivan
        mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
        MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
        OneHotEncoding22 #3179Abhishek
        OneHotHashEncoding22 #3179Abhishek
        MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
        Hash2can't find the APIDoneSenja
        ConvertType2Yes, needs improvement.DoneSenja
        MapKeyToValue2Yes, needs improvement.DoneSenja
        MapKeyToVector2Yes, needs improvement.DoneSenja
        MapValueToKey2Yes.DoneSenja
        MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
        MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
        SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
        SelectFeaturesBasedOnCount22 #3184Abhishek
        MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
        FeaturizeText2#3120Zeeshan
        TokenizeCharacters1#3123Zeeshan
        NormalizeText1#3133Zeeshan
        ExtractWordEmbeddings1#3142Zeeshan
        TokenizeWords1#3156Zeeshan
        ProduceNgrams3#3177Zeeshan
        RemoveDefaultStopWords2#3156Zeeshan
        RemoveStopWords2#3156Zeeshan
        ProduceWordBags3#3183Zeeshan
        ProduceHashedWordBags3#3183Zeeshan
        ProduceHashedNgrams3#3177Zeeshan
        LatentDirichletAllocation2#3191Zeeshan

        For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

        MLContext.DataNum OverloadsDocumentationSampleAPI Owner
        LoadFromEnumerable1Done.1 - Done.Senja
        CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
        BootstrapSample1Done.1 - Done.Senja
        Cache1Done.1 - Done.Senja
        FilterRowsByColumn1Done.1 - Done.Senja
        FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
        FilterRowsByMissingValues1Done.1 - Done.Senja
        ShuffleRows1Done.1 - Done.Senja
        SkipRows1Done.1 - Done.Senja
        TakeRows1Done.1 - Done.Senja
        OtherNum OverloadsDocumentationSampleAPI Owner
        Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

        Metadata

        Metadata

        Labels

        documentationRelated to documentation of ML.NET

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content

          API reference - Samples for Transforms #1209

          Description

          @sfilipi

          We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

          Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

          MLContext Catalogs

          CatalogTotal APIsSamples OwnerSamples Status / ETA
          MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
          MLContext.Transforms.Categorical2ZeeshanADone v1
          MLContext.Transforms.Conversion6SenjaDoneV1
          MLContext.Transforms.FeatureSelection4ZeeshanADone v1
          MLContext.Transforms.TimeSeries4SenjaDone V1
          MLContext.Transforms.Text29ZeeshanADone V1
          MLContext.Data10SenjaDoneV1
          MLContext.Model (root)4ZeeshanS DoneV1

          P0+P1 Public API (extension methods) per Catalog

          MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
          CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
          Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
          DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
          SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
          Normalize1Done.1 #3244Ivan
          CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
          IndicateMissingValues2Done-v1 #3275Artidoro
          ReplaceMissingValues2Done-v1 #3275Artidoro
          ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
          LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
          ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
          ResizeImages2Yes. Example not displaying.1 #3165Abhishek
          ConvertToImage2Yes.1 #3165Abhishek
          IidChangePointEstimator11- DoneSenja
          IidSpikeEstimator11 - DoneSenja
          SsaChangePointEstimator11 - DoneSenja
          SsaSpikeEstimator11 - DoneSenja
          ApplyOnnxModel3DoneV1#3349Gani
          DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
          NormalizeGlobalContrast1Done0 #3232Ivan
          NormalizeLpNorm1Done.0 #3232Ivan
          ApproximatedKernelMap1Done0 #3232Ivan
          mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
          MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
          OneHotEncoding22 #3179Abhishek
          OneHotHashEncoding22 #3179Abhishek
          MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
          Hash2can't find the APIDoneSenja
          ConvertType2Yes, needs improvement.DoneSenja
          MapKeyToValue2Yes, needs improvement.DoneSenja
          MapKeyToVector2Yes, needs improvement.DoneSenja
          MapValueToKey2Yes.DoneSenja
          MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
          MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
          SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
          SelectFeaturesBasedOnCount22 #3184Abhishek
          MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
          FeaturizeText2#3120Zeeshan
          TokenizeCharacters1#3123Zeeshan
          NormalizeText1#3133Zeeshan
          ExtractWordEmbeddings1#3142Zeeshan
          TokenizeWords1#3156Zeeshan
          ProduceNgrams3#3177Zeeshan
          RemoveDefaultStopWords2#3156Zeeshan
          RemoveStopWords2#3156Zeeshan
          ProduceWordBags3#3183Zeeshan
          ProduceHashedWordBags3#3183Zeeshan
          ProduceHashedNgrams3#3177Zeeshan
          LatentDirichletAllocation2#3191Zeeshan

          For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

          MLContext.DataNum OverloadsDocumentationSampleAPI Owner
          LoadFromEnumerable1Done.1 - Done.Senja
          CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
          BootstrapSample1Done.1 - Done.Senja
          Cache1Done.1 - Done.Senja
          FilterRowsByColumn1Done.1 - Done.Senja
          FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
          FilterRowsByMissingValues1Done.1 - Done.Senja
          ShuffleRows1Done.1 - Done.Senja
          SkipRows1Done.1 - Done.Senja
          TakeRows1Done.1 - Done.Senja
          OtherNum OverloadsDocumentationSampleAPI Owner
          Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

          Metadata

          Metadata

          Labels

          documentationRelated to documentation of ML.NET

          Type

          No type

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content

            API reference - Samples for Transforms #1209

            Description

            @sfilipi

            We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

            Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

            MLContext Catalogs

            CatalogTotal APIsSamples OwnerSamples Status / ETA
            MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
            MLContext.Transforms.Categorical2ZeeshanADone v1
            MLContext.Transforms.Conversion6SenjaDoneV1
            MLContext.Transforms.FeatureSelection4ZeeshanADone v1
            MLContext.Transforms.TimeSeries4SenjaDone V1
            MLContext.Transforms.Text29ZeeshanADone V1
            MLContext.Data10SenjaDoneV1
            MLContext.Model (root)4ZeeshanS DoneV1

            P0+P1 Public API (extension methods) per Catalog

            MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
            CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
            Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
            DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
            SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
            Normalize1Done.1 #3244Ivan
            CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
            IndicateMissingValues2Done-v1 #3275Artidoro
            ReplaceMissingValues2Done-v1 #3275Artidoro
            ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
            LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
            ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
            ResizeImages2Yes. Example not displaying.1 #3165Abhishek
            ConvertToImage2Yes.1 #3165Abhishek
            IidChangePointEstimator11- DoneSenja
            IidSpikeEstimator11 - DoneSenja
            SsaChangePointEstimator11 - DoneSenja
            SsaSpikeEstimator11 - DoneSenja
            ApplyOnnxModel3DoneV1#3349Gani
            DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
            NormalizeGlobalContrast1Done0 #3232Ivan
            NormalizeLpNorm1Done.0 #3232Ivan
            ApproximatedKernelMap1Done0 #3232Ivan
            mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
            MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
            OneHotEncoding22 #3179Abhishek
            OneHotHashEncoding22 #3179Abhishek
            MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
            Hash2can't find the APIDoneSenja
            ConvertType2Yes, needs improvement.DoneSenja
            MapKeyToValue2Yes, needs improvement.DoneSenja
            MapKeyToVector2Yes, needs improvement.DoneSenja
            MapValueToKey2Yes.DoneSenja
            MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
            MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
            SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
            SelectFeaturesBasedOnCount22 #3184Abhishek
            MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
            FeaturizeText2#3120Zeeshan
            TokenizeCharacters1#3123Zeeshan
            NormalizeText1#3133Zeeshan
            ExtractWordEmbeddings1#3142Zeeshan
            TokenizeWords1#3156Zeeshan
            ProduceNgrams3#3177Zeeshan
            RemoveDefaultStopWords2#3156Zeeshan
            RemoveStopWords2#3156Zeeshan
            ProduceWordBags3#3183Zeeshan
            ProduceHashedWordBags3#3183Zeeshan
            ProduceHashedNgrams3#3177Zeeshan
            LatentDirichletAllocation2#3191Zeeshan

            For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

            MLContext.DataNum OverloadsDocumentationSampleAPI Owner
            LoadFromEnumerable1Done.1 - Done.Senja
            CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
            BootstrapSample1Done.1 - Done.Senja
            Cache1Done.1 - Done.Senja
            FilterRowsByColumn1Done.1 - Done.Senja
            FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
            FilterRowsByMissingValues1Done.1 - Done.Senja
            ShuffleRows1Done.1 - Done.Senja
            SkipRows1Done.1 - Done.Senja
            TakeRows1Done.1 - Done.Senja
            OtherNum OverloadsDocumentationSampleAPI Owner
            Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

            Metadata

            Metadata

            Labels

            documentationRelated to documentation of ML.NET

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              API reference - Samples for Transforms #1209

              Description

              @sfilipi

              We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

              Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

              MLContext Catalogs

              CatalogTotal APIsSamples OwnerSamples Status / ETA
              MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
              MLContext.Transforms.Categorical2ZeeshanADone v1
              MLContext.Transforms.Conversion6SenjaDoneV1
              MLContext.Transforms.FeatureSelection4ZeeshanADone v1
              MLContext.Transforms.TimeSeries4SenjaDone V1
              MLContext.Transforms.Text29ZeeshanADone V1
              MLContext.Data10SenjaDoneV1
              MLContext.Model (root)4ZeeshanS DoneV1

              P0+P1 Public API (extension methods) per Catalog

              MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
              CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
              Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
              DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
              SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
              Normalize1Done.1 #3244Ivan
              CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
              IndicateMissingValues2Done-v1 #3275Artidoro
              ReplaceMissingValues2Done-v1 #3275Artidoro
              ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
              LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
              ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
              ResizeImages2Yes. Example not displaying.1 #3165Abhishek
              ConvertToImage2Yes.1 #3165Abhishek
              IidChangePointEstimator11- DoneSenja
              IidSpikeEstimator11 - DoneSenja
              SsaChangePointEstimator11 - DoneSenja
              SsaSpikeEstimator11 - DoneSenja
              ApplyOnnxModel3DoneV1#3349Gani
              DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
              NormalizeGlobalContrast1Done0 #3232Ivan
              NormalizeLpNorm1Done.0 #3232Ivan
              ApproximatedKernelMap1Done0 #3232Ivan
              mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
              MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
              OneHotEncoding22 #3179Abhishek
              OneHotHashEncoding22 #3179Abhishek
              MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
              Hash2can't find the APIDoneSenja
              ConvertType2Yes, needs improvement.DoneSenja
              MapKeyToValue2Yes, needs improvement.DoneSenja
              MapKeyToVector2Yes, needs improvement.DoneSenja
              MapValueToKey2Yes.DoneSenja
              MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
              MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
              SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
              SelectFeaturesBasedOnCount22 #3184Abhishek
              MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
              FeaturizeText2#3120Zeeshan
              TokenizeCharacters1#3123Zeeshan
              NormalizeText1#3133Zeeshan
              ExtractWordEmbeddings1#3142Zeeshan
              TokenizeWords1#3156Zeeshan
              ProduceNgrams3#3177Zeeshan
              RemoveDefaultStopWords2#3156Zeeshan
              RemoveStopWords2#3156Zeeshan
              ProduceWordBags3#3183Zeeshan
              ProduceHashedWordBags3#3183Zeeshan
              ProduceHashedNgrams3#3177Zeeshan
              LatentDirichletAllocation2#3191Zeeshan

              For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

              MLContext.DataNum OverloadsDocumentationSampleAPI Owner
              LoadFromEnumerable1Done.1 - Done.Senja
              CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
              BootstrapSample1Done.1 - Done.Senja
              Cache1Done.1 - Done.Senja
              FilterRowsByColumn1Done.1 - Done.Senja
              FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
              FilterRowsByMissingValues1Done.1 - Done.Senja
              ShuffleRows1Done.1 - Done.Senja
              SkipRows1Done.1 - Done.Senja
              TakeRows1Done.1 - Done.Senja
              OtherNum OverloadsDocumentationSampleAPI Owner
              Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

              Metadata

              Metadata

              Labels

              documentationRelated to documentation of ML.NET

              Type

              No type

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                API reference - Samples for Transforms #1209

                Description

                @sfilipi

                We need to add samples on how to use the new transformer, and estimators than reference those samples from the XML documentation so that in docs.microsoft.com users can copy/paste the sample and have a head-starts.

                Mot of the tests that got added as part of the transformer work are a good start for creating a sample.

                MLContext Catalogs

                CatalogTotal APIsSamples OwnerSamples Status / ETA
                MLContext.Transforms (root)19SenjaRemaining: 4 overrides for the normalizer multicolumn examples
                MLContext.Transforms.Categorical2ZeeshanADone v1
                MLContext.Transforms.Conversion6SenjaDoneV1
                MLContext.Transforms.FeatureSelection4ZeeshanADone v1
                MLContext.Transforms.TimeSeries4SenjaDone V1
                MLContext.Transforms.Text29ZeeshanADone V1
                MLContext.Data10SenjaDoneV1
                MLContext.Model (root)4ZeeshanS DoneV1

                P0+P1 Public API (extension methods) per Catalog

                MLContext.Transforms (root)Num OverloadsDocumentationSampleAPI Owner
                CopyColumns2Yes2 Can remove dependency on DatasetUtils.Zeeshan
                Concatenate1Yes, needs improvement.1 - Can remove dependency on DatasetUtils.Zeeshan
                DropColumns1Yes1 Can remove dependency on DatasetUtils.Zeeshan
                SelectColumns2Yes, needs improvement.2 - Can remove dependency on DatasetUtils.Zeeshan
                Normalize1Done.1 #3244Ivan
                CustomMapping1Yes, needs improvement.Done-v1 #3275Artidoro
                IndicateMissingValues2Done-v1 #3275Artidoro
                ReplaceMissingValues2Done-v1 #3275Artidoro
                ConvertToGrayscale1Yes, needs fixes. Example not displaying.1 #3165Abhishek
                LoadImages1Yes, needs fixes. Example not displaying.1 #3165Abhishek
                ExtractPixels2Yes, needs fixes. Example not displaying.1 #3165Abhishek
                ResizeImages2Yes. Example not displaying.1 #3165Abhishek
                ConvertToImage2Yes.1 #3165Abhishek
                IidChangePointEstimator11- DoneSenja
                IidSpikeEstimator11 - DoneSenja
                SsaChangePointEstimator11 - DoneSenja
                SsaSpikeEstimator11 - DoneSenja
                ApplyOnnxModel3DoneV1#3349Gani
                DnnFeaturizeImage1Yes, needs improvement.1 - DoneSenja
                NormalizeGlobalContrast1Done0 #3232Ivan
                NormalizeLpNorm1Done.0 #3232Ivan
                ApproximatedKernelMap1Done0 #3232Ivan
                mlContext.Transforms. CalculateFeatureContribution1Yes, needs improvementRogan
                MLContext.Transforms.CategoricalNum OverloadsDocumentationSampleAPI Owner
                OneHotEncoding22 #3179Abhishek
                OneHotHashEncoding22 #3179Abhishek
                MLContext.Transforms.ConversionNum OverloadsDocumentationSampleAPI Owner
                Hash2can't find the APIDoneSenja
                ConvertType2Yes, needs improvement.DoneSenja
                MapKeyToValue2Yes, needs improvement.DoneSenja
                MapKeyToVector2Yes, needs improvement.DoneSenja
                MapValueToKey2Yes.DoneSenja
                MapKeyToBinaryVector2Yes, needs improvement.DoneSenja
                MLContext.Transforms.FeatureSelectionNum OverloadsDocumentationSampleAPI Owner
                SelectFeaturesBasedOnMutualInformation2need a better example to show MI computation. something like this 2 #3184Abhishek
                SelectFeaturesBasedOnCount22 #3184Abhishek
                MLContext.Transforms.TextNum OverloadsDocumentationSampleAPI Owner
                FeaturizeText2#3120Zeeshan
                TokenizeCharacters1#3123Zeeshan
                NormalizeText1#3133Zeeshan
                ExtractWordEmbeddings1#3142Zeeshan
                TokenizeWords1#3156Zeeshan
                ProduceNgrams3#3177Zeeshan
                RemoveDefaultStopWords2#3156Zeeshan
                RemoveStopWords2#3156Zeeshan
                ProduceWordBags3#3183Zeeshan
                ProduceHashedWordBags3#3183Zeeshan
                ProduceHashedNgrams3#3177Zeeshan
                LatentDirichletAllocation2#3191Zeeshan

                For the Data catalog, all API's documentations needs to be augmented with suggestions for when would one use this API.

                MLContext.DataNum OverloadsDocumentationSampleAPI Owner
                LoadFromEnumerable1Done.1 - Done.Senja
                CreateEnumerable2Done. The second overload of this API is a P4 scenario. the use case for that API would be: users has a model which has slot names preserved for the features, and when they load the models, they also get the schema out of the loaded model and pass that schema, together with the TRow type they want to load the data to this API. This API will then populate the Annotations (former metadata) for the feature column.1Senja
                BootstrapSample1Done.1 - Done.Senja
                Cache1Done.1 - Done.Senja
                FilterRowsByColumn1Done.1 - Done.Senja
                FilterRowsByKeyColumnFraction1Done.1 - Done.Senja
                FilterRowsByMissingValues1Done.1 - Done.Senja
                ShuffleRows1Done.1 - Done.Senja
                SkipRows1Done.1 - Done.Senja
                TakeRows1Done.1 - Done.Senja
                OtherNum OverloadsDocumentationSampleAPI Owner
                Permutation Feature Importance4Yes, but needs workYes, but needs workRogan

                Metadata

                Metadata

                Labels

                documentationRelated to documentation of ML.NET

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions