<p>This is a recommendation problem. </p>

<p>First the apriori algorithm is no longer the state of the art of recommendation systems. (a related discussion is here: <a href="https://stackoverflow.com/questions/1255663/using-the-apriori-algorithm-for-recommendations">Using the apriori algorithm for recommendations</a>). </p>

<p>Check out Chapter 9 <strong>Recommendation System</strong> of the below book <strong>Mining of Massive Datasets</strong>. It's a good tutorial to start with.</p>

<p><a href="http://infolab.stanford.edu/~ullman/mmds.html" rel="nofollow noreferrer">http://infolab.stanford.edu/~ullman/mmds.html</a></p>

<p>Basically you have two different approaches: Content-based and collaborative filtering. The latter can be done in terms of item-based or user-based approach. There are also methods to combine the approaches to get better recommendations. </p>

<p>Some further readings that might be useful:</p>

<ul>
<li><p>A recent survey paper on recommendation systems:
<a href="http://arxiv.org/abs/1006.5278" rel="nofollow noreferrer">http://arxiv.org/abs/1006.5278</a></p></li>
<li><p>Amazon item-to-item collaborative filtering: <a href="http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf" rel="nofollow noreferrer">http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf</a></p></li>
<li><p>Matrix factorization techniques: <a href="http://research.yahoo4.akadns.net/files/ieeecomputer.pdf" rel="nofollow noreferrer">http://research.yahoo4.akadns.net/files/ieeecomputer.pdf</a></p></li>
<li><p>Netflix challenge: <a href="http://blog.echen.me/2011/10/24/winning-the-netflix-prize-a-summary/" rel="nofollow noreferrer">http://blog.echen.me/2011/10/24/winning-the-netflix-prize-a-summary/</a></p></li>
<li><p>Google news personalization: <a href="http://videolectures.net/google_datar_gnp/" rel="nofollow noreferrer">http://videolectures.net/google_datar_gnp/</a></p></li>
</ul>

<p>Some related stackoverflow topics:</p>

<ul>
<li><p><a href="https://stackoverflow.com/questions/1407841/how-to-create-my-own-recommendation-engine?rq=1">How to create my own recommendation engine?</a></p></li>
<li><p><a href="https://stackoverflow.com/questions/1592037/where-can-i-learn-about-recommendation-systems?rq=1">Where can I learn about recommendation systems?</a></p></li>
<li><p><a href="https://stackoverflow.com/questions/1992508/recommendation-systems-and-the-cold-start-problem?rq=1">How do I adapt my recommendation engine to cold starts?</a></p></li>
<li><p><a href="https://stackoverflow.com/questions/12778823/web-page-recommender-system">Web page recommender system</a></p></li>
</ul>
Recommendation rules for sorting a list based on a profile
<p>I working on a site that needs to present a set of options that have no particular order. I need to sort this list based on the customer that is viewing the list. I thought of doing this by generating recommendation rules and sorting the list putting the best suited to be liked by the customer on the top. Furthermore I think I'd be cool that if the confidence in the recommendation is high, I can tell the customer why I'm recommending that.</p>

<p>For example, lets say we have an icecream joint who has website where customers can register and make orders online. The customer information contains basic info like gender, DOB, address, etc. My goal is mining previous orders made by customers to generate rules with the format</p>

<pre><code>  feature -&gt; flavor
</code></pre>

<p>where feature would be either information in the profile or in the order itself (like, for example, we might ask how many people are you expecting to serve, their ages, etc).
I would then pull the rules that apply to the current customer and use the ones with higher confidence on the top of the list.</p>

<p>My question, what's the best standar algorithm to solve this? I have some experience in apriori and initially I thought of using it but since I'm interested in having only 1 consequent I'm thinking now that maybe other alternatives might be better suited. But in any case I'm not that knowledgeable about machine learning so I'd appreciate any help and references.</p>