Datumbox مشین لرننگ فریم ورک ورژن 0.8.0 نے PlatoBlockchain ڈیٹا انٹیلی جنس جاری کیا۔ عمودی تلاش۔ عی

ڈیٹام باکس مشین لرننگ فریم ورک ورژن 0.8.0 جاری کر دیا گیا۔

Datumbox Framework v0.8.0 ختم ہو چکا ہے اور کئی طاقتور خصوصیات پیک کرتا ہے! یہ ورژن نئے پری پروسیسنگ، فیچر سلیکشن اور ماڈل سلیکشن الگورتھم، نئے طاقتور سٹوریج انجن لاتا ہے جو کہ ماڈلز اور ڈیٹا فریمز کو کیسے محفوظ/لوڈ کیا جاتا ہے، کئی پہلے سے تربیت یافتہ مشین لرننگ ماڈلز اور میموری اور رفتار میں بہت ساری بہتری لاتا ہے۔ اسے ابھی سے ڈاؤن لوڈ کریں۔ Github کے or ماون سینٹرل ریپوزٹری.

ورژن 0.8.0 کے اہم اہداف میں سے ایک فریم ورک کے سٹوریج میکانزم کو بہتر بنانا اور تمام معاون الگورتھم کے لیے ڈسک پر مبنی تربیت دستیاب کرنا تھا۔ نئے اسٹوریج انجن اس بات پر بہتر کنٹرول دیتے ہیں کہ ماڈلز کو کیسے اور کب برقرار رکھا جا رہا ہے۔ ایک اہم تبدیلی یہ ہے کہ fit() طریقہ ختم ہونے کے بعد ماڈل خود بخود محفوظ نہیں ہو رہے ہیں بلکہ اس کے بجائے کسی کو واضح طور پر save() طریقہ کو کال کرنے کی ضرورت ہے جو ماڈل کا نام فراہم کرتا ہے۔ یہ ہمیں سیریلائزیشن کے مرحلے سے گزرے بغیر نہ صرف آسان عارضی الگورتھم کو ضائع کرنے کے قابل بناتا ہے بلکہ ڈیٹا فریمز کو محفوظ/لوڈ کرنے کے لیے بھی:

Configuration configuration = Configuration.getConfiguration();
Dataframe data = ...; //load a dataframe here

MaximumEntropy.TrainingParameters params = new MaximumEntropy.TrainingParameters();
MaximumEntropy model = MLBuilder.create(params, getConfiguration());
model.fit(data);
model.save("MyModel"); //save the model using the specific name
model.close();

data.save("MyData"); //save the data using a specific name
data.close();

data = Dataframe.Builder.load("MyData", configuration); //load the data
model = MLBuilder.load(MaximumEntropy.class, "MyModel", configuration); //load the model
model.predict(data);
model.delete(); //delete the model

فی الحال ہم دو اسٹوریج انجنوں کو سپورٹ کرتے ہیں: InMemory انجن جو بہت تیز ہے کیونکہ یہ میموری میں ہر چیز کو لوڈ کرتا ہے اور MapDB انجن جو سست ہے لیکن ڈسک پر مبنی ٹریننگ کی اجازت دیتا ہے۔ آپ اپنی datumbox.configuration.properties کو تبدیل کر کے کنٹرول کر سکتے ہیں کہ آپ کون سا انجن استعمال کرتے ہیں یا آپ پروگرامی طور پر کنفیگریشن اشیاء میں ترمیم کر سکتے ہیں۔ ہر انجن کی اپنی کنفیگریشن فائل ہوتی ہے لیکن پھر سے آپ پروگرام کے مطابق ہر چیز میں ترمیم کر سکتے ہیں:

Configuration configuration = Configuration.getConfiguration(); //conf from properties file

configuration.setStorageConfiguration(new InMemoryConfiguration()); //use In-Memory engine
//configuration.setStorageConfiguration(new MapDBConfiguration()); //use MapDB engine

براہ کرم نوٹ کریں کہ دونوں انجنوں میں ایک ڈائرکٹری سیٹنگ ہے جو کنٹرول کرتی ہے کہ ماڈلز کو کہاں اسٹور کیا جا رہا ہے (inMemoryConfiguration.directory اور mapDBConfiguration.directory تشکیل فائلوں میں خصوصیات)۔ اس بات کو یقینی بنائیں کہ آپ انہیں تبدیل کر دیں ورنہ ماڈلز آپ کے سسٹم کے عارضی فولڈر پر لکھے جائیں گے۔ اس بارے میں مزید معلومات کے لیے کہ آپ کنفیگریشن فائلوں کی ساخت کیسے بناتے ہیں۔ کوڈ کی مثال منصوبے.

اسٹوریج کے نئے طریقہ کار کے ساتھ، اب عوامی طور پر اشتراک کرنا ممکن ہے۔ پہلے سے تربیت یافتہ ماڈلز جس میں جذباتی تجزیہ، اسپام کا پتہ لگانے، زبان کی کھوج، موضوع کی درجہ بندی اور دیگر تمام ماڈلز کے شعبوں کا احاطہ کیا گیا ہے جو ڈیٹام باکس API کے ذریعے دستیاب ہیں۔ اب آپ کر سکتے ہیں۔ ڈاؤن لوڈ، اتارنا اور API کو کال کرنے کی ضرورت کے بغیر اور روزانہ کالوں کی تعداد کو محدود کیے بغیر اپنے پروجیکٹ پر پہلے سے تربیت یافتہ تمام ماڈلز استعمال کریں۔ فی الحال شائع شدہ ماڈلز InMemory اسٹوریج انجن کا استعمال کرتے ہوئے تربیت یافتہ ہیں اور وہ صرف انگریزی کو سپورٹ کرتے ہیں۔ مستقبل کی ریلیز پر، میں مزید زبانوں کے لیے تعاون فراہم کرنے کا ارادہ رکھتا ہوں۔

نئے فریم ورک میں، بہت ساری کلاسوں کے عوامی طریقوں میں کئی تبدیلیاں کی گئی ہیں (لہذا یہ پیچھے کی طرف مطابقت نہیں رکھتا ہے)۔ سب سے زیادہ قابل ذکر فرق ماڈلز کو شروع کرنے کے طریقے پر ہے۔ جیسا کہ ہم نے پہلے کوڈ کی مثال میں دیکھا، ماڈلز کو براہ راست انسٹیٹیوٹ نہیں کیا جاتا ہے بلکہ اس کے بجائے MLBuilder کلاس کو ماڈل بنانے یا لوڈ کرنے کے لیے استعمال کیا جاتا ہے۔ تربیتی پیرامیٹرز براہ راست بلڈر کو فراہم کیے جاتے ہیں اور انہیں سیٹر کے ساتھ تبدیل نہیں کیا جا سکتا۔

ماڈل سلیکشن کو انجام دینے کے طریقے میں ایک اور بہتری ہے۔ v0.8.0 نئے ماڈل سلیکشن پیکیج کو متعارف کرایا ہے جو ہمارے ماڈلز کی کارکردگی کی توثیق اور پیمائش کے لیے تمام ضروری ٹولز پیش کرتا ہے۔ میٹرکس کے ذیلی پیکج میں ہم درجہ بندی، کلسٹرنگ، ریگریشن اور سفارش کے لیے سب سے اہم توثیق میٹرکس فراہم کرتے ہیں۔ نوٹ کریں کہ ValidationMetrics کو ہر انفرادی الگورتھم سے ہٹا دیا جاتا ہے اور وہ اب ماڈل کے ساتھ محفوظ نہیں رہتے ہیں۔ فریم ورک نئے اسپلٹرز سب پیکج کی پیشکش کرتا ہے جو مختلف اسکیموں کا استعمال کرتے ہوئے اصل ڈیٹاسیٹ کو تقسیم کرنے کے قابل بناتا ہے۔ فی الحال K-fold splits کو KFoldSplitter کلاس کا استعمال کرتے ہوئے انجام دیا جاتا ہے جبکہ ڈیٹاسیٹ کو تربیت میں تقسیم کرتے ہوئے اور ٹیسٹ سیٹ کو ShuffleSplitter کے ساتھ حاصل کیا جا سکتا ہے۔ آخر کار ایک ماڈل کی فوری توثیق کرنے کے لیے، فریم ورک Validator کلاس پیش کرتا ہے۔ یہاں یہ ہے کہ کوئی کوڈ کی چند لائنوں کے اندر K-fold کراس کی توثیق کیسے کرسکتا ہے:

ClassificationMetrics vm = new Validator<>(ClassificationMetrics.class, configuration)
    .validate(new KFoldSplitter(k).split(data), new MaximumEntropy.TrainingParameters());

نیا پری پروسیسنگ پیکج پرانے ڈیٹا ٹرانسفارمرز کی جگہ لے لیتا ہے اور اس پر بہتر کنٹرول دیتا ہے کہ ہم کس طرح مشین لرننگ الگورتھم سے پہلے ڈیٹا کو پیمانہ اور انکوڈ کرتے ہیں۔ عددی متغیرات کی پیمائش کے لیے درج ذیل الگورتھم معاون ہیں: MinMaxScaler، StandardScaler، MaxAbsScaler اور BinaryScaler۔ کلیدی متغیرات کو بولین میں انکوڈنگ کرنے کے لیے آپ درج ذیل طریقے استعمال کر سکتے ہیں: OneHotEncoder اور CornerConstraintsEncoder۔ یہاں یہ ہے کہ آپ نئے الگورتھم کیسے استعمال کرسکتے ہیں:

StandardScaler numericalScaler = MLBuilder.create(
    new StandardScaler.TrainingParameters(), 
    configuration
);
numericalScaler.fit_transform(trainingData);

CornerConstraintsEncoder categoricalEncoder = MLBuilder.create(
    new CornerConstraintsEncoder.TrainingParameters(), 
    configuration
);
categoricalEncoder.fit_transform(trainingData);

ایک اور اہم اپ ڈیٹ یہ حقیقت ہے کہ فیچر سلیکشن پیکیج کو دوبارہ لکھا گیا تھا۔ فی الحال تمام فیچر سلیکشن الگورتھم مخصوص ڈیٹا ٹائپس پر فوکس کرتے ہیں، جس سے مختلف طریقوں کو ایک ساتھ جوڑنا ممکن ہوتا ہے۔ نتیجے کے طور پر TextClassifier اور Modeler کلاسز کو فیچر سلیکٹر پیرامیٹرز کی فہرست ملتی ہے نہ کہ صرف ایک۔

جیسا کہ پہلے ذکر کیا گیا ہے کہ تمام الگورتھم اب ڈسک پر مبنی تربیت کی حمایت کرتے ہیں، بشمول وہ جو میٹریس استعمال کرتے ہیں (صرف استثناء سپورٹ ویکٹر مشینیں ہیں)۔ سٹوریج انجن کا نیا طریقہ کار یہاں تک کہ کچھ الگورتھم یا ڈیٹا فریم کو ترتیب دینا ممکن بناتا ہے تاکہ میموری میں محفوظ کیا جا سکے جبکہ دیگر کو ڈسک پر رکھا جائے۔ کئی رفتار میں بہتری بنیادی طور پر نئے اسٹوریج انجن میکانزم کی وجہ سے متعارف کرائی گئی تھی بلکہ انفرادی الگورتھم کی ٹیوننگ کی وجہ سے بھی پیش کی گئی تھی جیسے ڈی پی ایم ایم فیملی میں۔

آخری لیکن کم از کم نیا ورژن تمام انحصار کو ان کے تازہ ترین ورژن میں اپ ڈیٹ کرتا ہے اور ان میں سے کچھ کو ہٹا دیتا ہے جیسے Commons-lang اور lp_solve۔ Commons-lang، جو HTML پارسنگ کے لیے استعمال ہوتا تھا، کو تیز تر کسٹم HTMLParser کے نفاذ کے ساتھ بدل دیا جاتا ہے۔ lp_solve کو خالص Java simplex solver سے بدل دیا گیا ہے جس کا مطلب ہے کہ Datumbox کو اب آپریٹنگ سسٹم پر نصب مخصوص سسٹم لائبریریوں کی ضرورت نہیں ہے۔ مزید یہ کہ lp_solve کو جانا پڑا کیونکہ یہ LGPLv2 استعمال کرتا ہے جو Apache 2.0 لائسنس کے ساتھ مطابقت نہیں رکھتا ہے۔

ورژن 0.8.0 فریم ورک میں کئی اور نئی خصوصیات اور بہتری لاتا ہے۔ تبدیلیوں کے تفصیلی نظارے کے لیے براہ کرم چیک کریں۔ changelog کے.

کے کوڈ کو کلون کرنا نہ بھولیں۔ ڈیٹام باکس فریم ورک v0.8.0 Github سے، چیک کریں کوڈ کی مثالیں اور یہاں سے پہلے سے تربیت یافتہ مشین لرننگ ماڈلز ڈاؤن لوڈ کریں۔ ڈیٹام باکس چڑیا گھر. میں آپ کے تبصروں اور تجاویز کا منتظر ہوں۔

ٹائم اسٹیمپ:

سے زیادہ ڈیٹا باکس