本文整理汇总了C#中Descriptor.Convert方法的典型用法代码示例。如果您正苦于以下问题:C# Descriptor.Convert方法的具体用法?C# Descriptor.Convert怎么用?C# Descriptor.Convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Descriptor
的用法示例。
在下文中一共展示了Descriptor.Convert方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Generate
/// <summary>Generates.</summary>
/// <param name="desc">The description.</param>
/// <param name="examples">The examples.</param>
/// <param name="linker">The linker.</param>
/// <returns>A Cluster.</returns>
public Cluster Generate(Descriptor desc, IEnumerable<object> examples, ILinker linker)
{
// Load data
var exampleArray = examples.ToArray();
Descriptor = desc;
Matrix X = Descriptor.Convert(examples).ToMatrix();
return GenerateClustering(X, linker, exampleArray);
}
示例2: Generate
public Cluster Generate(Descriptor descriptor, IEnumerable<object> examples, int k, IDistance metric = null)
{
var data = examples.ToArray();
Descriptor = descriptor;
Matrix X = Descriptor.Convert(examples).ToMatrix();
var assignments = Generate(X, k, metric);
return GenerateClustering(X, assignments, data);
}
示例3: Generate
public Cluster Generate(Descriptor descriptor, IEnumerable<object> examples, int k, IDistance metric = null)
{
var data = examples.ToArray();
Descriptor = descriptor;
X = Descriptor.Convert(data).ToMatrix();
// generate assignments
var assignments = Generate(X, k, metric);
// begin packing objects into clusters
var objects = new List<object>[k];
for (int i = 0; i < assignments.Length; i++)
{
var a = assignments[i];
if (objects[a] == null) objects[a] = new List<object>();
objects[a].Add(data[i]);
}
// create clusters
List<Cluster> clusters = new List<Cluster>();
for(int i = 0; i < k; i++)
if(!Centers[i].IsNaN()) // check for degenerate clusters
clusters.Add(new Cluster
{
Id = i + 1,
Center = Centers[i],
Members = objects[i].ToArray(),
Children = new Cluster[] { }
});
// return single cluster with K children
return new Cluster
{
Id = 0,
Center = X.Mean(VectorType.Row),
Children = clusters.ToArray()
};
}
示例4: Test_Vector_Expando_Conversion_Simple_Numbers
public void Test_Vector_Expando_Conversion_Simple_Numbers()
{
Descriptor d = new Descriptor();
d.Features = new Property[]
{
new Property { Name = "Age", },
new Property { Name = "Height", },
new Property { Name = "Weight", },
new Property { Name = "Good", },
};
dynamic item = new ExpandoObject();
item.Age = 23;
item.Height = 6.21;
item.Weight = 220m;
item.Good = false;
var truths = new double[] { 23, 6.21, 220, -1 };
var actual = d.Convert(item);
Assert.AreEqual(truths, actual);
}
示例5: Test_Vector_Dictionary_Conversion_Simple_Numbers
public void Test_Vector_Dictionary_Conversion_Simple_Numbers()
{
Descriptor d = new Descriptor();
d.Features = new Property[]
{
new Property { Name = "Age", },
new Property { Name = "Height", },
new Property { Name = "Weight", },
new Property { Name = "Good", },
};
Dictionary<string, object> item = new Dictionary<string, object>();
item["Age"] = 23;
item["Height"] = 6.21;
item["Weight"] = 220m;
item["Good"] = false;
var truths = new double[] { 23, 6.21, 220, -1 };
var actual = d.Convert(item);
Assert.AreEqual(truths, actual);
}
示例6: Test_Vector_DataRow_Conversion_Simple_Numbers
public void Test_Vector_DataRow_Conversion_Simple_Numbers()
{
Descriptor d = new Descriptor();
d.Features = new Property[]
{
new Property { Name = "Age", },
new Property { Name = "Height", },
new Property { Name = "Weight", },
new Property { Name = "Good", },
};
DataTable table = new DataTable("student");
var age = table.Columns.Add("Age", typeof(int));
var height = table.Columns.Add("Height", typeof(double));
var weight = table.Columns.Add("Weight", typeof(decimal));
var good = table.Columns.Add("Good", typeof(bool));
DataRow row = table.NewRow();
row[age] = 23;
row[height] = 6.21;
row[weight] = 220m;
row[good] = false;
var truths = new double[] { 23, 6.21, 220, -1 };
var actual = d.Convert(row);
Assert.AreEqual(truths, actual);
}
示例7: Test_Vector_Conversion_Simple_Numbers_And_Strings_As_Enum
public void Test_Vector_Conversion_Simple_Numbers_And_Strings_As_Enum()
{
Descriptor d = new Descriptor();
var dictionary = StringHelpers.BuildWordDictionary(WordStrings)
.Select(k => k.Key)
.ToArray();
d.Features = new Property[]
{
new Property { Name = "Age" },
new Property { Name = "Height" },
new StringProperty { Name = "Words", Dictionary = dictionary, AsEnum = true },
new Property { Name = "Weight" },
new Property { Name = "Good" },
};
// [THE, QUICK, BROWN, FOX, #NUM#, SUPER, BEAR, UGLY]
// [ 0, 1, 2, 3, 4, 5, 6, 7]
var o = new { Age = 23, Height = 6.21d, Weight = 220m, Good = false, Words = "QUICK" };
// array generated by descriptor ordering
var truths = new double[] { 23, 6.21,
/* BEGIN TEXT */
1,
/* END TEXT */
220, -1 };
var actual = d.Convert(o);
Assert.AreEqual(truths, actual);
o = new { Age = 23, Height = 6.21d, Weight = 220m, Good = false, Words = "sUpEr" };
// array generated by descriptor ordering
truths = new double[] { 23, 6.21,
/* BEGIN TEXT */
5,
/* END TEXT */
220, -1 };
actual = d.Convert(o);
Assert.AreEqual(truths, actual);
}
示例8: Test_Vector_Conversion_Simple_Numbers_And_Strings
public void Test_Vector_Conversion_Simple_Numbers_And_Strings()
{
Descriptor d = new Descriptor();
var dictionary = StringHelpers.BuildWordDictionary(WordStrings)
.Select(k => k.Key)
.ToArray();
d.Features = new Property[]
{
new Property { Name = "Age" },
new Property { Name = "Height" },
new StringProperty { Name = "Words", Dictionary = dictionary },
new Property { Name = "Weight" },
new Property { Name = "Good" },
};
// [THE, QUICK, BROWN, FOX, #NUM#, SUPER, BEAR, UGLY]
// [ 1, 0, 1, 0, 1, 0, 0, 0]
var o = new { Age = 23, Height = 6.21d, Weight = 220m, Good = false, Words = "the brown 432" };
// array generated by descriptor ordering
var truths = new double[] { 23, 6.21,
/* BEGIN TEXT */
1, 0, 1, 0, 1, 0, 0, 0,
/* END TEXT */
220, -1 };
var actual = d.Convert(o);
Assert.AreEqual(truths, actual);
// offset test
Assert.AreEqual(10, d.Features[3].Start);
Assert.AreEqual(11, d.Features[4].Start);
}
示例9: Test_Vector_Conversion_Simple_Numbers_And_Chars_As_Enum
public void Test_Vector_Conversion_Simple_Numbers_And_Chars_As_Enum()
{
Descriptor d = new Descriptor();
var dictionary = StringHelpers.BuildCharDictionary(ShortStrings)
.Select(k => k.Key)
.ToArray();
d.Features = new Property[]
{
new Property { Name = "Age" },
new Property { Name = "Height" },
new StringProperty {
Name = "Chars",
Dictionary = dictionary,
SplitType = StringSplitType.Character,
AsEnum = true
},
new Property { Name = "Weight" },
new Property { Name = "Good" },
};
// ["O", "N", "E", "#SYM#", "T", "W", "#NUM#", "H", "R"]
// [ 2, 1, 0, 1, 0, 0, 1, 0, 3]
var o = new { Age = 23, Height = 6.21d, Chars = "N", Weight = 220m, Good = false, };
// array generated by descriptor ordering
var truths = new double[] { 23, 6.21,
/* BEGIN CHARS */
1,
/* END CHARS */
220, -1 };
var actual = d.Convert(o);
Assert.AreEqual(truths, actual);
o = new { Age = 23, Height = 6.21d, Chars = "!", Weight = 220m, Good = false, };
// array generated by descriptor ordering
truths = new double[] { 23, 6.21,
/* BEGIN CHARS */
3,
/* END CHARS */
220, -1 };
actual = d.Convert(o);
Assert.AreEqual(truths, actual);
}
示例10: Test_Vector_Conversion_Simple_Numbers
public void Test_Vector_Conversion_Simple_Numbers()
{
Descriptor d = new Descriptor();
d.Features = new Property[]
{
new Property { Name = "Age", Type = typeof(int) },
new Property { Name = "Height", Type=typeof(double) },
new Property { Name = "Weight", Type = typeof(decimal) },
new Property { Name = "Good", Type=typeof(bool) },
};
var o = new { Age = 23, Height = 6.21d, Weight = 220m, Good = false };
var truths = new double[] { 23, 6.21, 220, -1 };
var actual = d.Convert(o);
Assert.AreEqual(truths, actual);
}
示例11: Test_Matrix_Conversion_With_Label
public void Test_Matrix_Conversion_With_Label()
{
Descriptor d = new Descriptor();
d.Features = new Property[]
{
new Property { Name = "Age" },
new Property { Name = "Height" },
new Property { Name = "Weight" },
new Property { Name = "Good" },
};
d.Label = new Property { Name = "Nice" };
var o = new[] {
new { Age = 23, Height = 6.21d, Weight = 220m, Good = false, Nice = true },
new { Age = 12, Height = 4.2d, Weight = 120m, Good = true, Nice = false },
new { Age = 9, Height = 6.0d, Weight = 340m, Good = true, Nice = true },
new { Age = 87, Height = 3.7d, Weight = 79m, Good = false, Nice = false }
};
// array generated by descriptor ordering
// (returns IEnumerable, but should pass)
var truths = new double[][] {
new double[] { 23, 6.21, 220, -1, 1 },
new double[] { 12, 4.2, 120, 1, -1 },
new double[] { 9, 6.0, 340, 1, 1 },
new double[] { 87, 3.7, 79, -1, -1 }
};
var actual = d.Convert(o);
Assert.AreEqual(truths, actual);
}
示例12: Generate
/// <summary>Generates.</summary>
/// <param name="descriptor">The descriptor.</param>
/// <param name="examples">The examples.</param>
public void Generate(Descriptor descriptor, IEnumerable<object> examples)
{
// generate data matrix
var x = descriptor.Convert(examples).ToMatrix();
Generate(x);
}