What do "NameToUnit" and "QuadFriends" do in student example?

Jul 16, 2010 at 3:32 PM
"NameToUnit" and "QuadFriends", Are these two items "weighted" differently? Are they just another attribute, that are used the same as say age, or number of friends in the demo? Is a neat library and a nice demo, I am just trying to make sure I understand how it is working. Also, I am wondering how you might implement something like a nullable type. So for instance in the student demo what if you don't know the age of a person. Would it make sense to have "unknown" and have that as a non-value?
Coordinator
Jul 29, 2010 at 9:16 PM

Those are used to provide custom conversions for each of the features. What is essentially happening is each Feature/Label is converted to a double. When the user wishes to provide their own conversion function, that is how it is provided. As far as nullable types, I guess if a thing is null I would convert it to a 0. What do you think?

Jul 30, 2010 at 3:04 PM
Seth,

My thought on the nullable was what if for instance you wanted to have a boolean value for "pregnant". This is only applicable for a certain gender, so it would be null for males.

I am sure there are other similar examples but I can't think of one right now. Let me know if you need more.

Thanks

On Thu, Jul 29, 2010 at 5:16 PM, sethjuarez <notifications@codeplex.com> wrote:

From: sethjuarez

Those are used to provide custom conversions for each of the features. What is essentially happening is each Feature/Label is converted to a double. When the user wishes to provide their own conversion function, that is how it is provided. As far as nullable types, I guess if a thing is null I would convert it to a 0. What do you think?

Read the full discussion online.

To add a post to this discussion, reply to this email (machine@discussions.codeplex.com)

To start a new discussion for this project, email machine@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Coordinator
Jul 30, 2010 at 3:27 PM

I see. That would fall more into the realm of structured prediction. Bayesian inference would allow the system to find posterior probabilities such as: given that a person is a female, what is the probability of the person being pregnant. In a simple linear classifier, the system would not be able to infer that kind of knowledge (although I would be interested to see what it would actually learn). These things fall into the realm of graphical models. Although, my adviser did write a paper describing how to learn structure from a set of independent classifiers with a system he developed called SEARN. Maybe I should implement it ;)

Jul 30, 2010 at 4:32 PM
Seth,

I was thinking more in terms of the "Nice" demo. Say you had a "pregnant" column in there. And whether or not someone was pregnant might be a factor in whether the person is "Nice". But you could only use that value if it is applicable for that person.

thanks again

On Fri, Jul 30, 2010 at 11:28 AM, sethjuarez <notifications@codeplex.com> wrote:

From: sethjuarez

I see. That would fall more into the realm of structured prediction. Bayesian inference would allow the system to find posterior probabilities such as: given that a person is a female, what is the probability of the person being pregnant. In a simple linear classifier, the system would not be able to infer that kind of knowledge (although I would be interested to see what it would actually learn). These things fall into the realm of graphical models. Although, my adviser did write a paper describing how to learn structure from a set of independent classifiers with a system he developed called SEARN. Maybe I should implement it ;)

Read the full discussion online.

To add a post to this discussion, reply to this email (machine@discussions.codeplex.com)

To start a new discussion for this project, email machine@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Coordinator
Jul 30, 2010 at 4:52 PM

I see what you are saying. The way the system works is that it actually converts each example to an actual vector. Each vector is then used as a means of estimating a hyperplane separator (a line pretty much) to divide the "yes" answers from the "no" answers. This particular methodology precludes the ability to conditionally exclude features as the actual space is fixed by the number of features. Also, if you think pregnancy is a good indicator of niceness, a static conversion function could be used to *boost* pregnancy importance. Hope I am making sense.

Jul 30, 2010 at 5:23 PM
Seth,

Thanks, that does make sense. Basically the system converts everything to yes or no and "Not applicable" is not an option. Do you think it is doable and make sense to add something like that (not that I am asking you to but just wondering if it is possible)?

A second question I had would be rather than a yes/no answer (IE, is nice or is not nice), would it be possible to have a percentage or likelihood of being nice?

Thanks

On Fri, Jul 30, 2010 at 12:52 PM, sethjuarez <notifications@codeplex.com> wrote:

From: sethjuarez

I see what you are saying. The way the system works is that it actually converts each example to an actual vector. Each vector is then used as a means of estimating a hyperplane separator (a line pretty much) to divide the "yes" answers from the "no" answers. This particular methodology precludes the ability to conditionally exclude features as the actual space is fixed by the number of features. Also, if you think pregnancy is a good indicator of niceness, a static conversion function could be used to *boost* pregnancy importance. Hope I am making sense.

Read the full discussion online.

To add a post to this discussion, reply to this email (machine@discussions.codeplex.com)

To start a new discussion for this project, email machine@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Coordinator
Jul 30, 2010 at 5:52 PM

Kind of...

With features, it converts them to a double. In the case of bools, it makes them into a +1 and a -1 (for convenience really). Strings are converted to their corresponding length. As far as a likelihood of being nice or not, I could probably slap a sigmoid function on to the distance away from the hyperplane the test point actually is located. In other words, the system makes a line (of sorts) that best separates the data. The theory is that the farther away from the line the point actually lies, the better the guestimate the machine has made. So instead of returning a void, it returns a double and fills in the value. Let me know what you think.

 

Jul 31, 2010 at 8:41 PM
Seth,

I apologize, I asked two questions above one about Not applicable data items and one about percentage likelihood. I think you were addressing the second one?

If you have an idea on either of those that would be great. I have a test project I would like to try that would be similar to the "nice" demo and could test out these features

On Fri, Jul 30, 2010 at 1:52 PM, sethjuarez <notifications@codeplex.com> wrote:

From: sethjuarez

Kind of...

With features, it converts them to a double. In the case of bools, it makes them into a +1 and a -1 (for convenience really). Strings are converted to their corresponding length. As far as a likelihood of being nice or not, I could probably slap a sigmoid function on to the distance away from the hyperplane the test point actually is located. In other words, the system makes a line (of sorts) that best separates the data. The theory is that the farther away from the line the point actually lies, the better the guestimate the machine has made. So instead of returning a void, it returns a double and fills in the value. Let me know what you think.

 

Read the full discussion online.

To add a post to this discussion, reply to this email (machine@discussions.codeplex.com)

To start a new discussion for this project, email machine@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


#avg_ls_inline_popup { position:absolute; z-index:9999; padding: 0px 0px; margin-left: 0px; margin-top: 0px; width: 240px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 13px;}