Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro
, '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

Key to binary samples for documentation - #3211

Merged
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary
Apr 9, 2019
Merged

Key to binary samples for documentation#3211
sfilipi merged 4 commits into
dotnet:masterfrom
sfilipi:keyToBinary

Conversation

@sfilipi

Copy link
Copy Markdown
Member

Towards #1209
This adds the last batch of samples for the Conversions catalog.
The samples are KeyToVector and KeyToBinaryVector

@sfilipisfilipi added the documentation Related to documentation of ML.NET label Apr 5, 2019
/// This example demonstrates the use of MapKeyToVector by mapping keys to floats[] for multiple columns at once.
/// Because the ML.NET KeyType maps the missing value to zero, counting of uints starts at 1, so the values
/// converted to KeyTypes will appear skewed by one. See https://github.com/dotnet/machinelearning/issues/3072
public static void Example()

@sfilipisfilipiApr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have tried to add explanations, because of issue 3072.
I think we should change the mapping of the missing value to 0... #WontFix

@codecov

codecovBot commented Apr 5, 2019

Copy link
Copy Markdown

Codecov Report

Merging #3211 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #3211 +/- ##
==========================================
+ Coverage 72.62% 72.62% +<.01% 
==========================================
Files 807 807 Lines 145080 145080 Branches 16213 16213 ==========================================
+ Hits 105369 105370 +1 
Misses 35294 35294 + Partials 4417 4416 -1
FlagCoverage Δ
#Debug72.62% <ø> (ø)⬆️
#production68.17% <ø> (ø)⬆️
#test88.92% <ø> (ø)⬆️
Impacted FilesCoverage Δ
src/Microsoft.ML.Data/Data/SchemaDefinition.cs69.87% <ø> (ø)⬆️
...ML.Data/Transforms/ConversionsExtensionsCatalog.cs64.07% <ø> (ø)⬆️
src/Microsoft.ML.Transforms/ConversionsCatalog.cs83.33% <ø> (ø)⬆️
...soft.ML.Transforms/Text/WordEmbeddingsExtractor.cs87.52% <0%> (-0.91%)⬇️
...ML.Transforms/Text/StopWordsRemovingTransformer.cs86.26% <0%> (+0.15%)⬆️
...soft.ML.Data/DataLoadSave/Text/TextLoaderCursor.cs84.9% <0%> (+0.2%)⬆️
src/Microsoft.ML.Maml/MAML.cs26.21% <0%> (+1.45%)⬆️

@sfilipi

sfilipi commented Apr 5, 2019

Copy link
Copy Markdown
MemberAuthor

Referencing #3072 since the previews on those samples illustrate what might be a source of confusion. #WontFix

// TransformedData obtained post-transformation.
//
// Timeframe TimeframeVector Category CategoryVector
// 10 0,0,0,0,0,0,0,0,0,1 6 0,0,0,0,0

@wschinwschinApr 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The first Timeframe was 9 in your declaration. If no transformer is applied to Timeframe, ML.NET should not touch its value? Is my understanding correct? Or I am missing something? #Resolved

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah.... this is why i logged 3072, and had a discussion on Friday post scrum. Gets easier to think of them as strings, not numbers.

the string "0", gets mapped to the first available ulong, 1. (The ulong 0 is reserved for missing key).
The string "1" gets mapped to the next available : 2.
On our KeyType system counting starts from 1. 0 is reserved.


In reply to: 272774353 [](ancestors = 272774353)

@rogancarr

rogancarr commented Apr 8, 2019

Copy link
Copy Markdown
Contributor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

Link to Sample? #Resolved


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)


Console.WriteLine($" Timeframe TimeframeVector Category CategoryVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t{string.Join(',', featureRow.TimeframeVector)}\t\t\t{featureRow.Category}\t\t{string.Join(',', featureRow.CategoryVector)}");

@rogancarrrogancarrApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

($" [](start = 33, length = 3)

For this long string, consider doing the old-style "{0} {1}", thingOne, thingTwo etc.

As it is, it's hard to read. #Pending

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the tabs instead.


In reply to: 273242076 [](ancestors = 273242076)

@rogancarrrogancarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just a few small comments.


// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToVector(
new[]{

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new[]{ [](start = 16, length = 6)

nit: maybe keep this ("new[]{") on the previous line, or indent the next two. #Resolved

/// Marks member as <see cref="KeyDataViewType"/>. The <paramref name="count"/> should be set to
/// one more than the maximum value for the keys (to account for missing values).
/// If the values are outside of the specified cardinality they will be mapped to the missing value representation: 0.
/// </summary>

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the old description was correct, especially when the underlying values are not numbers. When that's the case, I think it might make more sense to think about cardinality instead of maximum value of keys. #Resolved

@artidoroartidoroApr 8, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe what you have written could be added as a note for the special case of integer values?


In reply to: 273266746 [](ancestors = 273266746)

@artidoroartidoro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@sfilipi

Copy link
Copy Markdown
MemberAuthor
 internal static KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this TransformsCatalog.ConversionTransforms catalog,

it is internal, it does have one yet.


In reply to: 481010536 [](ancestors = 481010536)


Refers to: src/Microsoft.ML.Transforms/ConversionsCatalog.cs:23 in 9db4dfe. [](commit_id = 9db4dfe, deletion_comment = False)

@sfilipi
sfilipi merged commit ad99bc7 into dotnet:masterApr 9, 2019
@sfilipi
sfilipi deleted the keyToBinary branch April 9, 2019 20:17
sfilipi added a commit to sfilipi/machinelearning-1 that referenced this pull request Apr 9, 2019
* adding samples for KeyToVector and KeyToBinaryVector
* typo
* Adding pointers to the KeyType.
* PR review comments
@ghostghost locked as resolved and limited conversation to collaborators Mar 23, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentationRelated to documentation of ML.NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@sfilipi@rogancarr@wschin@artidoro