Aracılığıyla paylaş


Filtre sözdizimi ve örnekleri Model (Analysis Services - veri madenciliği)

Bu bölümde örnek ifadeleri ile birlikte modeli filtreleri sözdizimi hakkında ayrıntılı bilgiler sağlar.

Filtre sözdizimi

Üzerinde filtre durum öznitelikleri

İç içe tablo öznitelikleri filtreler

Birden çok iç içe tablo öznitelikleri filtreler

İç içe geçmiş tablo içinde eksik öznitelikler filtreleri

Birden çok iç içe geçmiş tablo değerleri filtreler

İç içe tablo öznitelikleri ve EXISTS filtreleri

Filtre birleşimleri

Tarih filtreleri

Filtre sözdizimi

Filtre ifadeleri where yan tümce tümce tümce içerik için genellikle eşdeğerdir.Birden çok koşul mantıksal işleçler kullanarak bağlanmak AND, OR, ve NOT.

İç içe geçmiş tablolar içinde de kullanabilirsiniz EXISTS ve NOT EXISTS operators.Bir EXISTS koşulu değerlendirir için true , alt sorgu . en az bir satır döndürürBu modelin iç içe geçmiş tablo içinde belirli bir değeri içeren servis taleplerini sınırlamak istediğiniz durumlarda yararlıdır: Örneğin, satın almış olan müşteriler bir öğe en az bir kez.

A NOT EXISTS koşulu değerlendirir için true belirtilen koşulu ise alt sorgu yok.Hiçbir zaman belirli öğe satın almış olan müşteriler için model sınırlandırmak istiyorsanız bir örnektir.

Genel Sözdizimi aşağıdaki gibidir:

<filter>::=<predicate list>  | ( <predicate list> )
<predicate list>::= <predicate> | [<logical_operator> <predicate list>] 
<logical_operator::= AND| OR
<predicate>::= NOT <predicate>|( <predicate> ) <avPredicate> | <nestedTablePredicate> | ( <predicate> ) 
<avPredicate>::= <columnName> <operator> <scalar> | <columnName> IS [NOT] NULL
<operator>::= = | != | <> | > | >= | < | <=
<nestedTablePredicate>::= EXISTS (<subquery>)
<subquery>::=SELECT * FROM <columnName>[ WHERE  <predicate list> ]
  • filter
    Bir veya daha fazla yüklemler Mantıksal işleçleri tarafından bağlı içerir.

  • predicate list
    Mantıksal işleçleri tarafından ayrılmış bir veya daha fazla geçerli filtre ifadeleri.

  • columnName
    Bir araştırma yapısı sütun adı.

  • mantıksal işleç
    AND, OR, NOT

  • avPredicate
    Filtre ifade yalnızca skaler araştırma yapısı sütun için uygulanabilecek.Bir avPredicate ifade kullanılabilir hem modeli filtreleri veya iç içe geçmiş tablo filtreleri.

    Bir ifade aşağıdaki işleçlerden birini yalnızca uygulanabilir sürekli bir sütun o kullanır.:

    • < (küçüktür)

    • > (büyüktür)

    • >= (büyüktür veya eşittir)

    • <= (küçük veya buna eşit)

    Not

    Bu operatörler türüne sahip bir sütun veri türü ne olursa olsun, uygulanamaz Discrete, Discretized, veya Key.

    Aşağıdaki işleçlerden birini kullanan bir ifade bir sürekli için kesikli, discretized veya anahtar uygulanabilir sütun:

    • = (eşittir)

    • ! = (eşit değildir)

    • IS NULL

    Varsa bağımsız değişkeni avPredicate, geçerlidir ayrık değerli sütun için Filtrede kullanılan değeri herhangi belirli bir demet. olabilir

    Başka bir deyişle, koşul olarak tanımladığınız değil AgeDisc = ’25-35’, ancak bunun yerine hesaplamak ve sonra bir değer o aralığı.

    Örnek:  AgeDisc = 27 27 aynı aralıkta herhangi bir değer anlamına gelir, bu durum 25-35'tir.

  • nestedTablePredicate
    Filtre ifade, iç içe geçmiş bir tablo için geçerlidir.Modeli filtreleri de kullanılabilir.

    Sorgu değişken bağımsız değişken, nestedTablePredicate, yalnızca bir tablo araştırma yapısı uygulayabilirsiniz sütun

  • alt sorgu
    Geçerli yüklemi veya yüklemler listesi tarafından izlenen bir deyim.

    Tüm yüklemler açıklanan türünde olmalıdır avPredicates.Üstelik, yüklemler bağımsız değişkeni tarafından tanımlanan geçerli bir iç içe geçmiş tablo dahil sütunları başvuruda bulunabilir columnName.

Filtre sözdizimi sınırlamalar

Filtreleri için aşağıdaki kısıtlamalar geçerlidir:

  • Bir filtreyi yalnızca basit yüklemler içerebilir.Bunlar, matematiksel işleçler, çok fazla ilerleyemezdik ve sütun adlarını içerir.

  • Kullanıcı tanımlı işlevler filtre sözdizimi desteklenmiyor.

  • Non-Boole işleçleri gibi artı veya eksi işaretlerine, içinde filtre sözdizimi desteklenmiyor.

Filtre örnekleri

Aşağıdaki örnekler, bir araştırma modeli uygulanan filtreleri kullanımını göstermektedir.Filtre ifadesi kullanarak oluşturursanız, Business Intelligence Development Studio, özelliği pencere ve ifade bölmesinde filtre iletişim kutusunda, görmelisiniz ile süzgeç anahtar sözcüklerinden sonra görüntülenen dize.Burada, araştırma yapısı tanımını kullanımı ve sütun türünü anlamak daha kolay hale getirmek için eklenmiştir.

Örnek 1: Normal durumda düzeyinde filtreleme

Bu örnek, meslek Mimarı ve tekrar 30, yaş ise müşterilere modelinde kullanılan servis taleplerini kısıtlar basit bir süzgeç gösterir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_1
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT
)
WITH FILTER (Age > 30 AND Occupation=’Architect’)

Başa Dön

Örnek 2: İç içe tablo öznitelikleri kullanarak büyük/küçük harf düzeyinde filtreleme

Yoksa sizin araştırma yapısı iç içe geçmiş tablolar içeren iç içe geçmiş tablo veya belirli bir değeri içeren iç içe geçmiş tablo satırları üzerinde filtre değeri varlığını ya da filtre edebilirsiniz.Bu örnekte kullanılan sütlü dahil en az bir satın alma yapan 30 yaşın üzerinde müşterilere modeli için servis taleplerini kısıtlar.

Bu örnekte gösterildiği gibi filtre yalnızca modele dahil sütunları kullanmak gerekli değildir.İç içe geçmiş tablo ürünleri parçası olan araştırma yapısı, madenciliği model içinde yer almayan ancak.Ancak, yine de değerler ve iç içe tablo öznitelikleri üzerinde filtre uygulayabilirsiniz.Bu durumların ayrıntılarını görüntülemek için detaylandırma etkinleştirilmiş olması gerekir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_2
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT
)
WITH DRILLTHROUGH, 
FILTER (Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’)
)

Başa Dön

Örnek 3: Büyük/küçük harf düzeyinde birden çok iç içe tablo öznitelikleri süzme

Bu örnek, üç bölümlü filtre gösterir: durum tablo ve iç içe geçmiş tablo içinde bir öznitelik için başka bir koşul bir iç içe geçmiş tablo sütunları veya belirli bir değeri başka bir koşul için bir koşul geçerlidir.

İlk filtre koşulu Age > 30, uygulandığı bir sütun durum tablo.İç içe geçmiş tablo için kalan koşullar geçerlidir.

İkinci koşul EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’, en az bir satın alma dahil, iç içe geçmiş tablo içinde varlığını denetlersütlü. Üçüncü koşul Quantity>=2, müşterinin satın aldığı tek bir hareket sütlü en az iki birim anlamına

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_3
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
)
)
FILTER (Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’  AND Quantity >= 2) 
)

Başa Dön

Örnek 4: Servis talebi düzey iç içe tablo öznitelikleri devamsızlık filtresi

Bu örnek, belirli bir öğe iç içe geçmiş tablo içinde bir öznitelik yokluğunda süzülerek satın müşteriye servis taleplerini sınırlamak gösterilmiştir.Bu örnekte, eğitilmiş modeli müşterilerin kim sütlü asla satın aldığınız 30 yaşın üzerinde kullanma.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_4
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName
)
)
FILTER (Age > 30 AND NOT EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’) )

Başa Dön

Örnek 5: Birden çok iç içe geçmiş tablo değerleri üzerinde süzme

Amacı örnek, iç içe geçmiş tablo filtresi göstermektir.Sonra iç içe geçmiş tablo filtre uygulanır durum filtre uygulamak ve yalnızca iç içe geçmiş tablo satırlarını kısıtlar.

EXISTS belirtilmediğinden, bu modeli boş iç içe geçmiş tablolar ile birden çok servis taleplerini içerebilir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_5
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
) WITH FILTER(ProductName=’Milk’ OR ProductName=’bottled water’)
)
WITH DRILLTHROUGH

Başa Dön

Örnek 6: İç içe tablo öznitelikleri ve EXISTS filtresi

Bu örnekte, iç içe geçmiş tablo filtre satırları sütlü veya bottled su içeren bu sınırlar.Modeli durumlarda kullanarak daha sonra Yasak bir EXISTS deyim.Bu iç içe geçmiş tablo boş olduğundan emin olur.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_6
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
) WITH FILTER(ProductName=’Milk’ OR ProductName=’bottled water’)
)
FILTER (EXISTS (Products))

Başa Dön

Örnek 7: Karmaşık filtre birleşimleri

Bu model senaryosu, örnek 4 benzer, ancak daha karmaşık.İç içe geçmiş tablo ProductsOnSale, filtre koşulu olan (OnSale) anlamı, değeri OnSale olmalıdır true içinde listelenen ürün için ProductName.Burada, OnSale bir yapı sütun.

The second part of the filter, for ProductsNotOnSale, repeats this syntax, but filters on products for which the value of OnSale is not true(!OnSale).

Son olarak, koşullar bir araya getirilir ve durum için bir ek kısıtlama eklenen tablo.Sonucu ürünleri Satınalmalar tahmin etmektir ProductsNotOnSale 'in içerdiği durumlarda temel alan listesi, ProductsOnSale 25 yaşın üzerinde tüm müşteriler listesi.

ALTER MINING STRUCTURE MyStructure ADD MINING MODEL MyModel_7

(

CustomerId,

Age,

Occupation,

MaritalStatus,

ProductsOnSale

(

ProductName KEY

) WITH FILTER(OnSale),

ProductsNotOnSale PREDICT ONLY

(

ProductName KEY

) WITH FILTER(!OnSale)

)

WITH DRILLTHROUGH,

FILTER (EXISTS (ProductsOnSale) AND EXISTS(ProductsNotOnSale) AND Age > 25)

Başa Dön

Örnek 8: Tarihlere filtre uygulama

Diğer veriler gibi tarihlerde giriş sütunları süzebilirsiniz.Tarih içinde bulunan bir sütun türü tarih/saat sürekli; değerlerdir Bu nedenle, büyük gibi işleçler kullanarak tarih aralık belirtebilirsiniz (>) veya daha az (<).(Veri kaynak sürekli veri türüne göre ancak ayrı olarak tarih veya metin değerleri temsil etmiyor, bir tarih aralık süzemezsiniz, ancak ayrı ayrı ayrı değerleri belirtmeniz gerekir.)

Filtre için kullanılacak tarih sütunu da ise ancak, filtre tarih sütunu bir saat serisi modelinde model için anahtar sütun oluşturamazsınız.saat serisi modelleri ve modelleri kümeleme sırası, tarih sütun türü olarak ele alınması çünkü olan KeyTime veya KeySequence.

saat serisi modelinde sürekli tarihler filtre uygulamanız gerekiyorsa, sütunda bir kopyasını oluşturmak araştırma yapısıve model yeni bir sütun üzerinde filtre.

Örneğin, aşağıdaki ifade bir filtre türü bir tarih sütunu temsil eden Continuous , eklenmiştir Forecasting modeli.

=[DateCopy] > '12:31:2003:00:00:00'

Not

Modele ekleme ek sütunlar etkileyebilir Not sonuçlar.Bu nedenle, serinin hesabı kullanılacak sütun istemiyorsanız, yalnızca araştırma yapısı ve modeli için değil sütun eklemeniz gerekir.Ayrıca küme modeli bayrak sütunu üzerinde PredictOnly ya da Ignore.Daha fazla bilgi için bkz: Modelleme bayrakları (veri madenciliği).

Diğer modeli türleri için tarihleri giriş ölçüt olarak kullanmak veya süzme ölçütleri herhangi bir sütun gibi.Ancak, taneciklik tarafından desteklenen belirli bir düzeyde kullanmak istiyorsanız bir Continuous veri türü oluşturabilirsiniz bir türetilmiş değer verileri kaynak filtreleme ve analiz. birim ayıklamak için ifadeler kullanarak

Dikkat notuDikkat

Filtre ölçütü olarak bir tarih belirttiğinizde, geçerli işletim sistemi için tarih biçimi ne olursa olsun aşağıdaki biçimde kullanmanız gerekir: mm/dd/yyyy.Any other format results in an error.

Çağrı merkeziniz süzmek istediğiniz, örneğin, sonuçlar sadece hafta sonları göstermek için bir deyim, her tarih için hafta içi adı ayıklayan veri kaynak görünümünde oluşturabilir ve sonra bu hafta içi adı değer giriş ya da filtreleme de ayrı bir değer olarak kullanabilirsiniz.Yalnızca, değil tarih sütunu artı türetilmiş değer sütun yalnızca birini kullanmanız gereken şekilde yinelenen değerleri modeli etkileyebileceğini unutmayın.Bir tarih sütunu temel alan bir sütun ile yeni değerler yaratmak nasıl bir örnek için bkz: Çağrı merkezi veri (Ara veri madenciliği öğretici) için veri kaynağı görünümü ekleme.

Başa Dön