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 oluşturmak için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifadeyi (dize olarak belirtilen) 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? | No |
Giriş sütunu veri türü | float, double, int, long, bool veya text. |
Çıkış sütunu veri türü | İfadeye bağlı olarak float, double, int, long, bool veya text 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ından en fazla biri 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 öğe üzerinde 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 işleç ve işlev kümesine sahiptir. Yalnızca işlevseldir, yani dilde değiştirilebilir değer veya kapatma 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 => ifade
parametre-listesi:
- Tanımlayıcı
- (parametre-adları)
parametre-adları:
- Tanımlayıcı
- tanımlayıcı , parametre-adları
İfade parametreler, değişmez değerler, işleçler, ifadeler ve işlevler kullanabilir.
Değişmez Değerler
- 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, 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 edildiğini belirler.
- Kayan nokta değişmez değerleri, üstel gösterimi (123,45e-37) dahil olmak üzere standart söz dizimini kullanır. Çift duyarlığı gösteren tek duyarlık veya d veya D ile f veya F soneki eklenebilir. C# dilinden farklı olarak, kayan nokta sabitinin varsayılan duyarlığı tek duyarlıktır. Çift duyarlık belirtmek için d veya D'yi ekin.
- Metin değişmez değerleri çift tırnak içine alınır ve standart kaçış mekanizmalarını destekler.
İşleçler
İ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 yayabilir (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.
Operatör | Anlamı | Parametre | Açıklamalar |
---|---|---|---|
? : | Koşullu | Üçlü | İfade koşulu? value1 : value2, koşul true ise value1, koşul yanlışsa değer2 olarak çözümleniyor. Koşul boole, değer1 ve değer2 ise uyumlu türde olmalıdır. |
?? | Coalesce | Ikili | x ?? ifadesi y, x NA değilse x olarak, 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 | Ikili | İşlenenler ve sonuç boole değeridir. Bir işlenen true ise sonuç true olur, aksi takdirde false olur. |
&& ve | mantıksal ve | Ikili | İş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ü olduğundan 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 değil ama 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 yapmak da çalışmaz. 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 | Ikili | NA yayma ile sayısal toplama ve çıkarma. |
* / % | çarpma, bölme ve modül | Ikili | NA yayma ile sayısal çarpma, bölme ve modül. |
- ! not | sayısal olumsuzlama ve mantıksal olmayan | Tekli | Bunlar birli ön ek işleçleri, sayısal işlenen gerektiren olumsuzlama (-) ve boole işleneni gerektirmeyen (!) işleçlerdir. |
^ | Güç | Ikili | Bu doğru ilişkilendirilebilir üsselleştirmedir. 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:
with-expression:
- with( atama-listesi ; ifade )
atama listesi:
- Atama
- 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 santigrat sıcaklığını fahrenheit'e dönüştürür ve ardından fahrenheit değerinin çok düşük veya yüksek olması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, ifade değeri daha büyük bir ifadede birden çok kez gerektiğinde with-ifadesi yararlıdır. Karmaşık veya önemli sabitlerle uğraşırken 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 olan kene sayısından (Int64 olarak) haftanın gününü hesaplar. Atamalar 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 bir Int64 değeri (8 bayt tamsayı) olması için 100000000L olarak tanımlandığını unutmayın. L soneki olmadan, ticksPerDay Int32'nin aralığını taşacak.
İşlevler
İfade dönüşümü birçok yararlı işlevi destekler.
Herhangi bir türün işlenenini kabul edebilen genel birli işlevler aşağıdaki tabloda listelenmiştir.
Adı | Anlamı | Yorum |
---|---|---|
isna | na için test etme | İş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 değeri 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ç verir. Bunun en yaygın örneği, standart dönüştürme ayrıştırma kullanan metinden dönüştürmedir. Kayan nokta değerinden (float veya double) tamsayı değerine (Int32 veya Int64) dönüştürme işlemi bir kesme işlemi yapar (sıfıra yuvarlanır).
Adı | Anlamı | Yorum |
---|---|---|
Bool | Boole değerine dönüştürme | İşlenen metin veya boole olmalıdır. |
Int | dönüştürme Int32 | Giriş herhangi bir türde olabilir. |
Uzun | dönüştürme Int64 | Giriş herhangi bir türde olabilir. |
tek, kayan | dönüştürme Single | Giriş herhangi bir türde olabilir. |
Çift | dönüştürme 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 birli 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ı | Yorum |
---|---|---|
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ı | Yorum |
---|---|---|
Dk | Minimum | İşlenenlerin en azını üretir. |
Max | maksimum | İşlenenlerin en yüksek sayısını ü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ı | Yorum |
---|---|---|
Karekök | Karekök | Negatif işlenenler NA üretir. |
trunc, truncate | tamsayıya kesme | Sıfıra doğru en yakın tamsayı değerine yuvarlar. |
Kat | Kat | 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, derece | radyandan dereceye | Radyandan dereceye eşler. |
radyan, radyan | radyan derece | 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 | Teğet | 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ı | Yorum |
---|---|---|
Günlük | verilen taban ile logaritma | İkinci işlenen tabandır. İlki, logaritması alınacak değerdir. |
atan2, atanyx | açıyı belirleme | Verilen y ve x değerlerinden -pi ve 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ı | Yorum |
---|---|---|
len(x) | metnin uzunluğu | İşlenen metin olmalıdır. Sonuç, işlenenin uzunluğunu gösteren bir I4 değeridir. İş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), right(x, k) | Dize | İlk işlenen metin, ikinci işlenen int32 olmalıdır. İkinci işlenen negatifse, metnin sonundan uzaklık olarak kabul edilir. Bu ayarlı dizin daha sonra 0'a uzunluk(x) olarak sıkıştırılır. Sonuç, sonuçta elde edilen konumun solundaki veya sağındaki karakterlerdir. |
mid(x, a, b) | 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) kadar sıkıştırılır. İkinci kenetlenmiş dizin de aşağıda ilk kenetlenmiş dizine kenetlenir. Sonuç, bu iki kenetlenmiş 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
Fit(IDataView) |
Bu tahmin aracı, yeni çıkış sütunu değerleri oluşturmak için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifadeyi (dize olarak belirtilen) uygular. |
GetOutputSchema(SchemaShape) |
Bu tahmin aracı, yeni çıkış sütunu değerleri oluşturmak için giriş sütunu değerlerine kullanıcı tarafından sağlanan bir ifadeyi (dize olarak belirtilen) uygular. |
Uzantı Metotları
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Tahmin zincirine 'önbelleğe alma denetim noktası' ekleme. Bu, aşağı akış tahmincilerinin önbelleğe alınan verilere karşı eğitilmesini sağlar. Birden çok veri geçiren eğitmenlerden önce bir önbelleğe alma kontrol noktası 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ülü olduğu bir tahmin aracı zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla sığdır çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz. |
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin