ExpressionEstimator Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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. |