Select Most Similar Items
ali_a_dehghan
New Altair Community Member
Hi Everyone,
I have constructed a similarity matrix (as mentioned in the paper you linked) for purchase items, and now I need to select K-Nearest Neighbors for them, but I don't know how can I select it. For example I have a matrix like it:
Item1 Item2 Item3 Item 4 Item5
Item1 1 0.97 0.87 0.95 0.92
Item2 0.97 1 0.78 0.89 0.5
Item3 0.87 0.78 1 0.96 0.87
Item4 0.96 0.89 0.96 1 0.77
Item5 0.92 0.5 0.87 0.77 1
And "Active User" has purchased "Item1, Item4", and if consider K=2, I need to iterate on Item1 and Item4 and select most similar items (Top-N Algorithm), in my case "Item2,Item5" are chosen as candidate. I should add them to a queue and do this for next purchased item "Item4" => "Item3,Item2"
So my recommendation queue contains "Item2,Item5,Item3" and then I should order it by their similarity values "(0.97+0.89),0.92,0.96" and select K=2 items => Item2,Item3... so my recommendation for "Item1,Item4" is "Item2,Item3"
Please guide me which operators I should use to select Top-N items for a specific item...
Thanks all in advance
I have constructed a similarity matrix (as mentioned in the paper you linked) for purchase items, and now I need to select K-Nearest Neighbors for them, but I don't know how can I select it. For example I have a matrix like it:
Item1 Item2 Item3 Item 4 Item5
Item1 1 0.97 0.87 0.95 0.92
Item2 0.97 1 0.78 0.89 0.5
Item3 0.87 0.78 1 0.96 0.87
Item4 0.96 0.89 0.96 1 0.77
Item5 0.92 0.5 0.87 0.77 1
And "Active User" has purchased "Item1, Item4", and if consider K=2, I need to iterate on Item1 and Item4 and select most similar items (Top-N Algorithm), in my case "Item2,Item5" are chosen as candidate. I should add them to a queue and do this for next purchased item "Item4" => "Item3,Item2"
So my recommendation queue contains "Item2,Item5,Item3" and then I should order it by their similarity values "(0.97+0.89),0.92,0.96" and select K=2 items => Item2,Item3... so my recommendation for "Item1,Item4" is "Item2,Item3"
Please guide me which operators I should use to select Top-N items for a specific item...
Thanks all in advance
Tagged:
0
Answers
-
No Reply?0
-
Can you not tell?0
-
Pardon me?0
-
What for?Pardon me?
Not quite sure about what exactly you need, but the this may help..<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.0">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="5.0.8" expanded="true" name="Process">
<process expanded="true" height="359" width="908">
<operator activated="true" class="retrieve" compatibility="5.0.8" expanded="true" height="60" name="Retrieve" width="90" x="45" y="30">
<parameter key="repository_entry" value="//Samples/data/Iris"/>
</operator>
<operator activated="true" class="multiply" compatibility="5.0.8" expanded="true" height="94" name="Multiply" width="90" x="246" y="30"/>
<operator activated="true" class="cross_distances" compatibility="5.0.8" expanded="true" height="94" name="Cross Distances" width="90" x="380" y="30">
<parameter key="only_top_k" value="true"/>
<parameter key="k" value="3"/>
</operator>
<operator activated="true" class="sort" compatibility="5.0.8" expanded="true" height="76" name="Sort" width="90" x="581" y="30">
<parameter key="attribute_name" value="request"/>
</operator>
<connect from_op="Retrieve" from_port="output" to_op="Multiply" to_port="input"/>
<connect from_op="Multiply" from_port="output 1" to_op="Cross Distances" to_port="request set"/>
<connect from_op="Multiply" from_port="output 2" to_op="Cross Distances" to_port="reference set"/>
<connect from_op="Cross Distances" from_port="result set" to_op="Sort" to_port="example set input"/>
<connect from_op="Sort" from_port="example set output" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>0 -
Thanks haddock for your guide...
Might you please tell me how can I do so with SimilarityMatrix and input items (As I described before)
Thanks for your help
0 -
Have you considered paying RM to do some consultancy?0
-
I am just working on my thesis... This is an absolute academic job.
So, please help me on it.0 -
You can work from my code to your answer by getting good at looping, macros, and collections. These operator groups require some work to understand, so the best thing is to get stuck in to the examples and the tutorials, if only to see whether you actually have the time that would be necessary.0