Dil

ExpressionEstimator Sınıf

Tanım

Bu tahmin aracı, yeni çıkış sütunu değerleri üretmek için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifade (dize olarak belirtilir) uygular.

public sealed class ExpressionEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.ExpressionTransformer>
type ExpressionEstimator = class
    interface IEstimator<ExpressionTransformer>
Public NotInheritable Class ExpressionEstimator
Implements IEstimator(Of ExpressionTransformer)
Devralma
ExpressionEstimator
Uygulamalar

Açıklamalar

Tahmin Aracı Özellikleri

Bu tahmin aracının parametrelerini eğitmek için verilere bakması gerekiyor mu? Hayır
Giriş sütunu veri türü float, double, int, long, bool veya text.
Çıkış sütunu veri türü İfadeye bağlı olarak kayan, çift, int, uzun, bool veya metin olabilir.

Sonuçta elde edilen ExpressionTransformer , ifadenin giriş değerlerine uygulandığı çıkış sütunu adı parametrelerinde belirtilen adlı yeni bir sütun oluşturur. Giriş sütunlarının çoğu VectorDataViewType türünde olabilir ve giriş bir vektör sütunu içerdiğinde ifade, bu girişle aynı uzunlukta bir vektör çıkışı oluşturmak için vektördeki her öğede bağımsız olarak hesaplanır.

İfade Dili

İfade tahmin aracının dili çok çeşitli kullanıcılar için rahat olmalıdır. Bazı popüler dillerle birçok benzerliği paylaşır. Büyük/küçük harfe duyarlıdır, birden çok türü destekler ve zengin bir işleç ve işlev kümesine sahiptir. Yalnızca işlevseldir, yani dilde değiştirilebilir değer veya sessize alma işlemi yoktur. Normal bir değer uygun olmadığında NA değerleri üretmek yerine herhangi bir özel durum mekanizmasına sahip değildir. Statik olarak yazılmıştır, ancak tüm türler derleyici tarafından çıkarılır.

Syntax

Lambda söz dizimi bir parametre listesinden ve ardından iki nokta üst üste (:) veya ok (=>) ve ardından bir ifadeden oluşur. Parametre listesi tek bir tanımlayıcı veya parantez içinde bir veya daha fazla tanımlayıcının virgülle ayrılmış listesi olabilir.

lambda:

  • parameter-list : expression
  • parameter-list => ifadesi

parameter-list:

  • tanımlayıcı
  • (parametre adları)

parametre adları:

  • tanımlayıcı
  • tanımlayıcı , parametre adları

İfade parametreleri, değişmez değerleri, işleçleri, ifadeleri ve işlevleri kullanabilir.

Literals

  • Boole değişmez değerleri true ve false değerleridir.
  • Tamsayı değişmez değerleri ondalık veya onaltılık (örneğin, 0x1234ABCD) olabilir. Bunlar size veya U'ya işaretsiz, ayrıca l veya L ile uzun (Int64) belirten son eklenebilir. Sizin veya U'nun kullanımı nadirdir ve yalnızca belirli 32 bit onaltılık değerlerin yükseltilmesine etki eder ve sabitin negatif bir Int32 değeri mi yoksa pozitif bir Int64 değeri olarak mı kabul edileceğini belirler.
  • Kayan nokta değişmez değerleri, üstel gösterim (123.45e-37) dahil olmak üzere standart söz dizimini kullanır. Bunlar f veya F ile, tek duyarlık veya d veya D ile çift duyarlığı gösteren soneklenebilir. C# dilinden farklı olarak, kayan nokta değişmez değerlerinin varsayılan duyarlığı tek duyarlıktır. Çift duyarlık belirtmek için d veya D yazın.
  • Metin değişmez değerleri çift tırnak içine alınır ve standart kaçış mekanizmalarını destekler.

Operators

İfade dilinin işleçleri aşağıdaki tabloda, bağımlılık sırasına göre listelenmiştir. Aksi belirtilmedikçe, ikili işleçler ilişkilendirici olarak bırakılır ve NA değerlerini yayılır (işlenen değerlerden biri NA ise, sonuç NA olur). Genel olarak, tamsayı değerlerinin taşması NA üretirken kayan nokta değerlerinin taşması sonsuzluk üretir.

Operator Meaning Arity Açıklamalar
​? : koşullu Üçüncül İfade koşulu ? değer1 : koşul doğruysa değer2 değer1 ve koşul yanlışsa değer2 olarak çözümleniyor. Koşul boole, değer1 ve değer2 ise uyumlu türde olmalıdır.
​?? birleşim İkili x ?? ifadesi y, x NA değilse x olarak çözümler ve aksi takdirde y olarak çözümler. İşlenenlerin her ikisi de Tek veya çift olmalıdır. Bu işleç doğru ilişkilendiricidir.
| | veya mantıksal veya İkili İşlenenler ve sonuç boole değeridir. Bir işlenen true ise sonuç true olur, aksi takdirde false olur.
&ve mantıksal ve İkili İşlenenler ve sonuç boole değeridir. Bir işlenen false ise, sonuç false olur, aksi takdirde doğru olur.
​==, =
!=, <>
<, <=
>, >=
equals
eşit değil
küçüktür veya eşittir
büyüktür veya eşittir
Birden çok - Karşılaştırma işleçleri çok yönlülüktedir, yani iki veya daha fazla işlenene uygulanabilir. Örneğin, a, b ve c aynı değere sahipse a == b == c true sonucunu verir. Eşit değil işleci tüm işlenenlerin ayrı olmasını gerektirir, bu nedenle 1 != 2 != 1 yanlış olur. x'in negatif olup olmadığını ancak 10'dan küçük olup olmadığını test etmek için 0 <= x < 10 kullanın. 0 <= x && x < 10 yazmanız gerekmez ve bunu yaptığınızda da aynı işlem yapılmaz. Aynı satırda listelenen işleçler tek bir ifadede birleştirilebilir, bu nedenle > b >= c yasaldır, ancak < b >= c değildir.
- Eşittir ve eşit değildir, herhangi bir işlenen türüne uygulanırken, sıralı işleçler sayısal işlenenler gerektirir.
​+ - toplama ve çıkarma İkili NA yayma ile sayısal toplama ve çıkarma.
* / % çarpma, bölme ve modül İkili NA yayma ile sayısal çarpma, bölme ve modüller.
​- ! not sayısal olumsuzlama ve mantıksal değil Tekli Bunlar birli ön ek işleçleri, sayısal işlenen gerektiren olumsuzlama (-) ve boole işleneni gerektirmeyen (!) işleçleridir.
​^ güç İkili Bu doğru ilişkilendirici üslemedir. Sayısal işlenenler gerektirir. Tamsayı işlenenleri için 0^0 1 üretir.
​( ) parantez içinde gruplandırma Tekli Standart anlam.

With İfadesi

with-ifadesi için söz dizimi şöyledir:

with-expression:

  • with( atama-listesi ; ifade )

assignment-list:

  • Görev
  • assignment , assignment-list

atama:

  • tanımlayıcı = ifadesi

with-ifadesi bir veya daha fazla adlandırılmış değer tanıtır. Örneğin, aşağıdaki ifade bir slcius sıcaklığını fahrenheit'e dönüştürür ve ardından fahrenheit'in çok düşük veya yüksek olup olmadığına bağlı olarak bir ileti oluşturur.

c => with(f = c * 9 / 5 + 32 ; f < 60 ? "Too Cold!" : f > 90 ? "Too Hot!" : "Just Right!")

Bir atamanın ifadesi, önceki atamalar tarafından tanıtılan tanımlayıcılara başvurabilir; örneğin, iletiler yerine -1, 0 veya 1 döndürür:

c : with(f = c * 9 / 5 + 32, cold = f < 60, hot = f > 90 ; -float(cold) + float(hot))

Yukarıda gösterildiği gibi, bir ifade değeri daha büyük bir ifadede birden çok kez gerektiğinde with ifadesi yararlıdır. Karmaşık veya önemli sabitlerle ilgilenirken de yararlıdır:

    ticks => with(
        ticksPerSecond = 10000000L,
        ticksPerHour = ticksPerSecond \* 3600,
        ticksPerDay = ticksPerHour \* 24,
        day = ticks / ticksPerDay,
        dayEpoch = 1 ;
        (day + dayEpoch) % 7)

Bu işlem, standart .Net DateTime döneminin (idealleştirilmiş Gregoryen takvimde 01/01/0001) bu yana geçen değer sayısından (Int64 olarak) haftanın gününü hesaplar. Atamalar bir saniyedeki kene sayısı, bir saat içindeki kene sayısı, bir yıldaki kene sayısı ve dönem için haftanın günü için kullanılır. Bu örnekte Pazar'ı sıfırla eşlemek istiyoruz, dolayısıyla dönem Pazartesi olduğundan dayEpoch değerini 1 olarak ayarlayacağız. Dönem değiştirildiyse veya haftanın farklı bir gününü sıfırla eşlemek isteseydik, dayEpoch değerini değiştirirdik. TicksPerSecond değerinin 10000000L olarak tanımlandığını ve bunu bir Int64 değeri (8 bayt tamsayı) haline getirildiğini unutmayın. L soneki olmadan, ticksPerDay Int32'nin aralığını taşacak.

Functions

İfade dönüşümü birçok yararlı işlevi destekler.

Herhangi bir türde işleneni kabul edebilen genel birli işlevler aşağıdaki tabloda listelenmiştir.

Ad Anlamı Açıklamalar
isna na için test İşlenenin bir NA değeri olup olmadığını gösteren bir boole değeri döndürür.
na na değeri İşlenenle aynı türde (float veya double) NA değerini döndürür. Bunun işleneni değerlendirmediğini, yalnızca döndürülecek NA türünü belirlemek için işleneni kullandığını ve bu belirlemenin derleme zamanında gerçekleştiğini unutmayın.
varsayılan varsayılan değer İşlenenle aynı türde varsayılan değeri döndürür. Örneğin, NA değerlerini varsayılan değerlerle eşlemek için x ?? kullanın. default(x). Bunun işleneni değerlendirmediğini, yalnızca döndürülecek varsayılan değerin türünü belirlemek için işleneni kullandığını ve bu belirlemenin derleme zamanında gerçekleştiğini unutmayın. Sayısal türler için varsayılan değer sıfırdır. Boole için varsayılan değer false'tur. Metin için varsayılan değer boş olur.

Birli dönüştürme işlevleri aşağıdaki tabloda listelenmiştir. BIR NA işleneni bir NA üretir veya türü desteklemiyorsa atar. Başarılı olmayan veya taşan bir dönüştürme de NA veya özel durumla sonuçlanır. Bunun en yaygın örneği, standart dönüştürme ayrıştırma kullanan metinden dönüştürmedir. Kayan nokta değerinden (kayan veya çift) tamsayı değerine (Int32 veya Int64) dönüştürme işlemi bir kesme işlemi yapar (sıfıra doğru yuvarlar).

Ad Anlamı Açıklamalar
bool Boole değerine dönüştürme İşlenen metin veya boole olmalıdır.
int dönüştür Int32 Giriş herhangi bir türde olabilir.
uzun dönüştür Int64 Giriş herhangi bir türde olabilir.
tek, kayan dönüştür Single Giriş herhangi bir türde olabilir.
çift dönüştür Double Giriş herhangi bir türde olabilir.
metin metne dönüştürme Giriş herhangi bir türde olabilir. Bu, varsayılan bir metin gösterimi oluşturur.

Sayısal işlenen gerektiren tekli işlevler aşağıdaki tabloda listelenmiştir. Sonuç türü işlenen türüyle aynıdır. BIR NA işlenen değeri NA üretir.

Ad Anlamı Açıklamalar
abs mutlak değer İşlenenin mutlak değerini üretir.
işareti işareti (-1, 0, 1) İşlenenin negatif, sıfır veya pozitif olmasına bağlı olarak -1, 0 veya 1 üretir.

Sayısal işlenenler gerektiren ikili işlevler aşağıdaki tabloda listelenmiştir. İşlenen türleri aynı olmadığında, işlenenler uygun bir türe yükseltilir. Sonuç türü, yükseltilen işlenen türüyle aynıdır. BIR NA işlenen değeri NA üretir.

Ad Anlamı Açıklamalar
min minimum İşlenenlerin en azını üretir.
en fazla maksimum İşlenenlerin maksimumunu üretir.

Kayan nokta işleneni gerektiren birli işlevler aşağıdaki tabloda listelenmiştir. Sonuç türü işlenen türüyle aynıdır. Taşma sonsuzluk üretir. Geçersiz giriş değerleri NA üretir.

Ad Anlamı Açıklamalar
karekök kare kök Negatif işlenenler NA üretir.
trunc, truncate tamsayıya kesme Sıfıra doğru en yakın tamsayı değerine yuvarlar.
zemin zemin Negatif sonsuzluğa doğru en yakın tamsayı değerine yuvarlar.
ceil, tavan tavan Pozitif sonsuzluğa doğru en yakın tamsayı değerine yuvarlar.
yuvarlak taraflı olmayan yuvarlama En yakın tamsayı değerine yuvarlar. İşlenen iki tamsayı değeri arasında yarı yolda olduğunda, bu çift tamsayıyı üretir.
exp üstel e'yi işlenene yükseltir.
ln, log logaritma Doğal (temel e) logaritması üretir. Ayrıca, farklı bir taban kullanmak için günlüğün iki işlenen sürümü vardır.
derece radyan-derece Radyandan dereceye eşler.
radyan, radyan dereceden radyana Derecelerden radyanlara eşler.
sin, sind sinüs Bir açının sinüsünü alır. sin işlevi işlenenin radyan cinsinden olduğunu varsayarken, sind işlevi işlenenin derece cinsinden olduğunu varsayar.
cos, cosd kosinüs Bir açının kosinüsünü alır. cos işlevi işlenenin radyan cinsinden olduğunu varsayarken, cosd işlevi işlenenin derece cinsinden olduğunu varsayar.
tan, tand tanjant Bir açının tanjantını alır. tan işlevi işlenenin radyan cinsinden olduğunu varsayarken tand işlevi işlenenin derece cinsinden olduğunu varsayar.
sinh hiperbolik sinüs İşleneninin hiperbolik sinüsünü alır.
cosh hiperbolik kosinüsü İşleneninin hiperbolik kosinüsünü alır.
tanh hiperbolik tanjant İşleneninin hiperbolik tanjantını alır.
asin ters sinüs İşlenenin ters sinüsünü alır.
acos ters kosinüsü İşlenenin ters kosinüsünü alır.
atan ters tanjant İşleneninin ters tanjantını alır.

Kayan nokta işlenenleri gerektiren ikili işlevler aşağıdaki tabloda listelenmiştir. İşlenen türleri aynı olmadığında, işlenenler uygun bir türe yükseltilir. Sonuç türü, yükseltilen işlenen türüyle aynıdır. BIR NA işlenen değeri NA üretir.

Ad Anlamı Açıklamalar
günlük verilen taban ile logaritma İkinci işlenen, tabandır. birincisi logaritması alınacak değerdir.
atan2, atanyx açıyı belirleme Verilen y ve x değerlerinden -pi ile pi arasındaki açıyı belirler. y'nin ilk işlenen olduğunu unutmayın.

Metin işlevleri aşağıdaki tabloda listelenmiştir.

Ad Anlamı Açıklamalar
uzunluk(x) metin uzunluğu İşlenen metin olmalıdır. Sonuç, işlenenin uzunluğunu gösteren bir I4'tür. İşlenen NA ise, sonuç NA olur.
lower(x), upper(x) küçük veya büyük harf Metni küçük veya büyük harfle eşler.
left(x, k), sağ(x, k) alt dize İlk işlenen metin, ikinci işlenen ise Int32 olmalıdır. İkinci işlenen negatifse, metnin sonundan uzaklık olarak kabul edilir. Bu ayarlanan dizin daha sonra 0'a len(x) olarak sıkıştırılır. Sonuç, sonuçta elde edilen konumun solundaki veya sağındaki karakterlerdir.
mid(x, a, b) alt dize İlk işlenen metin, diğer iki işlenen int32 olmalıdır. Dizinler, sol ve sağ işlevlerle aynı şekilde dönüştürülür: negatif değerler metnin sonundan uzaklık olarak kabul edilir; bu ayarlanmış endeksler 0'a uzunluk(x) olarak sıkıştırılır. İkinci kıskaçlı dizin de aşağıda ilk kelepçelenmiş dizine sıkıştırılır. Sonuç, bu iki sıkıştırılmış dizin arasındaki karakterlerdir.
concat(x1, x2, ..., xn) birleştirme Bu, rastgele sayıda işleneni (sıfır dahil) kabul eder. Tüm işlenenler metin olmalıdır. Sonuç, sırasıyla tüm işlenenlerin birleştirilmiş olmasıdır.

Yöntemler

Name Description
Fit(IDataView)

Bu tahmin aracı, yeni çıkış sütunu değerleri üretmek için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifade (dize olarak belirtilir) uygular.

GetOutputSchema(SchemaShape)

Bu tahmin aracı, yeni çıkış sütunu değerleri üretmek için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifade (dize olarak belirtilir) uygular.

Uzantı Metotları

Name Description
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Tahmin zincirine bir 'önbelleğe alma denetim noktası' ekler. Bu, aşağı akış tahmincilerinin önbelleğe alınmış verilere karşı eğitilmesini sağlar. Birden fazla veri alan eğitmenler geçişten önce bir önbelleğe alma kontrol noktasının olması yararlıdır.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Tahmin aracı verildiğinde, bir temsilci çağrıldıktan sonra Fit(IDataView) çağıracak bir sarmalama nesnesi döndürün. Tahmin aracının neyin uygun olduğu hakkında bilgi döndürmesi genellikle önemlidir. Bu nedenle Fit(IDataView) yöntem yalnızca genel ITransformerbir nesne yerine özel olarak yazılan bir nesne döndürür. Bununla birlikte, aynı zamanda, IEstimator<TTransformer> genellikle birçok nesne içeren işlem hatları halinde oluşturulur, bu nedenle transformatörü almak istediğimiz tahmin aracının EstimatorChain<TLastTransformer> bu zincirde bir yere gömüldüğü bir tahmin zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla uygun çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz.

Şunlara uygulanır

Ayrıca bkz.