Bagikan melalui


microsoftml.concat: Menggabungkan beberapa kolom ke dalam satu vektor

Penggunaan

microsoftml.concat(cols: [dict, list], **kargs)

Deskripsi

Menggabungkan beberapa kolom ke dalam satu kolom bernilai vektor.

Detail

concat membuat kolom bernilai vektor tunggal dari beberapa kolom. Ini dapat dilakukan pada data sebelum melatih model. Perangkaian dapat secara signifikan mempercepat pemrosesan data ketika jumlah kolom sebesar ratusan hingga ribuan.

Argumen

Cols

Dict karakter atau daftar nama variabel untuk diubah. Jika dict, kunci mewakili nama variabel baru yang akan dibuat. Perhatikan bahwa semua variabel input harus memiliki jenis yang sama. Dimungkinkan untuk menghasilkan beberapa kolom output dengan transformasi perangkaian. Dalam hal ini, Anda perlu menggunakan daftar vektor untuk menentukan pemetaan satu-ke-satu antara variabel input dan output. Misalnya, untuk menggabungkan kolom InNameA dan InNameB ke dalam kolom OutName1 dan juga kolom InNameC dan InNameD ke dalam kolom OutName2, gunakan dict: dict(OutName1 = [InNameA, InNameB], outName2 = [InNameC, InNameD])

karg

Argumen tambahan yang dikirim ke mesin komputasi.

Mengembalikan

Objek yang menentukan transformasi perangkaian.

Lihat juga

drop_columns, select_columns.

Contoh

'''
Example on logistic regression and concat.
'''
import numpy
import pandas
import sklearn
from microsoftml import rx_logistic_regression, concat, rx_predict
from microsoftml.datasets.datasets import get_dataset

iris = get_dataset("iris")

if sklearn.__version__ < "0.18":
    from sklearn.cross_validation import train_test_split
else:
    from sklearn.model_selection import train_test_split

# We use iris dataset.
irisdf = iris.as_df()

# The training features.
features = ["Sepal_Length", "Sepal_Width", "Petal_Length", "Petal_Width"]

# The label.
label = "Label"

# microsoftml needs a single dataframe with features and label.
cols = features + [label]

# We split into train/test. y_train, y_test are not used.
data_train, data_test, y_train, y_test = train_test_split(irisdf[cols], irisdf[label])

# We train a logistic regression.
# A concat transform is added to group features in a single vector column.
multi_logit_out = rx_logistic_regression(
                        formula="Label ~ Features",
                        method="multiClass",
                        data=data_train,
                        ml_transforms=[concat(cols={'Features': features})])
                        
# We show the coefficients.
print(multi_logit_out.coef_)

# We predict.
prediction = rx_predict(multi_logit_out, data=data_test)

print(prediction.head())

Output:

Automatically adding a MinMax normalization transform, use 'norm=Warn' or 'norm=No' to turn this behavior off.
Beginning processing data.
Rows Read: 112, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 112, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 112, Read Time: 0.001, Transform Time: 0
Beginning processing data.
LBFGS multi-threading will attempt to load dataset into memory. In case of out-of-memory issues, turn off multi-threading by setting trainThreads to 1.
Beginning optimization
num vars: 15
improvement criterion: Mean Improvement
L1 regularization selected 9 of 15 weights.
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.2348578
Elapsed time: 00:00:00.0197433
OrderedDict([('0+(Bias)', 1.943994402885437), ('1+(Bias)', 0.6346845030784607), ('2+(Bias)', -2.57867693901062), ('0+Petal_Width', -2.7277402877807617), ('0+Petal_Length', -2.5394322872161865), ('0+Sepal_Width', 0.4810805320739746), ('1+Sepal_Width', -0.5790582299232483), ('2+Petal_Width', 2.547518491744995), ('2+Petal_Length', 1.6753791570663452)])
Beginning processing data.
Rows Read: 38, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0662932
Finished writing 38 rows.
Writing completed.
    Score.0   Score.1   Score.2
0  0.320061  0.504115  0.175825
1  0.761624  0.216213  0.022163
2  0.754765  0.215548  0.029687
3  0.182810  0.517855  0.299335
4  0.018770  0.290014  0.691216