590 likes | 621 Views
Explore the fundamentals of data mining with SQL Server integration, programming, and visualization for business intelligence solutions. Learn about data sources, cleansing, and building data warehouses. Understand the purpose of data mining, business scenarios, and key algorithms for detecting fraud, forecasting sales, and customer segmentation. Discover how SQL Server simplifies advanced technology with a range of algorithms for data extraction and managing large data volumes. Utilize standard programming interfaces such as XMLA and DMX for developing intelligent applications.
E N D
Business Intelligence Fundamentals: Data Mining Ola Ekdahl IT Mentors
Business Intelligence Fundamentals: Data Mining Introducing Data Mining Integration with SQL Server 2008 Components Data Mining Programmability Agenda
Where Are We? Data Sources Data Marts Staging Area Manual Cleansing Business Intelligence Fundamentals: Data Mining Data Warehouse
Business Intelligence Fundamentals: Data Mining Module Overview (Краткий обзор модуля) • Introducing Data Mining • Integration with SQL Server 2008 Components • Data Mining Programmability
Business Intelligence Fundamentals: Data Mining Introducing Data Mining • Purpose of Data Mining (цель) • Business Scenarios (Деловые сценарии) • SQL Server 2008 Data Mining • Data Preparation (Подготовка) • Data Mining Process • Data Mining Visualization
Business Intelligence Fundamentals: Data Mining Purpose of Data Mining (Цель интеллектуального анализа данных) • Рассматривает проблему слишком большого количества данных и недостаточной информации • Позволяет исследование данных, открытие образца и предсказание образца — которые приводят к открытию знаний • Forms a key part of a BI solution (Формирует ключевую роль BI solution )
Business Intelligence Fundamentals: Data Mining Business Scenarios • Identifying responsive customers/unresponsive customers (also known as churn analysis) - Идентификация отзывчивых клиентов / безразличных клиентов • Detecting fraud - Обнаружение мошенничества • Targeting promotions - Планирование для поощрений • Managing risk - Управление риском • Forecasting sales - Прогноз продаж • Cross-selling - Поперечная продажа • Segmenting customers - Сегментация клиентов
Business Intelligence Fundamentals: Data Mining SQL Server 2008 Data Mining • Скрывает сложность передовой технологии • Включает полный набор алгоритмов, чтобы автоматически извлечь информацию из данных • Управляет большим объемом данных • Данные могут поступать от реляционных и OLAP баз данных • Uses standard programming interfaces • XMLA • DMX • Delivers a complete framework for building and deploying intelligent applications
Язык MDX (по материалам кандидата физ.-мат. наук, Степанова Р.Г., КГУ 2011) SQL — Structured Query Language (язык структурированных запросов). Служит для выполнения запросов к реляционной базе данных. MDX — Multi-Dimendional eXpressions (язык многомерных выражений). Используется для извлечения из баз данных OLAP. Язык MDX позволяет выполнять более сложные операции, чем SQL. Изначально MDX разработан компанией Microsoft в 1998 г.
Язык MDX MDX поддерживается многими ведущими производителями решений для OLAP. Серверы: MS SQL Server Analysis Services, Mondrian, Palo, Applix, Microstrategy, SAS, SAP, Whitelight, NCR Клиенты: Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology, Crystal Reports, MS Excel, и т.д. MDX — стандартный язык запросов в спецификации XML for Analysis (XMLA).
Основные объекты многомерных баз данных Куб (Cube); Измерение (Dimension) — играет роль справочника; Мера (Measure) — количественная сущность;
Пример запроса MDX SELECT Measures.[Internet Sales Amount] ONCOLUMNS FROM [Adventure Works] WHERE ( [Date].[Calendar].[Calendar Quarter].&[2003]&[2], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]) Результат:Internet Sales Amount$323,561.09
Основы Измерение содержит одну или несколько иерархий. Каждый уровень иерархии измерения содержит набор элементов, называемых членами (members). Каждый член иерархии имеет уникальное имя. Пример: член уровня [Calendar Quarter] иерархии [Calendar] измерения [Date]: [Date].[Calendar].[Calendar Quarter].[Q2 CY 2005]
Основы В общем случае для доступа к члену иерархии можно использовать форматы: [Имя измерения].[Имя иерархии].[Имя уровня].[Имя члена]. Пример: [Customer].[Country].[Australia] [Место]. [Иерархия_Место].[РФ].[Москва]
Объект Measures Объект Measures (меры) — специальное измерение, содержащее в качестве членов набор мер. Пример — мера Internet Sales Amount: Measures.[Internet Sales Amount] Для каждой меры задана функция агрегации.
Срез куба Ячейка (cell) куба идентифицируется набором членов измерений, на пересечении которых находится эта ячейка. Срез куба (slice) также задается набором членов измерений, определяющих срез. Синтаксис: в круглых скобках перечисляются члены измерений, разделенные запятыми. Если кортеж задается только одним членом измерения, то скобки можно опускать.
Кортеж Примеры: [Customer].[Country].[Germany] ( [Date].[Calendar].[Calendar Quarter].[Q2 CY 2003], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]). Подобное выражение на языке MDX называется кортежем (tuple).
Пример 1. Запрос для получения суммы продаж через Интернет для всех клиентов из Германии: SELECT Measures.[Internet Sales Amount] onCOLUMNS FROM [Adventure Works] WHERE ([Customer].[Country].[Germany]) Результат: $2,894,312.34
Набор Набор (set) — это совокупность кортежей, которые определены с использованием одинакового количества одних и тех же измерений. Набор обычно заключается в фигурные скобки {}. Пример: {(Customer.Country.Australia), (Customer.Country.Canada
MDX-запрос Синтаксис MDX-запроса: [WITH <formula_expression> [, <formula_expression> ...]] SELECT [<axis_expression>, [<axis_expression>...]] FROM [<cube_expression>] [WHERE [slicer_expression]] Фразы WITHи WHEREявляются необязательными.
Оси в MDX <axis_expression> := <набор> ON (ось) | Axis (номер оси) | (номер оси) Пять осей имеют псевдонимы: COLUMNS, ROWS, PAGES, SECTIONS и CHAPTERS. Последующие оси указываются с помощью слова Axis, за которым следует номер оси. В запросе можно указать до 128 осей.
Пример 2. SELECT Measures.[Internet Sales Amount] ONCOLUMNS, [Customers].[Country].MEMBERSonROWS, [Product].[Product Line].MEMBERSonPAGES FROM [Adventure Works] эквивалентен SELECT Measures.[Internet Sales Amount] ON 0, [Customers].[Country].MEMBERSon 1, [Product].[Product Line].MEMBERSon 2 FROM [Adventure Works]
Секция FROM Предложение FROM в MDX-запросе определяет куб, из которого необходимо извлечь данные для анализа. В запросе MDX можно указать имя только одного куба данных. Данные из других кубов можно получить, используя функцию LookupCube языка MDX. Introduction to SQL Server 2008 Data Mining
Секция WHERE - здесь указывается срез куба, который нас интересует. SELECT [Measures].[Internet Sales Amount] ONCOLUMNS, [Product].[Product Line].MEMBERSonROWS FROM [Adventure Works] WHERE([Product].[Color].[Silver]) Introduction to SQL Server 2008 Data Mining
Секция WITH Используется для выполнения дополнительных вычислений в рамках запроса. Синтаксис: [WITH <formula_expression> [, <formula_expression> …]] Introduction to SQL Server 2008 Data Mining
Именованные наборы Formula_expression := [DYNAMIC] SET <псевдоним_набора> AS [']<набор>['] WITHSET [EUROPE] AS '{[Customer].[Country].[Country].&[France], [Customer].[Country].[Country].&[Germany],[Customer].[Country]. [Country].&[United Kingdom]} ' SELECT Measures.[Internet Sales Amount] onCOLUMNS, [EUROPE] ONROWS FROM [Adventure Works] Introduction to SQL Server 2008 Data Mining
Вычисляемые члены Formula_expression := MEMBER <ИмяЧлена> AS [']<Выражение_MDX>['], [ , SOLVE_ORDER = <целое число>] [ , <СвойствоЯчейки> = <ВыражениеСвойства>] WITHMEMBER [MEASURES].[Profit] AS '[Measures].[Internet Sales Amount]-[Measures].[Internet Standard Product Cost]' SELECT Measures.profit ONCOLUMNS, [Customer].[Country].MEMBERSONROWS FROM [Adventure Works] Introduction to SQL Server 2008 Data Mining
Introduction to SQL Server 2008 Data Mining WITH SET [ProductOrder] AS 'Order([Product].[Product Line].MEMBERS, [Internet Sales Amount], BDESC)' MEMBER [Measures].[ProductRank] AS 'Rank([Product].[Product Line].CURRENTMEMBER, [ProductOrder])' SELECT {[ProductRank],[Sales Amount]} ONCOLUMNS, [ProductOrder] onROWS FROM [Adventure Works]
Пример 4. WITHMEMBER [Date].[Calendar].[%Change] AS 100* (([Date].[Calendar].[Calendar Quarter].[Q2 CY 2002] - [Date].[Calendar].[Calendar Quarter].[Q1 CY 2002]) / [Date].[Calendar].[Calendar Quarter].[Q2 CY 2002]) SELECT {[Date].[Calendar].[Calendar Quarter].[Q1 CY 2002], [Date].[Calendar].[Calendar Quarter].[Q2 CY 2002], [Date].[Calendar].[%Change]} ONCOLUMNS, {Measures.[Internet Sales Amount],[Measures].[Customer Count], [Measures].[Internet Gross Profit]} ONROWS FROM [Adventure Works] Introduction to SQL Server 2008 Data Mining
Пример 4. Introduction to SQL Server 2008 Data Mining
Пример 5. WITHMEMBER [Date].[Calendar].[First8MonthsCY2003] AS Aggregate(YTD([Date].[Calendar].[Month].[August 2003])) SELECT [Date].[Calendar].[First8MonthsCY2003] ONCOLUMNS, [Product].[Category].ChildrenONROWS FROM [Adventure Works] WHERE [Measures].[Order Quantity] Introduction to SQL Server 2008 Data Mining
Другие элементы MDX Комментарии // здесь следует комментарий -- здесь следует комментарий /* здесь следует комментарий */ Арифметические операторы +, –, * и / Операторы наборов Операторы сравнения <, <=, >, >=, = и <> Логические операторы AND, OR, XOR, NOT Introduction to SQL Server 2008 Data Mining
Операторы наборов '+' - объединение наборов '-' - разность двух наборов '*' - векторное произведение двух наборов Introduction to SQL Server 2008 Data Mining • Двоеточие ':' • SELECT [Measures].[Internet Sales Amount] ON 0, • {[Date].[Calendar].[CY 2001]:[Date].[Calendar].[CY 2003]} ON 1 • FROM [Adventure Works]
Функции MDX Функции для members Members — при применении к иерархии возвращает набор всех членов иерархии, независимо от уровня; при применении к уровню возвращает набор всех членов измерения на данном уровне. Children, Parent — перемещение вверх и вниз по уровням. PrevMember, NextMember, Lag, Lead — перемещение в пределах одного уровня FirstChild, LastChild — возвращает первый (последний) потомок данного элемента. MemberToStr(<Выражение члена>), StrToMember(<Строка>); Introduction to SQL Server 2008 Data Mining
Функции MDX Функции наборов CrossJoin возвращает все возможные комбинации членов наборов, указанных в качестве ее аргументов. CrossJoin(Выражение_набора [, Выражение_набора …]) Filter ограничивает результаты запроса на основе некоторого условия. Filter( Выражение_набора, {Логическое_выражение | [CAPTION | KEY | NAME] = Строковое_выражение}) Introduction to SQL Server 2008 Data Mining
Пример 6. SELECT Measures.[Internet Sales Amount] ONCOLUMNS, FILTER(CROSSJOIN( {Product.[Product Line].[Product Line].MEMBERS}, {[Customer].[Country].MEMBERS}), [Internet Sales Amount] >2000000) ONROWS FROM [Adventure Works] Introduction to SQL Server 2008 Data Mining
Пример 6. Результаты запроса Introduction to SQL Server 2008 Data Mining
Функция Exists Exists( Set_Expression1 , Set_Expression2 [, MeasureGroupName] ) - возвращает кортежи из набора 1, которые существуют вместе с одним или более кортежем из набора 2. Клиенты из Калифорнии: SELECT [Measures].[Internet Sales Amount] ON 0, EXISTS([Customer].[Customer].[Customer].MEMBERS , {[Customer].[State-Province].&[CA]&[US]}) ON 1 FROM [Adventure Works] Introduction to SQL Server 2008 Data Mining
Функции MDX. Справочник по функциям MDX в составе MSDN: http://msdn.microsoft.com/en-us/library/ms145970.aspx Благодарим Казанский (Приволжский) Федеральный Университет и кандидата физ.-мат. наук, Степанова Р.Г. За предоставленный раздел Introduction to SQL Server 2008 Data Mining
Business Intelligence Fundamentals: Data Mining SQL Server 2008 Algorithms • Decision Trees • The most popular data mining technique • Used for classification • Clustering • Finds natural groupings inside data • Sequence Clustering • Groups a sequence of discrete events into natural groups based on similarity • Use this algorithm to understand how visitors use your Web site
Business Intelligence Fundamentals: Data Mining SQL Server 2008 Algorithms • Naïve Bayes • Used for classification in similar scenarios to Decision Trees • Linear Regression • Finds the best possible straight line through a series of points • Used for prediction analysis • Logistic Regression • Fits to an exponential factor • Used for prediction analysis
Business Intelligence Fundamentals: Data Mining SQL Server 2008 Algorithms • Association Rules • Supports market basket analysis to learn what products are purchased together • Time Series • Forecasting algorithm used for short-term or long-term predictions future values from a time series • Use multiple series to predict “what if” scenarios • Neural Network • Used for classification and regression tasks • More sophisticated than Decision Trees and Naïve Bayes, this algorithm can explore extremely complex scenarios
Business Intelligence Fundamentals: Data Mining Data Preparation (погдготовка) • Often significant amounts of effort are required to prepare data for mining (Часто существенное количество усилия требуется, чтобы готовить данные к тому, что они добыли) • Transforming for cleaning and reformatting (Преобразование для очистки и переформатирования) • Isolating and flagging abnormal data (Изоляция и ослабление неправильных данных) • Appropriately substituting missing values (Соответственно занимающие место недостающие ценности) • Discretizing continuous values into ranges (дискретизация нпр-х данных в диапазоны) • Normalizing values between 0 and 1 (Нормализация значений между 0 и 1)
Business Intelligence Fundamentals: Data Mining Data Mining Process Design time (Время разработки) Process time (Время процесса) Query time (Время вопроса) Mining Model
Microsoft Developer & Platform Evangelism Business Intelligence Fundamentals: Data Mining Data Mining Process Design time Process time Query time Mining Model Data Mining Engine Training Data
Microsoft Developer & Platform Evangelism Business Intelligence Fundamentals: Data Mining Data Mining Process Design time Process time Query time Mining Model Data Mining Engine Data to Predict Predicted Data
Business Intelligence Fundamentals: Data Mining Data Mining Visualization • In contrast to OLTP and OLAP queries, data mining queries typically extract previously unknown information (В отличие от OLTP и запросов OLAP, вопросы сбора данных как правило извлекают ранее неизвестную информацию) • Visualizations can effectively present data discoveries (Визуализация может эффективно представить открытия данных) • SQL Server 2008 provides algorithm-specific visualizations that you can se to (2008 SQL сервера обеспечивает определенную для алгоритма визуализацию, к которой Вы можете) • Test and explore models in Business Intelligence Development Studio • Embed into Windows Forms applications (вкл) • Developers can construct and plug-in custom data mining viewers (Разработчики могут построить и зрители сбора данных обычая программного расширения)
Business Intelligence Fundamentals: Data Mining Integration with SQL Server 2008 Components • Integration with SSIS • Integration with SSAS • Integration with SSRS
Business Intelligence Fundamentals: Data Mining Integration with SSIS • Perform data mining directly in the control flow or the data flow pipeline • Configure “intelligent” packages based on data mining query results Enterprise Edition only
Business Intelligence Fundamentals: Data Mining Integration with SSAS • Create data mining models directly from OLAP stores • Create dimensions from data mining models to slice cubes using discovered patterns • Decision Trees • Clustering • Association Rules