Dizüstü bilgisayarlardaSPSS tahmine dayalı analitik sınıflandırma ve regresyon algoritmaları

Not defterlerinde genelleştirilmiş doğrusal model, doğrusal regresyon, doğrusal destek vektör makinesi, rasgele ağaçlar ya da CHAID SPSS tahmine dayalı analitik algoritmaları kullanabilirsiniz.

Genelleştirilmiş Doğrusal Model

Genelleştirilmiş Doğrusal Model (GLE), farklı veri tipleri için yaygın olarak kullanılan bir analitik algoritmadır. Bu, normal olarak dağıtılan hedefler için doğrusal regresyon, ikili ya da multinomial hedefler için lojistik modeller ve sayım verileri için doğrusal modeller gibi yaygın olarak kullanılan istatistiksel modelleri kapsamakla kalmayıp, çok genel model formülasyonu yoluyla birçok kullanışlı istatistiksel modeli de kapsar. Generalized Linear Model, modeli oluşturmanın yanı sıra, değişken seçimi, dağıtım ve bağlantı işlevi otomatik seçimi ve model değerlendirme istatistikleri gibi diğer yararlı özellikleri de sağlar. Bu modelde, LASSO, ridge regression, elastik net, vb. gibi regülasyona yönelik seçenekler bulunur. ve ayrıca çok geniş verileri ele alma yeteneğine sahiptir.

Dağıtım ve bağlantı işlevinin nasıl seçileceği ile ilgili daha fazla ayrıntı için Dağıtım ve Bağlantı İşlevi Bileşimine bakın.

Örnek kodu 1:

Bu örnekte, belirtilen dağıtım ve bağlantı işlevine sahip bir GLE ayarı, belirtilen etkiler, kesişme, ROC eğrisi ve yazdırma ilinti matrisi gösterilmektedir. Bu senaryo bir model oluşturur, ardından model puanlarını oluşturur.

Python örneği:

from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect

gle1 = GeneralizedLinear(). \
    setTargetField("Work_experience"). \
    setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
    setEffects([
        Effect(fields=["Beginning_salary"], nestingLevels=[0]),
        Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
        Effect(fields=["Educational_level"], nestingLevels=[0]),
        Effect(fields=["Current_salary"], nestingLevels=[0]),
        Effect(fields=["Sex_of_employee", "Educational_level"], nestingLevels=[0, 0])]). \
    setIntercept(True). \
    setDistribution("NORMAL"). \
    setLinkFunction("LOG"). \
    setAnalysisType("BOTH"). \
    setConductRocCurve(True)

gleModel1 = gle1.fit(data)
PMML = gleModel1.toPMML()
statXML = gleModel1.statXML()
predictions1 = gleModel1.transform(data)
predictions1.show()

Örnek kodu 2:

Bu örnek, belirlenmemiş dağıtım ve bağlantı işlevine sahip bir GLE ayarını ve ileriye doğru stepwise yöntemini kullanarak değişken seçimini gösterir. Bu senaryoda, dağıtım, bağlantı işlevi ve efektleri seçmek için ileri adımlı bir yöntem kullanılır, daha sonra model oluşturmaları ve puanlarını oluşturur.

Python örneği:

from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect

gle2 = GeneralizedLinear(). \
    setTargetField("Work_experience"). \
    setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
    setEffects([
        Effect(fields=["Beginning_salary"], nestingLevels=[0]),
        Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
        Effect(fields=["Educational_level"], nestingLevels=[0]),
        Effect(fields=["Current_salary"], nestingLevels=[0])]). \
    setIntercept(True). \
    setDistribution("UNKNOWN"). \
    setLinkFunction("UNKNOWN"). \
    setAnalysisType("BOTH"). \
    setUseVariableSelection(True). \
    setVariableSelectionMethod("FORWARD_STEPWISE")

gleModel2 = gle2.fit(data)
PMML = gleModel2.toPMML()
statXML = gleModel2.statXML()
predictions2 = gleModel2.transform(data)
predictions2.show()

Örnek kodu 3:

Bu örnek, çift yönlü etkileşim algılaması ve otomatik ceza parametresi seçimi ile, belirlenmemiş dağıtıma, belirtilen bağlantı işlevine ve değişken seçimine sahip bir GLE ayarını, iki yönlü etkileşim saptama ve otomatik ceza parametresi seçimle gösterir. Bu senaryo, etkiler için iki yönlü etkileşimi saptar, daha sonra otomatik ceza parametresi seçimi kullanarak dağıtım ve efektleri seçmek için LASSO yöntemini kullanır, ardından modeli oluşturur ve puanlar elde eder.

Python örneği:

from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect

gle3 = GeneralizedLinear(). \
    setTargetField("Work_experience"). \
    setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
    setEffects([
        Effect(fields=["Beginning_salary"], nestingLevels=[0]),
        Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
        Effect(fields=["Educational_level"], nestingLevels=[0]),
        Effect(fields=["Current_salary"], nestingLevels=[0])]). \
    setIntercept(True). \
    setDistribution("UNKNOWN"). \
    setLinkFunction("LOG"). \
    setAnalysisType("BOTH"). \
    setDetectTwoWayInteraction(True). \
    setUseVariableSelection(True). \
    setVariableSelectionMethod("LASSO"). \
    setUserSpecPenaltyParams(False)

gleModel3 = gle3.fit(data)
PMML = gleModel3.toPMML()
statXML = gleModel3.statXML()
predictions3 = gleModel3.transform(data)
predictions3.show()

Doğrusal Regresyon

Doğrusal regresyon modeli, sürekli veya kategorik olabilen bir ya da daha fazla karşılaştırma belirtimi arasındaki tahmine dayalı ilişkiyi analiz eder.

Doğrusal regresyon modelinin özellikleri arasında otomatik etkileşim etkisi algılama, ileriye dönük adımsal model seçimi, tanılama denetimi ve Tahmini Marginal Anlamı (EMMEANS) temel alınarak olağan dışı kategori algılaması yer alır.

Örnek kodu:

Python örneği:

from spss.ml.classificationandregression.linearregression import LinearRegression

le = LinearRegression(). \
    setTargetField("target"). \
    setInputFieldList(["predictor1", "predictor2", "predictorn"]). \
    setDetectTwoWayInteraction(True). \
    setVarSelectionMethod("forwardStepwise")

leModel = le.fit(data)
predictions = leModel.transform(data)
predictions.show()

Doğrusal Destek Vektör Makinesi

Linear Support Vector Machine (LSVM), bir etiketlenmiş eğitim verileri kümesinden giriş çıkış eşleme işlevleri oluşturan denetimli bir öğrenme yöntemi sağlar. Eşleme işlevi, bir sınıflandırma işlevi ya da bir regresyon işlevi olabilir. LSVM, kayıtların sayısı ve değişkenlerin sayısı (parametreler) açısından büyük ölçekli sorunları çözmek için tasarlanmıştır. Özellik alanı, sorunun giriş alanı ile aynıdır ve bir kayıttaki sıfır olmayan öğelerin ortalama sayısının küçük olduğu seyrek verileri işleyebilir.

Örnek kodu:

Python örneği:

from spss.ml.classificationandregression.linearsupportvectormachine import LinearSupportVectorMachine

lsvm = LinearSupportVectorMachine().\
    setTargetField("BareNuc").\
    setInputFieldList(["Clump", "UnifSize", "UnifShape", "MargAdh", "SingEpiSize", "BlandChrom", "NormNucl", "Mit", "Class"]).\
    setPenaltyFunction("L2")

lsvmModel = lsvm.fit(df)
predictions = lsvmModel.transform(data)
predictions.show()

Rasgele Ağaçlar

Rasgele Ağaçlar, güçlü (doğru) tahmine dayalı modeller oluşturmak için güçlü bir yaklaşımdır. Sınıflandırma ya da regresyon problemleri için diğer son teknoloji yöntemlerinden daha iyi ve bazen daha iyi.

Random Trees, çok sayıda CART benzeri ağaçtan oluşan bir ensemble modelidir. Her ağaç, özgün veri vakalarını değiştirme ile örnekleme yaparak elde edilen bir önyükleme örneğinde büyür. Ayrıca, ağaç büyümesi sırasında, her bir düğüm için, en iyi bölme değişkeni, tam değişken kümesinden rasgele çizilmiş olan daha az sayıda değişkenden seçilir. Her ağaç mümkün olan en büyük ölçüde büyür ve budama yoktur. Rastgele Ağaçlar puanlamada, bireysel ağaç puanlarını çoğunluk oylamasıyla (sınıflandırma için) veya ortalama (regresyon için) birleştirir.

Örnek kodu:

Python örneği:

from spss.ml.classificationandregression.ensemble.randomtrees import RandomTrees

# Random trees required a "target" field and some input fields. If "target" is continuous, then regression trees will be generate else classification .
# You can use the SPSS Attribute or Spark ML Attribute to indicate the field to categorical or continuous.
randomTrees = RandomTrees(). \
    setTargetField("target"). \
    setInputFieldList(["feature1", "feature2", "feature3"]). \
    numTrees(10). \
    setMaxTreeDepth(5)

randomTreesModel = randomTrees.fit(df)
predictions = randomTreesModel.transform(scoreDF)
predictions.show()

CHAID

CHAID ya da Ki-kare Otomatik Etkileşim Algılaması, optimum bölmeleri tanımlamak için ki-kare istatistiklerini kullanarak karar ağaçları oluşturmak için kullanılan bir sınıflandırma yöntemidir. Regresyon sorunları için geçerli olan bir uzantı da kullanılabilir.

CHAID öncelikle her bir giriş alanı ve hedef arasındaki çapraz geçiş ve bir ki-kare bağımsızlık testi kullanarak önem testleri ile ilgili testleri inceliyor. Bu ilişkilerden birden fazlası istatistiksel olarak önemli ise CHAID, en önemli (en küçük p değeri) giriş alanını seçer. Bir giriş iki kategoriden fazlaysa, bunlar karşılaştırılır ve sonuçtaki farkları olmayan kategoriler birlikte daraltılır. Bu, en az önemli farkı gösteren kategori çiftine art arda katılan bir şekilde yapılır. Bu kategori birleştirme işlemi, kalan tüm kategoriler belirtilen test düzeyinde farklılık gösterdiğinde durur. Nominal giriş alanları için, herhangi bir kategori birleştirilebilir; bir sıra kümesi için yalnızca bitişik kategoriler birleştirilebilir. Hedef dışındaki sürekli giriş alanları doğrudan kullanılamaz; önce sıra alanlarına binmiş olmalıdır.

Kapsamlı CHAID, her bir karşılaştırma belirtimi için olası tüm bölmeleri incelemek için daha ayrıntılı bir iş yapan ancak daha uzun süren CHAID ' in bir modifikasyondur.

Örnek kodu:

Python örneği:

from spss.ml.classificationandregression.tree.chaid import CHAID

chaid = CHAID(). \
    setTargetField("salary"). \
    setInputFieldList(["educ", "jobcat", "gender"])

chaidModel = chaid.fit(data)
pmmlStr = chaidModel.toPMML()
statxmlStr = chaidModel.statXML()

predictions = chaidModel.transform(data)
predictions.show()

Üst konu: SPSS tahmine dayalı analitik algoritmaları