tag:blogger.com,1999:blog-35761610000061637952024-03-05T02:16:39.755-08:00Business IntelligenceUnknownnoreply@blogger.comBlogger43125tag:blogger.com,1999:blog-3576161000006163795.post-88839575159451346732017-10-13T03:51:00.001-07:002017-10-13T03:58:13.476-07:00The Data Warehouse Lab: A step-by-step guide using SSIS and SSAS 2017<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4Y2fR8t8SRFeszZyB2As0Ck0-ZQEnbEB63Xvj8nwA0q3llJjP35QtHBRHifskEv9Shtjswf2lZ8jtGxaVCrmRWFTATc40A-b6B4_G3UnP-YwKW5pA016V5JXN32Qog1TX7-YehqIHOTc/s1600/cover.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1005" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4Y2fR8t8SRFeszZyB2As0Ck0-ZQEnbEB63Xvj8nwA0q3llJjP35QtHBRHifskEv9Shtjswf2lZ8jtGxaVCrmRWFTATc40A-b6B4_G3UnP-YwKW5pA016V5JXN32Qog1TX7-YehqIHOTc/s400/cover.jpg" width="251" /></a></div>
<br />
I always feel some difficulty for newbies in data warehousing to grasp all theoretical aspects due to the complexity of the tools and the long-running process of data warehousing, which starts by selecting the data source and ends by visualizing the information. Therefore, I designed several examples in my course, and I realized that the examples helped students to understand the overall picture better.<br />
<br />
Last year, I realized that if all examples can be defined as a kind of story that students can follow them and see the overall picture, it can help even more, so it was the main motivation behind writing this book.<br />
<br />
This book aims to help students and practitioners who are new to data warehousing to start developing a new data warehouse project from scratch. It shows different phases of data warehousing projects through a simple case. So readers can experience the full data warehouse development life-cycle through a simple example step-by-step. The book is written for the novice user, so there is no requirement for previous experience of working with MS SQL Server and other tools. However, it expects readers to know basics of databases like the table, columns, etc.<br />
<br />
The book does not aim to teach data warehousing and multi-dimensional design principle, nor play the role of a comprehensive reference book on Microsoft Business Intelligence Toolset. It only intends to help readers to gets a hands-on experience on data warehouse development quickly. It aims to give readers basic understanding and experience, so they become more confident in using reference books and online materials.<br />
<br />
The book does not go through the installation of tools that are used in the sample project. The readers need to install the following tools in order to follow the steps, i.e., Microsoft SQL Server Database Engine, Microsoft SQL Server Integration Services (SSIS) 2017 , Microsoft SQL Server Analysis Services (SSAS) 2017, Microsoft SQL Server Management Studio (SSMS), Microsoft Excel, and Microsoft Power BI.<br />
<br />
For me, the best time to publish the book would be in January, since I did not have time to do serious proofreading on it. However, my course is going to start soon, so I decided to publish the book, and I will correct typos and other problems later. So, please let me know if you read the book and need some help or find some typos. At least, this is the good feature that is provided by Amazon that I can update the content of the book later :-)<br />
<br />
Here are the links to the book:<br />
<a href="https://www.amazon.com/dp/B076BTQCNC">The Data Warehouse Lab: A step-by-step guide using SSIS and SSAS 2017 Kindle Edition</a><br />
<br />
<div>
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: "Times New Roman"; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; margin: 0px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<a href="https://www.amazon.com/dp/1549918796">The Data Warehouse Lab: A step-by-step guide using SSIS and SSAS 2017 Paperback</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-42838820074616681302013-09-20T02:19:00.002-07:002013-09-20T02:24:22.290-07:00Pivot Query<div class="MsoNormal">
I always love SQL, and it is really pity that I have not
written any complex SQL for really long time (I remember I wrote the last complex
SQL statement in 2007). Today, I needed a sort of pivot result from SQL Server.
Although I knew that I can retrieve the result very easily using pivot in
Excel, I wanted to do that in SQL. Sometimes, I like to suffer myself ;)<o:p></o:p></div>
<div class="MsoNormal">
First, I realized that there is a feature added to the SQL
Server 2008 that I was not aware of, called PIVOT and UNPIVOT! It is really
nice feature added to T-SQL, yet it was also possible to do such queries in
previous SQL servers with a little more difficulties. However, there is a
problem that I discuss through definition of table:<o:p></o:p></div>
<div class="MsoNormal">
The table has three columns, i.e. userID, movieID and rate.
We want to have a pivot view which contains movie as rows, users as columns and
count of rates as cells. However, in current cyntax, you have to explicitly
mention each user by value, which seems not suitable. Thus, I change a SQL
which ‘chandra sekhar pathivada’ mentions in 1/17/2013 in the mentioned page to
retrieve the result (look at <a href="http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx">http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx</a>). The SQL that I wrote is:<br />
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.45in;" valign="top" width="619"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">DECLARE</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@columns</span>
<span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>1000<span style="color: grey;">)</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">SELECT</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@columns</span>
<span style="color: grey;">=</span> <span style="color: magenta;">COALESCE</span><span style="color: grey;">(</span><span style="color: teal;">@columns</span> <span style="color: grey;">+</span> <span style="color: red;">',['</span> <span style="color: grey;">+</span> <span style="color: magenta;">cast</span><span style="color: grey;">(</span><span style="color: teal;">userID</span> <span style="color: blue;">as</span> <span style="color: blue;">nvarchar</span><span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">']'</span><span style="color: grey;">,</span> <span style="color: red;">'['</span> <span style="color: grey;">+</span> <span style="color: magenta;">cast</span><span style="color: grey;">(</span><span style="color: teal;">userID</span> <span style="color: blue;">as</span> <span style="color: blue;">nvarchar</span><span style="color: grey;">)+</span> <span style="color: red;">']'</span><span style="color: grey;">)</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">FROM</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">(</span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">Select</span> <span style="color: blue;">distinct</span>
<span style="color: teal;">userID</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">From</span> <span style="color: teal;">movies</span> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: Consolas; font-size: 9.5pt;">)</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">CLMNS</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">DECLARE</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@query</span>
<span style="color: blue;">nVARCHAR</span><span style="color: grey;">(</span>4000<span style="color: grey;">)</span> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">SET</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@query</span>
<span style="color: grey;">=</span> <span style="color: red;">' </span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">Select</span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">movieID, </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">'</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">+</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@columns</span>
<span style="color: grey;">+</span><span style="color: red;">' </span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">FROM </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">( </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">select movieID,
userID, rate </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">from </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">movies</span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">) x </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">PIVOT </span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: Consolas; font-size: 9.5pt;">(count(rate) FOR userid
IN('</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">+</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: teal;">@columns</span>
<span style="color: grey;">+</span><span style="color: red;">')) AS MyPivot'</span> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">print</span> <span style="color: teal;">@columns</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">print</span> <span style="color: teal;">@query</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">EXECUTE</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">(</span><span style="color: teal; font-family: Consolas; font-size: 9.5pt;">@query</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">)<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
This SQL retrieves the result correctly, yet I am still not
satisfied. Do you think that it might be other better way to do that? I am
still thinking about it.<o:p></o:p></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-56336780656129056732013-07-30T00:47:00.000-07:002014-08-06T14:41:04.023-07:00The SSAS Tutorial for beginnersIt was last summer that I developed a new tutorial for SSAS. The aim of this tutorial is to make students familiar with SQL Server 2012 Analysis Services. It might be helpful for you if you are an absolute beginner; otherwise, there is nothing new that you can learn from. The tutorial is based on a fictitious scenario which is grounded on simplified version of AdventureWorks Database.<br />
Unfortunately, I cannot share the data source of this tutorial.
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/25994105" width="479" height="511" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/jalaliamin/the-olap-tutorial-2012pdf" title="The olap tutorial 2012" target="_blank">The olap tutorial 2012</a> </strong> from <strong><a href="http://www.slideshare.net/jalaliamin" target="_blank">Amin Jalali</a></strong> </div>Unknownnoreply@blogger.com8Stockholm, Sweden59.328930000000007 18.06491000000005459.06971200000001 17.419463000000054 59.588148000000004 18.710357000000055tag:blogger.com,1999:blog-3576161000006163795.post-53146969166136326752011-12-28T09:20:00.000-08:002011-12-28T09:31:10.456-08:00Stanford Machine Learning course<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiEWRp8RCUHMq8y-t7rE0WLFn0Env5AWrdHDbRfPRtFmLurdQJ79IDKt_yI8Tr3l6XrCEoA1eT0hl6z7xblPvhGIqTWpl1cXIrkojs6-RlM15C029T7UQ2D2CjXLMIGbV_CAkdrSoh5do/s1600/machine_learning_course.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 248px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiEWRp8RCUHMq8y-t7rE0WLFn0Env5AWrdHDbRfPRtFmLurdQJ79IDKt_yI8Tr3l6XrCEoA1eT0hl6z7xblPvhGIqTWpl1cXIrkojs6-RlM15C029T7UQ2D2CjXLMIGbV_CAkdrSoh5do/s320/machine_learning_course.png" alt="" id="BLOGGER_PHOTO_ID_5691231326770778194" border="0" /></a><br /><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves/> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-US</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>AR-SA</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:Arial; mso-bidi-theme-font:minor-bidi;} </style> <![endif]-->It has been always a true challenge for me to understand Data Mining in depth.<br /><br />I have always problem to have a deep understanding of data mining algorithm, since all of them were ended to the mathematical formula that I have no idea about them.<br /><br />Some times ago, I found the Machine Learning course at Stanford University. This is a free course, and I strongly recommend this course to ones who like to have a deep understanding of these algorithms.<br /><br />This course will give you deep knowledge and understanding about different algorithm. it also gives you clue to distinguish which approach suits you the most in applying Data mining.<br /><br />Finally, it is really awesome, since you should write some linear algebra programs that implement these algorithms. Therefore, it is not just theoretical, but also it is really practical.<br /><br />I finish the course successfully, and the course will be repeated in January.<br /><br />Other courses which are offered free are:<br /><br /><ul><li><a href="http://jan2012.ml-class.org/">Machine Learning</a></li><li><a href="http://www.launchpad-class.org/">The Lean Launchpad</a></li><li><a href="http://www.venture-class.org/">Technology Entrepreneurship</a></li><li><a href="http://www.anatomy-class.org/">Anatomy</a></li><li><a href="http://www.greenbuilding-class.org/">Making Green Buildings</a></li><li><a href="http://www.infotheory-class.org/">Information Theory</a></li><li><a href="http://www.modelthinker-class.org/">Model Thinking</a></li><li><a href="http://www.cs101-class.org/">Computer Science</a></li><li><a href="http://www.saas-class.org/">Software Engineering for Software as a Service</a></li><li><a href="http://www.hci-class.org/">Human-Computer Interaction</a></li><li><a href="http://www.nlp-class.org/">Natural Language Processing</a></li><li><a href="http://www.game-theory-class.org/">Game Theory</a></li><li><a href="http://www.pgm-class.org/">Probabilistic Graphical Models</a></li><li><a href="http://www.crypto-class.org/">Cryptography</a></li><li><a href="http://www.algo-class.org/">Design and Analysis of Algorithms I</a></li><li><a href="http://www.security-class.org/">Computer Security</a></li></ul>These courses are offered by Stanford University and Berkley University.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-82143618345709017492011-05-03T13:58:00.000-07:002011-05-03T14:00:57.026-07:00MDX and DAX FormatterToday, I watched a video about "Format MDX&DAX" online application. This application enables you to convert the MDX or DAX expressions into a readable expression. it would be usefull specially when you are tracing your application and using "Microsoft SQL Server Profiler".<br />You can see the video <a href="http://www.microsoft.com/bi/en-us/Community/BILabs/Pages/MDXandDAXFormatter.aspx">here</a>.<br /><br /><a href="http://formatmdx.msftlabs.com/">link of application</a>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-73113591068297305202010-11-27T09:13:00.000-08:002010-11-27T09:14:17.824-08:00BIDS HelperI participate at Data Warehouse course as the teacher assistant this term.<br />I face lots of interesting questions and solutions by different students' groups when they asked questions for designing the solution for their assignment.<br />One interesting things that I have not seen before, was Dimension Health Check facility.<br /><br />You can install the BIDS Helper adds. It provides you some new facilities that make your job as Data warehouse designer or developer easier.<br />You can see its facilities and find its link to download here:<br /><a href="http://bidshelper.codeplex.com/">http://bidshelper.codeplex.com</a><div><div><br /></div></div>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com2tag:blogger.com,1999:blog-3576161000006163795.post-91789349955606676072010-08-11T09:38:00.000-07:002015-08-08T04:04:25.998-07:00Process MiningExtracting relevant knowledge for decision makers is the key activity in all Business Intelligence areas. Different areas provide capabilities with which we can extract different knowledge from our data. For example, we can discover patterns, clusters and etc. using data mining. An example of pattern mining techniques is sequence mining, where we aim to discover the sequential order of events that happens in a data. Despite the wide use of sequence mining in different areas like biology, these algorithms have not been employed much to add values to business domains. The reason might be the complexity that exists in businesses and the way that we handle our businesses. Many businesses are running through a formal or informal agenda, called business processes. These processes define how different activities in a business process should be handled to fulfill the goal of the business. The relation between these activities can be quite complex, so the analysis of their data could be quite challenging. Let's see the situation with some example.<br />
<br />
Imagine that we have a company consists of several informal business processes. This means that we have not modeled our processes, and people know it by heart. If we want to define the business process, we can interview different people who are involved. This is very costly, and it can be biased based on the information that people give to us. We should always consider the probability that not all people tell the way that they work; instead, many might tell the way that they should work! Although we do not have formal business process models, we have the result of execution of our business in different Information Systems. This includes different databases that record different activities, or different log files that persist different actions through time. Business Process Discovery is a sub-area of the process mining that aims to discover business process models through these information. It offers a different algorithm that enables us to discover these models from captured information.<br />
<br />
Interesting? Yes! but it is not the end of the story!<br />
<br />
Imagine that you have a formal business process model, and the information that records the activities that happened in your business. How can you make sure if what is happening in your business is complying with what you have defined in business process model? Is there any fraud case? Is there any employee who does not know the work but (s)he doesn't know! These sort of questions can be answered if we are able to compare our process model with the information that has been captured in the log files. This is another area of Process Mining which is called Conformance checking.<br />
<br />
Wow! so far so good! Can we expect more from Process Mining?<br />
<br />
Off course! business processes can capture many different perspectives. For example, they can be so basic that only describes which activity should be performed when! but they can be extended to explain who should perform each activity! Consider a company that has a basic process model. The company might not be able to define who should perform each task at beginning. Instead, the manager lets people work, and after a while (s)he wants to assign people to different activities based on the successful experiences of running the business process. I am sure you are sharp enough to realize that this information are already captured in our databases and log files! so, can we give the basic version of the process model and our log file to an algorithm and expect to receive a evolved version of the business process capturing who should do each activity? Off course! It is called Process Enhancement!<br />
<br />
That is amazing! Can we be even more greedy to expect even more?<br />
<br />
Sure! The good news is that we can combine Process Mining with other Mining techniques like Rule Mining and etc to expand the power of our magic! If you are interested to know more, there is a research group at the Eindhoven University of Technology that conducts this project, you can find more information on <a href="http://www.processmining.org/">their site</a>.<br />
<br />
Today is the third year of this blog! I will get the data mining course next term, and I am very eager to learn and perform it in different contexts.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com8tag:blogger.com,1999:blog-3576161000006163795.post-74653696859361209412010-07-23T05:04:00.000-07:002010-07-23T05:08:58.493-07:00The Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/exec/obidos/ASIN/0470563109/buythisbooks-20"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 319px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj17ZL9VINT3onUS0nBDgKyolnqhEfF8OPFze3HMAE1DkVeQ-Aw0wC-Jskok0wAu7tphbXG5mD9PPrbiU5ilv9RNrlbfXOz6pvdN6NBUOl_Ocr7BCx99xqeBn9t7TTgrOv9pPovsoD08ts/s400/a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5497072228557683714" /></a><br /><br />If you followed kimball articles, you may be interested to have all of them in an organized collection like a book.<br />Yes, Kimball published a new book based on these articles. I just could say that it is more than a collection of articles. Indeed, they provide a good description and tips about the whole data warehouse lifecycle using these articles.<br />I just took a look at it, and it was really facinate me to read it.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com1tag:blogger.com,1999:blog-3576161000006163795.post-32910596682189324302010-07-19T14:04:00.000-07:002010-07-20T01:38:49.791-07:00IBM Cognos 8 Report Studio Cookbook<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/IBM-Cognos-Report-Studio-Cookbook/dp/1849680345"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 324px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieJEbh00l3BAm7mC4lv_83T3YLXYDtCm_cdlwOauzGsC0onG0W4XfoBdXsJzG8CdO5eMYYfTECe2tAXR3npNbeKDUznYd6Qd21i-p2QnjiLjZEwVA4ei5Iz8kDLV7VNbIC48usP8YKPN0/s400/cognos.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5495904718899409618" /></a><br /><br /><p class="MsoNormal"><br /></p><p class="MsoNormal">I received a free copy of this book in order to write my standpoint on it.</p> <p class="MsoNormal">I think if you are new to cognos, or if you worked with Microsoft SQL Server Reporting Services, and want to migrate to cognos this book is very nice to follow.</p> <p class="MsoNormal">Indeed, it makes the learning of cognos easier by providing lots of examples which are describes with lots of pictures.</p> <p class="MsoNormal">Honestly, I think if you are professional in one reporting tools, you don't need any book, and you can just surf the tool and follow the help to overcome its difficulties.</p> <p class="MsoNormal">By the way, if you are not a guru on any reporting tools, or if you do not have enough time to spend on the cognos to migrate from SSRS, I strongly recommend this book.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">This book is not going to introduce any concept or any sophesticated techniques on reporting. However, it provides easy to follow step by step instructions to get familiar with the IBM Cognos 8 Report Studio.</p><br /><br /><a href="https://www.packtpub.com/ibm-cognos-8-report-studio-cookbook/book?utm_source=bisolutions.blogspot.com&utm_medium=bookrev&utm_content=blog&utm_campaign=mdb_003947">Book Link</a>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com2tag:blogger.com,1999:blog-3576161000006163795.post-26577183808404529912010-03-26T12:46:00.000-07:002010-03-26T12:57:52.701-07:00Solving previous problemIf we analyze the previous problem, we could consider that there are three decisions that the decision maker could take:<br /><ol><li>No treatment<br /></li><li>Treatment with aspirin<br /></li><li>Treatment with warfarin</li></ol>So, we should draw a decision three with these three decisions at first branch of tree.<br />There are three different uncertainties that could appear for treatments. Tow of these three is applied also for no treatment.<br />If we draw the decision three it should looks like the following pictures. (I just provide two pictures, because the tree for treatment with warfarin is the same as the aspirin, just different valuse)<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiujyz8xeJqfho_Mgx5pod9De9iEDdgX821RWXOq4W3fZpl1Bi7rAQA7YIFZ1g6otTpFP4BW62SK5jLAH7iA03oLM8m38MOaMonDVPGLobn5N7lmRl3v9t1SXLOHvIrhIzfjjwyF_E0V_4/s1600/1.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 83px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiujyz8xeJqfho_Mgx5pod9De9iEDdgX821RWXOq4W3fZpl1Bi7rAQA7YIFZ1g6otTpFP4BW62SK5jLAH7iA03oLM8m38MOaMonDVPGLobn5N7lmRl3v9t1SXLOHvIrhIzfjjwyF_E0V_4/s400/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5453033019101098162" border="0" /></a><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB1s2Ad4hXfd36Y1Vi9WnJfyfxfmnwvG1sP6zx9_EEFPmW6WYDaUNjLVqO4qw6MEC5vzbnryS9Ke3UwlVfkdnUueVc5FjA84DBM1d3NG7rvtRGdBjcpdICKBtahahttWHm5y7R_NUfZ70/s1600/2.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 136px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB1s2Ad4hXfd36Y1Vi9WnJfyfxfmnwvG1sP6zx9_EEFPmW6WYDaUNjLVqO4qw6MEC5vzbnryS9Ke3UwlVfkdnUueVc5FjA84DBM1d3NG7rvtRGdBjcpdICKBtahahttWHm5y7R_NUfZ70/s400/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5453033140171357906" border="0" /></a><br />If we calculate the Expected Value (EV, which clarifies the best decision that we could make) it will be clear that patients should be treated with warfarin.<br /><br /><blockquote>A decision tree of the problem is given at the end of this document.<br />No treatment & CVA & affected = ‐158,000 SEK<br />No treatment & CVA & unaffected = ‐76,600 SEK<br />No treatment & No CVA = 0<br />Aspirin/Warfarin & side‐effect & CVA & affected = ‐(15,000+158,000) = ‐173,000 SEK<br />Aspirin/Warfarin & side‐effect & CVA & unaffected = ‐(15,000+76,600) = ‐91,600 SEK<br />Aspirin/Warfarin & side‐effect & haemorrhage = ‐(15,000+32,000) = ‐47,000 SEK<br />Aspirin/Warfarin & no side‐effect & CVA & affected = ‐(15,000+158,000) = ‐173,000 SEK<br />Aspirin/Warfarin & no side‐effect & CVA & unaffected = ‐(15,000+76,600) = ‐91,600 SEK<br />Aspirin/Warfarin & no side‐effect & No CVA = ‐15,000 SEK<br />Folding back the tree:<br />EMV(no treatment) =( 0.25*(‐158,000) + 0.75*(‐76,600))*0.8 = ‐77,560<br />EMV(aspirin treatment) =(((( 0.25*(‐173,000)+0.75*(‐91,600))*0.644)+0.356*(‐47,000))*0.048) + (((0.25*(‐173,000)+0.75*(‐91,600))*0.5)+0.5*(‐15,000))*0.952 = ‐64,692<br />EMV(warfarin treatment) = (((0.25*(‐173,000)+0.75*(‐91,600))*0.5)+0.5*(‐47,000))*0.072 + (((0.25*(‐173,000)+0.75*(‐91,600))*0.1)+0.9*(‐15,000))*0.928 = ‐28,639<br />Thus, if we merely look at the costs for the hospital, patients should be treated with warfarin.</blockquote>These kind of analysis are called subjective analysis. If you are interested to deal with these kind of problem, I recommend the <a href="http://www.amazon.com/Making-Hard-Decisions-Introduction-Statistics/dp/0534260349">Making Hard Decisions: An Introduction to Decision Analysis</a> book by Robert T. Clemen.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-17516457755605761922010-03-23T14:55:00.000-07:002010-03-23T15:04:38.377-07:00Decision TreeI hade a course previous quarter. It was about how to use decision tree for taking correct decisions. It was very amazing and I want to rewrite one of the question of final exam for showing the types of question that decision tree could help us to solve. This quarter I have the second and advance version of that course called Decision and Risk Analysis, second course.<br /><br /><blockquote> You are working as a medical advisor at a big hospital and your department is specialized within cardiology. Your manager has asked you to formally analyze the medical condition of atrial fibrillation. In the analysis you will merely look at costs for the hospital and not consider other criteria. Atrial fibrillation is a common condition, which carries with it a significant risk for stroke (80%) if left untreated. Treatment with the medicines warfarin or aspirin significantly reduces this risk, but there are side-effects to both treatments. For the average patient (at moderate risk), treatment with aspirin has a slightly smaller risk for side-effects than warfarin, 4.8% as opposed to 7.2%, but aspirin reduces the risk for stroke less effectively than warfarin. The serious side-effects are either cerebrovascular accident, CVA during the treatment or haemorrhage. Of patients treated with aspirin and affected by side-effects, 64.4% get during their treatment, whereas this number is only 50% for patients treated with warfarin and affected by side-effects.<br /><br /> For the patients who do not suffer from immediate side-effects during the aspirin treatment, the risk for CVA is still 50%, whereas the risk for CVA is only 10% for patients treated by warfarin and not suffering from side-effects during the period of treatment. If an average patient (moderate risk) with atrial fibrillation gets a stroke (CVA), regardless of treatment or no treatment, he or she is classified as affected or unaffected. Out of all CVA:s that occur, 25% are affected and 75% are unaffected. Transition costs(those that happen just once) for the treatment of a patient with CVA is established to 76,600 SEK (unaffected patients), whereas the state costs (those that remain patients for their Iifetime) for treatment of a patient with CVA is estimated to 158,000SEK (affected patients). The treatment of a haemorrhage is estimated to 32,000 SEK, and the cost of a medical treatment (either aspirin or warfarin) is 15,000 SEK.<br /><br /> What would be your recommendation to the hospital in the handling of moderate risk patients with atrial fibrillation and why?</blockquote><br />But how could we solve it?<br /><br />If you draw the decision tree, you will see that the warfarin is the best medical treatment.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com2tag:blogger.com,1999:blog-3576161000006163795.post-78750146370467823382009-11-11T02:41:00.000-08:002009-11-11T02:50:12.516-08:00Predictable Changes with Multiple Version OverlaysThere is a technique in Kimball's "Data Warehouse toolkit 2nd" book that is suggested for Predictable Changes with Multiple Version Overlays situations. It was a bit intangible for me what Kimball means for that solution, but I could understand the technique when I give another example to myself ;)<br /><br />Imagine that we offer variety of products with different categories. Each product could just be belong to one category, and the category of products could be changed at the beginning of each year. However, the category of products could be changed by CEO over the time. It is ok if we want to use Slowly Changing Dimension 2 (SCD2) for this example, but the business requirements that I mention as the following make it impossible to consider this dimension as SCD2.<br /><br />Imagine we need to answer these questions:<br /><ol><li>What is the sale of a category over a period of time? (This is not the case that makes it impossible to consider the dimension as SCD2) </li><li>What is the sale of the selected category in question one on the next two years? (This is a real trouble) </li></ol><p>It may be a bit vague, so I am going to explain second question. Imagine the sales of category 1 in 2002 is X. Analysts may be interested to know what is the sale of category 1, with the products at the time of question 1, in another period of time. We should consider this fact that some category of products is changed over time; hence, how could it be possible to reflect this information. </p><p><br />This is the situation that we must follow what Kimball says. Consider a column for category of each year in product dimension table. </p><br /><br /><strong>Product D<br />------------------</strong><br /><strong>ProductID<br />…<br />Category 2001<br />Category 2002<br />Category 2003<br />… </strong><br /><br />I hope I could explain the situation well. I am eager to know what you think about this technique as well ;)Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-76827245510666809852009-08-11T03:48:00.000-07:002009-08-11T03:50:03.286-07:00Second Year Blogging AnniversaryIt has been always one of my concerns that I haven’t written any post here since May 14, 2009. The second year of my blog’s lifetime has only four posts that I am very sorry for that. It was occurred because I was too busy with my job and with handling application process of some universities simultaneously.<br />I want to start my master degree in this year to expand my knowledge about Business Intelligence. Therefore, I resigned from my job to go to Sweden. I think I will write more posts in the following year, and I hope to have wonderful experience about living in another country. I will write about the program soon ;)Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com6tag:blogger.com,1999:blog-3576161000006163795.post-43583832350539756722009-05-14T23:26:00.000-07:002009-05-14T23:32:32.325-07:00The Data Model Resource Book volume 3<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpzdMVnTaI3WsshoD9oYTmCXpXmwkJIs34YSfOCGVwSm2D2mw8zhNhthA6ZGG6yvoVIuBKjc6Qs6wJZ5dBeOVV4hFHdmsFG6YIVup1s7cRaYsfH8rvqSoMavLu8KOfdzpu7G3AY22p2w/s1600-h/The+Data+Model+Resource+Book+volume+3.jpg"><img id="BLOGGER_PHOTO_ID_5335934593868713842" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 318px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpzdMVnTaI3WsshoD9oYTmCXpXmwkJIs34YSfOCGVwSm2D2mw8zhNhthA6ZGG6yvoVIuBKjc6Qs6wJZ5dBeOVV4hFHdmsFG6YIVup1s7cRaYsfH8rvqSoMavLu8KOfdzpu7G3AY22p2w/s400/The+Data+Model+Resource+Book+volume+3.jpg" border="0" /></a><br /><div></div><br /><div>Sometimes I spent lots of time for finding the best way to design an ideal data model that could be comprehensive enough to cover all the prospective needs. But you couldn't always do your best, because your knowledge is depends on our experience.<br />It was previous week that I was looking at lots of books in Tehran Book fair. When I was looking at Wiley's books, a book grabbed my attention suddenly. It looked like a book that I have always been looking for. I believe The Data Model Resource Book volume 3 is a must book that a person who is in charge of database designing or data warehouse designing must have read.<br />I strongly recommend this book to all my friends who love database designing and data warehousing.<br />See table of contents and more details about it at <a href="http://www.amazon.com/Data-Model-Resource-Book-Universal/dp/0470178450/ref=pd_bxgy_b_text_c">Amazon</a>.</div>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com4tag:blogger.com,1999:blog-3576161000006163795.post-15342746229050619792008-11-20T08:31:00.001-08:002008-11-20T08:31:48.611-08:00Business Intelligence 2.0Business Intelligence which consists of Dashboard Systems and Decision Support Systems has grown up during long time. Most systems that BI developers have been developed are belonging to Dashboard Systems which are used for demonstrating KPIs and revealing what has happened before. Decision Support Systems which are very depends on using Data Mining advantages for being implemented, have developed much fewer than Dashboard Systems.<br /><br />BI 2.0 not only focuses on these systems, but it also changes the ETL way that we used to. Developing more Service oriented Applications, and the fact of having service-oriented data sources will change the way that we are using for gathering and cleaning data. Moreover, the needs of considering Business Processes and Business Rules, which exist in BPEL and BRMS, for performing ETL process would change this industry a lot.<br /><br />I think the next generation of BI has a lot of challenges which are very interesting to study.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com4tag:blogger.com,1999:blog-3576161000006163795.post-21978024050948293972008-10-26T22:16:00.000-07:002008-10-26T22:23:44.484-07:00AggregationsDesigning appropriate aggregations in SQL Server Analysis Services is a big issue that a BI developer must consider carefully. When I read Performance Optimization chapter of <a href="http://www.amazon.com/Professional-Server-Analysis-Services-Programmer/dp/0764579185">Professional SQL Server Analysis Services 2005 with MDX</a>, I felt that I should study designing aggregation in more detail if I wanted to get a good performance on Enterprise Data Warehouse.<br /><br />Although "<a href="http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SSAS2005PerfGuide.doc">Microsoft SQL Server 2005 Analysis Services Performance Guide</a>" has been published in February 2007, I find it today! It describes some important tips in detail.<br /><br />If you haven't read it, don't miss it.Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com0tag:blogger.com,1999:blog-3576161000006163795.post-85635625281321061592008-09-09T23:37:00.000-07:002008-09-09T23:39:44.988-07:00Change data captureIdentifying and extracting changed data from source tables was replete with lots of efforts; it also requires designing the databases in an appropriate manner for keeping the changed data within tables or log files. The concept of “Change data capture”, a set of software design patterns used to determine (and track) the data that has changed in a database, helps designers to overcome the difficulty of solving such problems.<br /><br />Fortunately, SQL Server 2008 implemented a mechanism to enable DBAs for automating this process like what we could consider in Oracle 9i which is called “Capturing Change”.<br />By using this new feature we could specify a log table in which the changes in data could be tracked. These changes are insert, update, and delete. SQL Server 2008 handles the required operation to store the appropriate data.<br /><br />The following links are very helpful for understanding this new feature which could make ETL process more easily.<br /><br /><a href="http://en.wikipedia.org/wiki/Change_data_capture">http://en.wikipedia.org/wiki/Change_data_capture</a><br /><a href="http://msdn.microsoft.com/en-us/library/cc645937(printer).aspx">http://msdn.microsoft.com/en-us/library/cc645937(printer).aspx</a><br /><a href="http://www.oracle.com/technology/oramag/oracle/03-nov/o63tech_bi.html">http://www.oracle.com/technology/oramag/oracle/03-nov/o63tech_bi.html</a>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com8tag:blogger.com,1999:blog-3576161000006163795.post-42294104936664556292008-08-11T04:04:00.000-07:002008-08-11T04:20:47.902-07:00One Year Blogging AnniversaryIt was last august that I started writing within this blog. I started blogging just for making notes on all thinks that I learn about Business Intelligence. I think it is a good idea to write about what we are learning and doing because it makes it possible for us to judge about ourselves and compare each year efforts with other years.<br />Although it played the role of technical diary for me, it led me to get familiar with a lot of friends such as <a href="http://pedrocgd.blogspot.com/">Pedro</a>, <a href="http://blogs.microsoft.co.il/blogs/barbaro">Ella</a>, and others. It was definitely the best experience that I had because I could find friends, and expand my knowledge and consider others’ opinions and roadmap.<br />I want to apply for a master degree this year, and I hope that I can find a proper master degree. I get the IELTS, and I am currently search for universities while I am contacting with their teachers for perceiving more about their courses. Hard Working and all these activities make writing a bit difficult for me, but I will try to continue blogging, especially now that SQL Server 2008 has released ;)<br />I am very eager to study about accounting, cash-flow, budgeting, ERP, supply chain management, and etc because I think an in-depth knowledge of these topics could help me to analyze KPIs better.<br /><br />Thanks you<br /><br />Best wishes,<br />Amin JalaliAminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com6tag:blogger.com,1999:blog-3576161000006163795.post-26585695829842181602008-07-25T20:29:00.000-07:002008-07-25T20:33:00.866-07:00Microsoft DreamSpark<p>Microsoft created this site for students in order to access the Professional Developer and Designer tools at no charge.It is very helpful that you can download and use softwares like "Microsoft Visual Studio 2008 Professional Edition", "Microsoft SQL Server 2005 Developer Edition", and etc at no cost.</p><p><a href="https://downloads.channel8.msdn.com/">https://downloads.channel8.msdn.com</a></p>Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com1tag:blogger.com,1999:blog-3576161000006163795.post-78433082045304729432008-04-13T21:12:00.000-07:002008-04-13T21:27:40.916-07:00Market Basket AnalysisSome time ago, one of the Accounting Division’s staff asked me to reveal if the last decision of the Bank about introducing new participation papers were successful or not; also, he asked me to specify what percent of its sales were because of changing other deposits.<br />It was a hard job, because we had not any clear idea on how to deal with this matter! It had done, but I kept thinking about solving this problem via Business Intelligence Solutions rather than executing complex queries on databases.<br />When I was reading “<a href="http://www.amazon.com/Data-Warehouse-Toolkit-Complete-Dimensional/dp/0471200247">The Data Warehouse Toolkit Second Edition</a>”, I realized that it is very similar to “Market Basket Analysis” concept, and after doing some search it began to sink in.<br />Indeed, I found it out that it could be done via association algorithm of the Data Mining. This subject is about the market basket analysis, and finding the association of products based on their sales, in order to offer new discount for increasing the sales.<br />For instance, you can imagine that when you find it out that the toothpaste and toothbrush were sold together in most situations, it could be a good starting point for designing new promotion!Aminhttp://www.blogger.com/profile/00371695808163855862noreply@blogger.com4tag:blogger.com,1999:blog-3576161000006163795.post-1176113405371934852008-03-29T22:55:00.000-07:002008-04-08T02:13:02.197-07:00Conformed DimensionThe word of Enterprise Data Warehouse is very nice at the first glance, yet when businesses want to estimate its cost, they usually prefer to have some important data marts that drive their most important business goals; in order to break its enormous cost. Beside, having these kinds of data marts could be a huge problem especially when those could not integrated with each other during the time that those are created.<br />Having bus architecture is undoubtedly one of the vital parts of building an enterprise data warehouse during the time, for it will provide the join possibility between the data marts by specifying the conformed dimensions.<br />Conformed dimensions are what which are common between data marts and make the drill across possible. Off course, it could not be eliminated from enterprise main features.<br />Finally, the most common problem that you may encounter during building the conformed dimensions is different level of grains that different data marts are needed, so it is recommended that you design dimension’s levels correctly which will even be helpful for drilling through actions.Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-3576161000006163795.post-50291267937204317092008-03-01T23:07:00.000-08:002008-04-08T02:12:48.073-07:00Factless Fact TablesI have recently got familiar with the concept of “Factless Fact Tables”, and due to the fact that it was very interesting for me, I like to share it with you, if you are not already familiar with it.<br />The “Factless Fact Table” is a table which is similar to Fact Table except for having any measure; I mean that this table just has the links to the dimensions. But what is the benefit?<br />These tables enable you to track events; indeed they are for recording events.<br />Another kind of this Table is known as “Factless Coverage Table” which is very usefull. Imagine that you have a retail stores and each store has its own promotion policy. It would be very complicated if you wanted to answer this sort of question: “Which products were on promotion that didn't sell?”<br />The best way for covering these kinds of questions is the coverage tables. These tables hold the coverage data for answering these questions.<br />I also recommend reading “<a href="http://www.dbmsmag.com/9609d05.html">Factless Fact Tables</a>” that was written by Ralph Kimball.Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-3576161000006163795.post-62410167760261374962008-01-23T21:47:00.000-08:002008-11-13T01:11:10.402-08:00“Other” member in Data VisualizationOne important and fabulous thing that I learned from "Data Analysis Using SQL and Excel" book is how I can represent correct data using correct SQL query.<br />Imagine that we have an orders table in which we have customer’s orders. Now we need to present the following query:<br />What is the distribution of the number of orders in the 5 states that have the largest number of orders? (By representing the Other‘s as a other category)<br /><br /><strong>SQL:</strong><br /><hr /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio7balU7QovBqTXzSCJXgGbwODJhe4Lg_ocGAZE4gI_72sK0Lv9xTybdue3mC5xsjPdtEHFa0qGeaUVsJzjq4EBbiLU9bXFg6gzLr1_IUrbvnt6JiWhy08C7A99UASJGN29zjRLuDKh3o/s1600-h/untitled.JPG"><img id="BLOGGER_PHOTO_ID_5158917517052581714" style="CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio7balU7QovBqTXzSCJXgGbwODJhe4Lg_ocGAZE4gI_72sK0Lv9xTybdue3mC5xsjPdtEHFa0qGeaUVsJzjq4EBbiLU9bXFg6gzLr1_IUrbvnt6JiWhy08C7A99UASJGN29zjRLuDKh3o/s400/untitled.JPG" border="0" /></a><br /><br /><strong>Chart:</strong><br /><hr /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH6Qs8NTbUa2iurcYmUPv4j5BPeh4pVBu4e8g7msMwMy2y9Z-ExG0Hdq9X72V8FvKbvQc5YegVRaX5HuxKNKVm3Rq1z9GJk1UcfQ2uTE1Y_va-OxsA9m85dDPBtibzt6KO1xhouoX2EqU/s1600-h/chart.JPG"><img id="BLOGGER_PHOTO_ID_5158917688851273570" style="CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH6Qs8NTbUa2iurcYmUPv4j5BPeh4pVBu4e8g7msMwMy2y9Z-ExG0Hdq9X72V8FvKbvQc5YegVRaX5HuxKNKVm3Rq1z9GJk1UcfQ2uTE1Y_va-OxsA9m85dDPBtibzt6KO1xhouoX2EqU/s400/chart.JPG" border="0" /></a>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-3576161000006163795.post-21072209851376688312008-01-04T21:44:00.000-08:002008-04-08T02:12:06.683-07:00Analyzing vs. DesigningI want to describe the difference between "Data Mining with SQL Server 2005" and "Data Analysis Using SQL and excel" in general.<br />This difference is derived from the distinction between analyzing and designing data mining systems.<br />For analyzing a Data Mining system, you must use some tools that have the potential of rapid development, in order to interact with the stakeholders and users quickly. In this situation, I recommend using Excel and SQL to clarify the results for users, due to the fact that, in this situation there is not any implemented mining model on OLAP server.<br />But if you are designing a Data Mining system, you must have a good knowledge of the OLAP server and the development tools that it has.<br />As a result, I think the “Data Mining with SQL Server 2005" suits for Designing, while the "Data Analysis Using SQL and excel" is appropriate for Analyzing.<br /><br />I prefer to read both of these books, in order to handle the analyst and designer roles in a BI project, Maybe it is because of the fact that, I could not find anyone who can do one of these roles.<br />But I prefer to read the “Data Analysis Using SQL and excel” at first, then involve in “Data Mining with SQL Server 2005”.<br />I think it is worth to buy “Data Analysis Using SQL and excel”, but I have not any idea about the other book, but it is not so important, because there are not any other books which describe Data mining with SQL Server 2005, practically.<br />Finally, I do not think these books can be used instead of each other. In fact, they must be used as complementary.Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-3576161000006163795.post-18320950169680585692007-12-30T00:37:00.000-08:002008-04-08T02:11:47.065-07:00Data Analysis Using SQL and ExcelI work as a system analyst and Designer, and also Database Designer. I have a good command of database and SQL. Moreover, I performed some data realization using Excel. But I never imagined how tightly they can fit together.<br /><br />I am familiar with normal distribution and some other simple techniques in statistics theoretically, yet I have a big problem with statistic concepts like Regression and other ones.<br /><br />When I started to read some books about data mining, this was the main problem that I dropped data mining. When I saw this book, I felt like the time that I seen MDX Solution book. It raised my hopes of achieving the difficulty of data mining. I take a quick look at it, and it seems organized very well.<br /><br />I decided to write an overview about this book in order to help my friend Pedro and some other people who want to make a decision to buy this book or not, but keep it in your mind that I write this post based on taking a quick overview on that, not by reading it completely.<br /><br /><strong>Chapter 1: A Data Miner Looks at SQL</strong><br />The author introduces Dataflow concept in this chapter.<br /><br /><strong>Chapter 2: What’s In a Table? Getting Started with Data Exploration</strong><br />This chapter explains how you can explore SQL results with excel charts. I discover another point of view by skimming this chapter.<br /><br /><strong>Chapter 3: How Different Is Different?</strong><br />The basic concepts of statistic and the combination of statistics, SQL, and Excel are explained in this chapter.<br /><br /><strong>Chapter 4: Where Is It All Happening? Location, Location, Location</strong><br />The geography and the processes which could be done using SQL and Excel play a primary role in discovering the knowledge. You can observe this great job by reading this chapter.<br /><br /><strong>Chapter 5: It’s a Matter of Time</strong><br />This chapter does just as the previous one but for time.<br /><br /><strong>Chapter 6: How Long Will Customers Last? Survival Analysis to Understand Customers and Their Value</strong><br />Nothing will be better than the sentence that author mentioned at the first: “Survival analysis estimates how long it takes for a particular event to happen. A customer starts; when will that customer stop? By assuming that the future will be similar to the past (the homogeneity assumption), the wealth of data about historical customer behavior can help us understand what will happen and when.”<br /><br /><strong>Chapter 7: Factors Affecting Survival: The What and Why of Customer Tenure</strong><br />“This chapter builds on this foundation, by introducing three extensions of basic survival analysis. These extensions solve some common problems faced when applying survival analysis in the real world. They also make it possible to understand the effects of other factors besides tenure on survival.”<br /><br /><strong>Chapter 8: Customer Purchases and Other Repeated Events</strong><br />This chapter discusses everything about customer behavior: when, where, and how. With one notable exception: what customers purchase.<br /><br /><strong>Chapter 9: What’s in a Shopping Cart? Market Basket Analysis and Association Rules</strong><br />“This chapter dives into the detail, looking at the specific products being purchased, to learn both about the customers and the products they are buying. Market basket analysis is the general name for understanding product purchase patterns at the customer level.”<br /><br /><strong>Chapter 10: Data Mining Models in SQL</strong><br />“This chapter takes an alternative approach that introduces data mining concepts using databases. This perspective presents the important concepts, sidestepping the rigor of theoretical statistics to focus instead on the most important practical aspect: data.”<br /><br /><strong>Chapter 11: The Best-Fit Line: Linear Regression Models</strong><br /><br /><strong>Chapter 12: Building Customer Signatures for Further Analysis</strong><br />This chapter focuses on data preparation.Unknownnoreply@blogger.com1