Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
5/22/2017
Business Intelligence
Fundamentals: Data
Mining
Ola Ekdahl
IT Mentors
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
2
1. Introducing Data Mining
2. Integration with SQL Server
2008 Components
3. Data Mining Programmability
Agenda
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
3
Where Are We?
Data Warehouse
Data Sources
Data Marts
Staging Area
Manual
Cleansing
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
Module Overview (Краткий обзор модуля)
Introducing Data Mining
Integration with SQL Server 2008 Components
Data Mining Programmability
Presented by
ISV Innovation
4
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
Presented by
ISV Innovation
5
Business Intelligence Fundamentals: Data Mining
Purpose of Data Mining (Цель интеллектуального
анализа данных)
Рассматривает проблему слишком большого
количества данных и недостаточной информации
Позволяет исследование данных, открытие образца и
предсказание образца — которые приводят к
открытию знаний
Forms a key part of a BI solution (Формирует ключевую
роль BI solution )
Presented by
ISV Innovation
6
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 - Сегментация клиентов
Presented by
ISV Innovation
7
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
Presented by
ISV Innovation
8
Язык MDX (по материалам кандидата физ.-мат.
наук, Степанова Р.Г., КГУ 2011)
SQL — Structured Query Language (язык
структурированных запросов). Служит для выполнения
запросов к реляционной базе данных.
MDX — Multi-Dimendional eXpressions (язык
многомерных выражений). Используется для
извлечения из баз данных OLAP. Язык MDX позволяет
выполнять более сложные операции, чем SQL.
Изначально MDX разработан компанией Microsoft в
Presented by
1998
г.
ISV Innovation
Язык 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).
Presented by
ISV Innovation
Основные объекты многомерных баз данных
Куб (Cube);
Измерение (Dimension) — играет роль справочника;
Мера (Measure) — количественная сущность;
Presented by
ISV Innovation
Пример запроса MDX
SELECT Measures.[Internet Sales Amount] ON
COLUMNS
FROM [Adventure Works]
WHERE ( [Date].[Calendar].[Calendar
Quarter].&[2003]&[2],
[Product].[Product Line].[Mountain],
[Customer].[Country].[Australia])
Результат: Internet Sales Amount $323,561.09
Presented by
ISV Innovation
Основы
Измерение содержит одну или несколько иерархий.
Каждый уровень иерархии измерения содержит набор
элементов, называемых членами (members).
Каждый член иерархии имеет уникальное имя.
Пример: член уровня [Calendar Quarter] иерархии
[Calendar] измерения [Date]:
[Date].[Calendar].[Calendar Quarter].[Q2 CY 2005]
Presented by
ISV Innovation
Основы
В общем случае для доступа к члену иерархии можно
использовать форматы:
[Имя измерения].[Имя иерархии].[Имя уровня].[Имя
члена].
Пример:
[Customer].[Country].[Australia]
[Место]. [Иерархия_Место].[РФ].[Москва]
Presented by
ISV Innovation
Объект Measures
Объект Measures (меры) — специальное измерение,
содержащее в качестве членов набор мер.
Пример — мера Internet Sales Amount:
Measures.[Internet Sales Amount]
Для каждой меры задана функция агрегации.
Presented by
ISV Innovation
Срез куба
Ячейка (cell) куба идентифицируется набором членов
измерений, на пересечении которых находится эта
ячейка.
Срез куба (slice) также задается набором членов
измерений, определяющих срез.
Синтаксис: в круглых скобках перечисляются члены
измерений, разделенные запятыми. Если кортеж
задается только одним членом измерения, то скобки
Presented by
можно
опускать.
ISV Innovation
Кортеж
Примеры:
[Customer].[Country].[Germany]
( [Date].[Calendar].[Calendar Quarter].[Q2 CY 2003],
[Product].[Product Line].[Mountain],
[Customer].[Country].[Australia]).
Подобное выражение на языке MDX называется
кортежем (tuple).
Presented by
ISV Innovation
Пример 1. Запрос для получения суммы продаж
через Интернет для всех клиентов из Германии:
SELECT Measures.[Internet Sales Amount] on COLUMNS
FROM [Adventure Works]
WHERE ([Customer].[Country].[Germany])
Результат: $2,894,312.34
Presented by
ISV Innovation
Набор
Набор (set) — это совокупность кортежей, которые
определены с использованием одинакового
количества одних и тех же измерений. Набор обычно
заключается в фигурные скобки {}.
Пример:
{(Customer.Country.Australia), (Customer.Country.Canada
Presented by
ISV Innovation
MDX-запрос
Синтаксис MDX-запроса:
[WITH <formula_expression> [, <formula_expression> ...]]
SELECT [<axis_expression>, [<axis_expression>...]]
FROM [<cube_expression>]
⦁ [WHERE [slicer_expression]]
Фразы WITH и WHERE являются
необязательными.
Presented by
ISV Innovation
Оси в MDX
<axis_expression> := <набор> ON (ось) | Axis (номер оси)
| (номер оси)
Пять осей имеют псевдонимы: COLUMNS, ROWS,
PAGES, SECTIONS и CHAPTERS. Последующие оси
указываются с помощью слова Axis, за которым следует
номер оси. В запросе можно указать до 128 осей.
Presented by
ISV Innovation
Пример 2.
SELECT Measures.[Internet Sales Amount] ON COLUMNS,
[Customers].[Country].MEMBERS on ROWS,
[Product].[Product Line].MEMBERS on PAGES
FROM [Adventure Works]
эквивалентен
SELECT Measures.[Internet Sales Amount] ON 0,
[Customers].[Country].MEMBERS on 1,
[Product].[Product Line].MEMBERS on 2
Presented by
FROM
[Adventure Works]
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Секция FROM
Предложение FROM в MDX-запросе определяет куб,
из которого необходимо извлечь данные для
анализа.
В запросе MDX можно указать имя только одного
куба данных.
Данные из других кубов можно получить, используя
функцию LookupCube языка MDX.
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Секция WHERE - здесь указывается срез куба, который нас
интересует.
SELECT [Measures].[Internet Sales Amount] ON COLUMNS,
[Product].[Product Line].MEMBERS on ROWS
FROM [Adventure Works]
WHERE ([Product].[Color].[Silver])
Internet Sales Amount
All Products
$5,113,389.08
Accessory
$40,307.67
Presented by
Components
ISV Innovation
(null)
Introduction to SQL Server 2008 Data Mining
Секция WITH
Используется для выполнения дополнительных
вычислений в рамках запроса.
Синтаксис:
[WITH <formula_expression> [, <formula_expression> …]]
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Именованные наборы
Formula_expression := [DYNAMIC] SET <псевдоним_набора> AS [']<набор>[']
WITH SET [EUROPE] AS '{[Customer].[Country].[Country].&[France],
[Customer].[Country].[Country].&[Germany],[Customer].[Country].
[Country].&[United Kingdom]} '
SELECT Measures.[Internet Sales Amount] on COLUMNS,
[EUROPE] ON ROWS
by
Presented
FROM
[Adventure Works]
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Вычисляемые члены
Formula_expression := MEMBER <ИмяЧлена> AS [']<Выражение_MDX>['], [ ,
SOLVE_ORDER = <целое число>] [ , <СвойствоЯчейки> =
<ВыражениеСвойства>]
WITH MEMBER [MEASURES].[Profit] AS '[Measures].[Internet Sales Amount][Measures].[Internet Standard Product Cost]'
SELECT Measures.profit ON COLUMNS,
[Customer].[Country].MEMBERS ON ROWS
FROM [Adventure Works]
Presented by
ISV Innovation
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]} ON COLUMNS,
[ProductOrder] on ROWS
FROM [Adventure Works]
ProductRank
Sales Amount
All Products
1 $109,809,274.20
Road
2 $48,262,055.15
Mountain
3 $42,456,731.56
Presented by
Touring
ISV Innovation
4 $16,010,837.10
Introduction to SQL Server 2008 Data Mining
Пример 4.
WITH MEMBER [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]} ON COLUMNS,
{Measures.[Internet Sales Amount],[Measures].[Customer Count],
[Measures].[Internet Gross Profit]} ON ROWS
Presented by
FROM
ISV Innovation[Adventure Works]
Introduction to SQL Server 2008 Data Mining
Пример 4.
Q1 CY 2002
Q2 CY 2002
%Change
Internet Sales Amount $1,791,698.45 $2,014,012.13 11.0383486486941
Customer Count
558
635
12.1259842519685
Internet Gross Profit
$719,198.90
$812,350.79
11.4669534172378
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Пример 5.
WITH MEMBER [Date].[Calendar].[First8MonthsCY2003] AS
Aggregate(YTD([Date].[Calendar].[Month].[August 2003]))
SELECT [Date].[Calendar].[First8MonthsCY2003] ON COLUMNS,
[Product].[Category].Children ON ROWS
FROM [Adventure Works]
WHERE [Measures].[Order Quantity]
Accessories
First8MonthsCY2003
9,98
Bikes
21,62
Clothing
18,85
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Другие элементы MDX
Комментарии
// здесь следует комментарий
-- здесь следует комментарий
/* здесь следует комментарий */
Арифметические операторы +, –, * и /
Операторы наборов
Операторы сравнения <, <=, >, >=, = и <>
Логические операторы AND, OR, XOR, NOT
Presented by
ISV Innovation
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]
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Функции MDX
Функции для members
Members — при применении к иерархии возвращает набор всех членов иерархии,
независимо от уровня; при применении к уровню возвращает набор всех членов
измерения на данном уровне.
Children, Parent — перемещение вверх и вниз по уровням.
PrevMember, NextMember, Lag, Lead — перемещение в пределах одного уровня
FirstChild, LastChild — возвращает первый (последний) потомок данного элемента.
MemberToStr(<Выражение члена>), StrToMember(<Строка>);
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Функции MDX
Функции наборов
CrossJoin возвращает все возможные комбинации
членов наборов, указанных в качестве ее аргументов.
CrossJoin(Выражение_набора [, Выражение_набора …])
Filter ограничивает результаты запроса на основе
некоторого условия.
Filter( Выражение_набора, {Логическое_выражение |
[CAPTION | KEY | NAME] = Строковое_выражение})
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Пример 6.
SELECT Measures.[Internet Sales Amount] ON COLUMNS,
FILTER(CROSSJOIN( {Product.[Product Line].[Product Line].MEMBERS},
{[Customer].[Country].MEMBERS}),
[Internet Sales Amount] >2000000) ON ROWS
FROM [Adventure Works]
Presented by
ISV Innovation
Introduction to SQL Server 2008 Data Mining
Пример 6. Результаты запроса
Internet Sales Amount
Mountain
All Customers
$10,251,183.52
Mountain
Australia
$2,906,994.45
Mountain
United States
$3,547,956.78
Road
All Customers
$14,624,108.58
Road
Australia
$5,029,120.41
Presented by
ISV Innovation
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
Presented by
FROM
ISV Innovation
[Adventure Works]
Introduction to SQL Server 2008 Data Mining
Функции MDX.
Справочник по функциям MDX в составе
MSDN:
http://msdn.microsoft.com/en-us/library/ms145970.aspx
Благодарим Казанский (Приволжский) Федеральный
Университет и кандидата физ.-мат. наук, Степанова Р.Г.
За предоставленный раздел
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
40
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
Presented by
ISV Innovation
Use this algorithm to understand how visitors use your Web
site
Business Intelligence Fundamentals: Data Mining
41
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
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
42
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
Presented by
ISV Innovation
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 (дискретизация нпр-х данных в диапазоны)
by
Presented
Normalizing
values between 0 and 1 (Нормализация значений между 0 и 1)
ISV Innovation
43
Business Intelligence Fundamentals: Data Mining
44
Data Mining Process
Design time (Время разработки)
Process time (Время процесса)
Query time (Время вопроса)
Presented by
ISV Innovation
Mining Model
Business Intelligence Fundamentals: Data Mining
45
Data Mining Process
Design time
Process time
Mining Model
Query time
Training Data
Data
Mining
Engine
Presented by
ISV Innovation
Mar-2008
Microsoft Developer & Platform Evangelism
Business Intelligence Fundamentals: Data Mining
46
Data Mining Process
Design time
Process time
Mining Model
Query time
Data
Mining
Engine
Presented by
ISV Innovation
Mar-2008
Predicted Data
Microsoft Developer & Platform Evangelism
Data to Predict
Business Intelligence Fundamentals: Data Mining
47
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 (вкл)
Presented by
Developers
can construct and plug-in custom data mining viewers
ISV Innovation
(Разработчики могут построить и зрители сбора данных обычая программного расширения)
Business Intelligence Fundamentals: Data Mining
Integration with SQL Server 2008 Components
Integration with SSIS
Integration with SSAS
Integration with SSRS
Presented by
ISV Innovation
48
Business Intelligence Fundamentals: Data Mining
49
Integration with SSIS
Perform data mining directly in the control flow or the data
flow pipeline
Enterprise Edition only
Configure “intelligent” packages based on data mining
query results
Presented by
ISV Innovation
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
Presented by
ISV Innovation
50
Business Intelligence Fundamentals: Data Mining
Integration with SSRS
Present data mining results in SSRS reports
Prediction queries
Content queries
Parameterized queries
Use a data mining query builder to easily select results
Apply grouping and aggregation to summarize results
Distribute data mining results by using subscriptions
Presented by
ISV Innovation
51
Business Intelligence Fundamentals: Data Mining
Data Mining Programmability
SSAS Data Mining Programmability Overview
Programming Interfaces
Embedding SSAS Data Mining
Extending SSAS Data Mining
Presented by
ISV Innovation
52
Business Intelligence Fundamentals: Data Mining
53
SSAS Data Mining Programmability Overview
C++ App
VB App
.NET App
OLE DB
ADO
ADOMD.NET
XMLA
Over HTTP
Analysis Server
OLAP
Data Mining
Server ADOMD.NET
Data Mining Interfaces
.NET Stored
Procedures
ISV Innovation
Any Platform, Any
Device
AMO
WAN
XMLA
Over TCP/IP
Presented by
Any App
Microsoft
Algorithms
Third-Party
Algorithms
Business Intelligence Fundamentals: Data Mining
Programming Interfaces
AMO (Analysis Management Objects)
Administer database objects
Apply security
Manage processing
ADOMD.NET
Connect to SSAS databases
Retrieve and manipulate data
Server ADOMD.NET
Extend DMX by using .NET stored procedures
Presented by
ISV Innovation
Mar-2008
54
Business Intelligence Fundamentals: Data Mining
55
Embedding SSAS Data Mining
Validate or repair user entry
Integrate predictions
Targeted advertising
“Those that bought this book also purchased these books”
Embed custom visualizations into Windows Forms
applications to allow users to explore and understand
model patterns
SSAS Data Mining ships
with custom visualizations
Presented by
ISV Innovation
Business Intelligence Fundamentals: Data Mining
Extending SSAS Data Mining
Stored procedures
Enhanced Visual Studio data mining tools
Plug-in algorithms
Plug-in data mining viewers
Presented by
ISV Innovation
56
Business Intelligence Fundamentals: Data Mining
Classifying Customers Likely to Purchase a Bicycle
DEMO
Presented by
ISV Innovation
57
Business Intelligence Fundamentals: Data Mining
Resources
www.microsoft.com/sql/technologies/dm
Links to technical resources, case studies, news, and reviews
www.sqlserverdatamining.com
Site designed and maintained by the SQL Server Data Mining team
Live samples
Tutorials
Webcasts
Tips and tricks
FAQ
Data Mining for SQL Server 2005, by ZhaoHui Tang and
Presented by
Jamie MacLennan
ISV Innovation
58
Благодарю за внимание!
Источники:
http://www.techdays.ru/videos/1376.html,
Материалы лекций курса «Хранилища данных» КГУ,
2011, Степанов Р.Г.
Presented by
ISV Innovation