<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Blog SQL Server d&#039;ElSüket &#187; Data Mining</title>
	<atom:link href="https://blog.developpez.com/elsuket/pcategory/support-decisionnel/data-mining/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/elsuket</link>
	<description>Nicolas Souquet - Expert SQL Server</description>
	<lastBuildDate>Mon, 05 Apr 2021 07:32:41 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Introduction rapide et guidée à l&#8217;exploration de données (Data Mining)</title>
		<link>https://blog.developpez.com/elsuket/p12547/support-decisionnel/data-mining/introduction-data-mining</link>
		<comments>https://blog.developpez.com/elsuket/p12547/support-decisionnel/data-mining/introduction-data-mining#comments</comments>
		<pubDate>Tue, 25 Mar 2014 16:53:20 +0000</pubDate>
		<dc:creator><![CDATA[elsuket]]></dc:creator>
				<category><![CDATA[Data Mining]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/elsuket/?p=902</guid>
		<description><![CDATA[Vous avez certainement remarqué que les sites marchands sont capables de vous proposer d&#8217;acheter d&#8217;autres articles en fonction de celui dont vous êtes en train d&#8217;explorer les caractéristiques, ou dont vous venez de valider l&#8217;achat. La plupart du temps, ces &#8230; <a href="https://blog.developpez.com/elsuket/p12547/support-decisionnel/data-mining/introduction-data-mining">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Vous avez certainement remarqué que les sites marchands sont capables de vous proposer d&rsquo;acheter d&rsquo;autres articles en fonction de celui dont vous êtes en train d&rsquo;explorer les caractéristiques, ou dont vous venez de valider l&rsquo;achat. La plupart du temps, ces articles sont plutôt bien corrélés avec l&rsquo;article acheté ou revu : c&rsquo;est un exemple de ce que l&rsquo;on peut faire calculer à un algorithme d&rsquo;exploration de données.</p>
<p>Vous vous en doutez donc : si le <em>Data Mining</em> est un ensemble de fonctionnalités qui est rarement abordé, il n&rsquo;en est pas moins très intéressant, et a un bel avenir devant lui. Je vous propose donc de découvrir très simplement avec SQL Server cette discipline, aussi stimulante techniquement que &laquo;&nbsp;décisionnellement&nbsp;&raquo;. En effet, celle-ci transforme le consommateur de rapports d&rsquo;un rôle passif / interactif à un rôle proactif.</p>
<p><span id="more-902"></span></p>
<p>Commençons d&rsquo;abord par installer la base de données exemple d&rsquo;entrepôt de données <em>AdventureWorks</em>, que l&rsquo;on trouve <a href="http://msftdbprodsamples.codeplex.com/releases/view/105902">ici</a> pour les versions 2008, 2008 R2 et 2012.<br />
Pour voir comment installer cette base de données sur votre instance SQL Server, c&rsquo;est par <a href="http://blog.developpez.com/elsuket/p11188/moteur-de-base-de-donnees-sql-server/attacher_base_donnees_sans_tran_log" title="Attacher une base de données qui n’a pas de fichier du journal des transactions">ici</a>.</p>
<p>Dans cette base de données existe une vue <em>dbo.vTargetMail</em>, que nous allons utiliser pour caractériser les clients les plus enclins à acheter un vélo.</p>
<p><img src="http://imageshack.com/a/img43/3917/5y2u.png" alt="" /></p>
<p>Nous créons donc un nouveau projet avec <em>SQL Server Data Tools</em> (le nouveau <em>Business Intelligence Development Studio</em>), et nous choisissons un projet SQL Server <em>Analysis Services and Data Mining</em> :</p>
<p><img src="http://imageshack.com/a/img842/6929/ndai.png" alt="" /></p>
<p>Une fois le tout validé par OK, la solution s&rsquo;ouvre et nous devons tout d&rsquo;abord créer une source de données :</p>
<p><img src="http://imageshack.com/a/img855/796/zeup.png" alt="" /></p>
<p>Un nouveau dialogue s&rsquo;ouvre alors, et nous devons cliquer sur le bouton <em>New &#8230;</em></p>
<p><img src="http://imageshack.com/a/img542/2544/uj0c.png" alt="" /></p>
<p>Nous mettons un point pour signifier le serveur local, et choisissons la base de données que nous venons d&rsquo;installer :</p>
<p><img src="http://imageshack.com/a/img850/253/8wl9.png" alt="" /></p>
<p>Nous devons maintenant définir sous quel utilisateur nous allons nous connecter à la source de données. Nous choisissons l&rsquo;utilisateur courant pour des raisons pratiques, mais ce n&rsquo;est pas ce que l&rsquo;on ferait pour un environnement de production.</p>
<p><img src="http://imageshack.com/a/img856/2174/15k8.png" alt="" /></p>
<p>Notons également que le compte de service qui exécute le service SQL Server Analysis Services doit être enregistré sur l&rsquo;instance SQL Server (moteur de base de données). Par défaut, ce compte est <em>NT Service\MSSQLServerOLAPService</em>. Nous devons donc exécuter le script suivant :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000FF;">CREATE</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>NT Service\MSSQLServerOLAPService<span style="color: #808080;">&#93;</span><br />
<span style="color: #0000FF;">FROM</span> W<span style="color: #808080;">IN</span>DOWS<br />
<br />
<span style="color: #0000FF;">USE</span> AdventureWorksDW2012<br />
GO<br />
<br />
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">USER</span> <span style="color: #808080;">&#91;</span>NT Service\MSSQLServerOLAPService<span style="color: #808080;">&#93;</span><br />
<span style="color: #0000FF;">FOR</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>NT Service\MSSQLServerOLAPService<span style="color: #808080;">&#93;</span><br />
GO<br />
<br />
<span style="color: #008080;">-- SQL Server 2021 et suivants</span><br />
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">ROLE</span> db_datareader<br />
<span style="color: #0000FF;">ADD</span> MEMBER <span style="color: #808080;">&#91;</span>NT Service\MSSQLServerOLAPService<span style="color: #808080;">&#93;</span><br />
<br />
<span style="color: #008080;">-- Jusqu'à SQL Server 2008 (R2 inclus)</span><br />
<span style="color: #0000FF;">EXEC</span> <span style="color: #AF0000;">sp_addrolemember</span> <span style="color: #FF0000;">'db_datareader'</span>, <span style="color: #FF0000;">'NT Service\MSSQLServerOLAPService'</span></div></td></tr></tbody></table></div>
<p>Nous pouvons cliquer sur <em>Next</em>, puis sur <em>Finish</em>, et voilà notre source de données créée. De retour dans l&rsquo;explorateur de solutions, il nous faut maintenant créer une vue source de données :</p>
<p><img src="http://imageshack.com/a/img546/7493/e0u8.png" alt="" /></p>
<p>Nous aurions pu créer la source de données à partir du dialogue qui s&rsquo;affiche :</p>
<p><img src="http://imageshack.com/a/img401/4352/sqvv.png" alt="" /></p>
<p>Comme nous l&rsquo;avons déjà créée, nous nous contentons de cliquer sur <em>Next</em>, et obtenons le dialogue suivant, qui présente la liste des tables et vues présentes dans la base de données <em>AdventureWorksDW2012</em> :</p>
<p><img src="http://imageshack.com/a/img819/2879/llws.png" alt="" /></p>
<p>Nous ajoutons donc la vue <em>dbo.vTargetMail</em>, et cliquons sur <em>Next</em>, qui nous amène à un dialogue de revue, et nous validons le tout par <em>Finish</em>.</p>
<p>Nous devons maintenant créer une structure d&rsquo;exploration de données. De retour dans l&rsquo;explorateur de solutions, il nous suffit pour ce faire de cliquer-droit sur <em>Mining Structures</em> :</p>
<p><img src="http://imageshack.com/a/img809/2473/ywep.png" alt="" /></p>
<p>Nous sautons la page d&rsquo;introduction de l&rsquo;<em>Assistant d&rsquo;Exploration de Données</em> en cliquant directement sur <em>Next</em>, ce qui nous amène le dialogue suivant :</p>
<p><img src="http://imageshack.com/a/img839/11/7mbz.png" alt="" /></p>
<p>Nous continuons avec l&rsquo;option &laquo;&nbsp;<em>A partir d&rsquo;une base de données relationnelle ou d&rsquo;un entrepôt de données</em>&laquo;&nbsp;, et cliquons sur <em>Next</em> :</p>
<p><img src="http://imageshack.com/a/img845/5362/yx9u.png" alt="" /></p>
<p>Ici nous avons le choix de plusieurs algorithmes, expliqués succinctement (plus de détails dans le livre référencé en fin d&rsquo;article):</p>
<p><img src="http://imageshack.com/a/img69/4306/qx6l.png" alt="" /></p>
<p>Nous cliquons sur <em>Next</em>, et obtenons un dialogue de revue et de validation de la vue de données : nous cliquons une nouvelles fois sur <em>Next</em>. Nous devons maintenant spécifier la liste des vues à partir desquelles l&rsquo;algorithme va calculer les réponses possibles. La case à cocher <em>Case</em> permet de spécifier l&rsquo;entité que l&rsquo;on souhaite explorer. En général, un cas est représenté par une ligne d&rsquo;une table ou d&rsquo;une vue qui stocke ou montre les caractéristiques de transactions. Nous continuons donc avec la proposition de l&rsquo;assistant :</p>
<p><img src="http://imageshack.com/a/img600/6603/yzfl.png" alt="" /></p>
<p>Nous devons maintenant choisir suivant quelles caractéristiques de l&rsquo;acheteur nous souhaitons que l&rsquo;algorithme nous aide à prédire quels sont les meilleurs clients potentiels. Comme il s&rsquo;agit d&rsquo;acheteurs de vélos, nous choisissons <em>Age</em>, <em>CommuteDistance</em>, <em>HouseOwnerFlag</em> et <em>NumberCarsOwned</em> :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_25_zps7569a66c.png" alt="" /></p>
<p>On peut aussi cliquer sur <em>Suggest</em> : le moteur échantillonne alors les données pour faire quelques propositions :</p>
<p><img src="http://imageshack.com/a/img822/394/e24u.png" alt="" /></p>
<p>Nous ne modifions pas la matrice, et validons par <em>Next</em>, ce qui amène la fenêtre suivante :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_26_zps4f8e72ed.png" alt="" /></p>
<p>En dernier lieu, il convient de spécifier le type des données : ceci se fait par un simple clic sur <em>Detect</em>.</p>
<p>Après une validation par clic sur <em>Next</em>, nous pouvons enfin choisir le taux d&rsquo;échantillonnage : comme 30% des données est un extrait relativement raisonnable, on peut se permettre de ne pas le changer. La lecture de l&rsquo;explication nous permet de comprendre ce que va faire l&rsquo;algorithme :</p>
<p><img src="http://imageshack.com/a/img30/6956/1je2.png" alt="" /></p>
<p>Nous validons le tout par un clic sur <em>Next</em>, ce qui nous permet de revoir notre paramétrage et de renommer la structure et le modèle, mais surtout de cocher la case qui nous permettra d&rsquo;obtenir les détails de l&rsquo;analyse jusqu&rsquo;au niveau des transactions exposées par la vue.</p>
<p><img src="http://imageshack.com/a/img545/7438/fu9o.png" alt="" /></p>
<p>Nous pouvons maintenant valider le tout par <em>Finish</em>, et entraîner le modèle que nous venons de créer. Pour ce faire, il nous suffit de choisir l&rsquo;option <em>Process&#8230;</em> du menu contextuel du modèle :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_20_zpsdbd4be36.png" alt="" /></p>
<p>Notons que l&rsquo;on peut faire la même chose sous <em>SQL Server Management Studio</em>, après s&rsquo;être connecté à l&rsquo;instance <em>SQL Server Analysis Services</em> :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_27_zps974e6f23.png" alt="" /></p>
<p>Il nous faut d&rsquo;abord enregistrer le modèle sur le serveur : jusqu&rsquo;ici le modèle n&rsquo;existait que dans <em>SQL Server Data Tools</em>. Nous validons donc par <em>Yes</em> l&rsquo;avertissement suivant :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_28_zps73c51280.png" alt="" /></p>
<p>Ceci nous amène le dialogue suivant. Pour simplifier, nous continuons avec les options par défaut, et cliquons sur <em>Run &#8230;</em> :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_29_zpsd58653c2.png" alt="" /></p>
<p>Le modèle est alors en cours d&rsquo;entraînement :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_30_zpsb7eefa94.png" alt="" /></p>
<p>Une fois le succès de l&rsquo;opération annoncé, nous fermons les dialogues successivement en cliquant sur <em>Close</em>. Nous basculons alors vers l&rsquo;onglet <em>Mining Model Viewer</em>, ce qui nous permet de parcourir l&rsquo;arbre :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_31_zps8ac76f3e.png" alt="" /></p>
<p>Le gradient de couleurs qui caractérise chaque nœud est d&rsquo;intensité plus faible à mesure que la population sous-jacente diminue.</p>
<p>Voici ce qu&rsquo;indique la légende lorsqu&rsquo;on clique sur le nœud <em>Age &gt; 47 and &lt; 75</em> :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_32_zps7b5ca354.png" alt="" /></p>
<p>La classe d&rsquo;âge 48-74 comporte 7675 de nos clients. Les facteurs qui influent le plus l&rsquo;achat d&rsquo;un vélo dans cette classe d&rsquo;âge sont en premier lieu le nombre de voitures possédées, suivi par l&rsquo;âge. On peut d&rsquo;ailleurs vérifier cela en basculant dans l&rsquo;onglet <em>Dependancy Network</em> :</p>
<p><img src="http://i1331.photobucket.com/albums/w588/elsuket/DataMining/dm_33_zps37bc6ffe.png" alt="" /></p>
<p>Si l&rsquo;on déplace le curseur en butée basse, on voit clairement que le facteur qui influence le plus l&rsquo;achat d&rsquo;un vélo est le nombre de voitures que l&rsquo;acheteur potentiel possède. Si l&rsquo;on rapproche le curseur de sa position originale, nous observons que viennent ensuite l&rsquo;âge, la distance séparant le domicile du lieu de travail, et enfin la propriété d&rsquo;une maison.</p>
<p>Si vous souhaitez approfondir vos connaissances sur l&rsquo;Exploration de Données avec SQL Server, voici quelques ressources :</p>
<p>&#8211; Le site <a href="http://marktab.net/Resources/Blogs.aspx">MarkTab.net</a>, qui pointe vers de nombreux blogs et publie quelques vidéos sur YouTube.<br />
&#8211; Le site <a href="http://www.sqlserverdatamining.com/ssdm/">SQLServerDataMining.com</a>.<br />
&#8211; Le livre <em>Data Mining with Microsoft SQL Server 2008</em> (ISBN: 978-0-470-27774-4, un pavé de 672 pages).</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
