دا مقاله د Python Gateway په اړه ده، د InterSystems IRIS ډیټا پلیټ فارم لپاره د خلاصې سرچینې ټولنې پروژه. دا پروژه تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال) ، د انټر سیسټم IRIS پلیټ فارم کې د ګړندي تطبیق ، روبوټیک تحلیلي AI / ML حلونو رامینځته کولو لپاره ډیری چمتو شوي کتابتونونه وکاروئ. پدې مقاله کې ، زه به تاسو ته وښیم چې څنګه InterSystems IRIS کولی شي د Python پروسې تنظیم کړي ، د دوه اړخیز ډیټا لیږد مؤثره ترسره کړي ، او هوښیار سوداګرۍ پروسې رامینځته کړي.
پلان
- پېژندنه.
- وسیلې.
- نصب کول.
- API.
- متقابل عمل
- Jupyter نوټ بوک.
- پایلې
- لینکونه.
- M.L. Toolkit
پېژندنه
Python د لوړې کچې، عمومي هدف پروګرام کولو ژبه ده چې د پراختیا کونکي تولید او د کوډ لوستلو وړتیا ښه کولو باندې تمرکز کوي. د مقالو په دې لړۍ کې، زه به د InterSystems IRIS پلیټ فارم کې د Python ژبې کارولو امکاناتو په اړه وغږیږم، پداسې حال کې چې د دې مقالې اصلي تمرکز د ماشین زده کړې ماډلونو جوړولو او پلي کولو لپاره د ژبې په توګه د پایتون کارول دي.
د ماشین زده کړه (ML) د مصنوعي استخباراتو میتودونو یوه ټولګي ده، چې د هغې ځانګړتیا ځانګړنه د ستونزې مستقیم حل نه دی، مګر د ډیری ورته ستونزو د حل کولو په بهیر کې زده کړه.
د ماشین زده کړې الګوریتمونه او ماډلونه ورځ تر بلې عام کیږي. د دې لپاره ډیری دلیلونه شتون لري، مګر دا ټول د لاسرسي، سادگي، او د عملي پایلو ترلاسه کولو پورې راځي. ایا کلسترینګ یا حتی د عصبي شبکې ماډلینګ یوه نوې ټیکنالوژي ده؟
البته نه، مګر نن ورځ د یو ماډل چلولو لپاره د سلګونو زرو لیکو کوډ لیکلو ته اړتیا نشته، او د ماډلونو جوړولو او پلي کولو لګښتونه کوچني او کوچني کیږي.
وسیلې وده کوي - پداسې حال کې چې موږ په بشپړ ډول د GUI متمرکز AI/ML وسیلې نلرو ، هغه پرمختګ چې موږ د معلوماتو سیسټمونو ډیری نورو ټولګیو لکه BI (د کوډ لیکلو څخه د چوکاټونو کارولو او GUI oriented ترتیب کولو حلونو) سره لیدلی دی ، هم لیدل کیږي. په AI/ML جوړولو وسیلو کې. موږ دمخه د کوډ لیکلو مرحله تیره کړې او نن ورځ موږ د ماډلونو جوړولو او روزنې لپاره چوکاټونه کاروو.
نور پرمختګونه، لکه د مخکې روزل شوي ماډل تبلیغ کولو وړتیا چیرې چې پای کارونکي باید په ساده ډول د دوی ځانګړي ډیټا کې ماډل روزنه پای ته ورسوي، د ماشین زده کړې پلي کول هم اسانه کوي. دا پرمختګونه د ماشین زده کړې زده کول خورا اسانه کوي ، دواړه د مسلکیانو او په ټوله کې شرکتونو لپاره.
له بلې خوا، موږ ډیر او ډیر معلومات راټولوو. د یو متحد ډیټا پلیټ فارم سره لکه د InterSystems IRIS، دا ټول معلومات سمدلاسه چمتو کیدی شي او د ماشین زده کړې ماډلونو لپاره د ان پټ په توګه کارول کیدی شي.
بادل ته د لیږد سره، د AI/ML پروژو پیل کول د هر وخت څخه ډیر اسانه دي. موږ کولی شو یوازې هغه سرچینې مصرف کړو چې موږ ورته اړتیا لرو. سربیره پردې ، د بادل پلیټ فارمونو لخوا وړاندیز شوي موازي کولو څخه مننه ، موږ کولی شو ضایع شوي وخت خوندي کړو.
مګر د پایلو په اړه څه؟ دا هغه ځای دی چې شیان ډیر پیچلي کیږي. د ماډلونو جوړولو لپاره ډیری وسیلې شتون لري ، کوم چې زه به یې په راتلونکي بحث وکړم. د ښه ماډل جوړول اسانه ندي، مګر بیا څه؟ د سوداګرۍ لخوا د ماډل کارولو څخه ګټه اخیستل هم یو غیر معمولي کار دی. د ستونزې ریښه د تحلیلي او لیږد کاري بارونو او ډیټا ماډلونو جلا کول دي. کله چې موږ یو ماډل وروزو، موږ معمولا دا په تاریخي معلوماتو کې کوو. مګر د جوړ شوي ماډل ځای د لیږد ډیټا پروسس کولو کې دی. که موږ دا په ورځ کې یو ځل چلوو نو د درغلۍ غوره لیږد کشف ماډل څه ښه دی؟ جعلکاران لا دمخه د پیسو سره وتلي دي. موږ اړتیا لرو چې ماډل د تاریخي معلوماتو په اړه وروزو، مګر موږ اړتیا لرو چې دا په ریښتیني وخت کې په نوي راتلونکو معلوماتو کې پلي کړو ترڅو زموږ د سوداګرۍ پروسې د ماډل لخوا وړاندیز شوي وړاندوینو سره سم عمل وکړي.
ML Toolkit یو اوزار کټ دی چې یوازې دا کار کوي: د موډلونو سره یوځای کول او د لیږد چاپیریال رامینځته کول ترڅو هغه موډلونه چې تاسو یې جوړ کړئ په اسانۍ سره ستاسو د سوداګرۍ پروسو کې کارول کیدی شي. Python Gateway د ML Toolkit برخه ده او د Python ژبې سره ادغام چمتو کوي (د R Gateway په څیر، د ML Toolkit برخه کیدل د R ژبې سره ادغام چمتو کوي).
توکي
مخکې لدې چې موږ دوام ورکړو ، زه غواړم یو څو د Python اوزار او کتابتونونه تشریح کړم چې موږ به یې وروسته کاروو.
د تکنالوژۍ
- Python یوه تشریح شوې، عمومي هدف، د لوړې کچې پروګرام کولو ژبه ده. د ژبې اصلي ګټه د ریاضي، ML او AI کتابتونونو لوی کتابتون دی. د ObjectScript په څیر، دا د اعتراض پر بنسټ ژبه ده، مګر هرڅه په متحرک ډول تعریف شوي، نه په جامد ډول. همدارنګه هرڅه یو شی دی. وروسته مقالې د ژبې سره د تیریدلو آشنایت احساسوي. که تاسو غواړئ زده کړه پیل کړئ، زه وړاندیز کوم چې پیل یې کړئ .
- زموږ د راتلونکو تمرینونو لپاره، تنظیم کړئ .
- IDE: زه کاروم مګر په عمومي توګه . که تاسو Atelier کاروئ، د Python پراختیا کونکو لپاره د Eclipse پلگ ان شتون لري. که تاسو د VS کوډ کاروئ، نو د Python لپاره توسیع شتون لري.
- نوټ بوک: د IDE پرځای، تاسو کولی شئ خپل سکریپټونه په آنلاین نوټ بوکونو کې ولیکئ او شریک کړئ. د دوی تر ټولو مشهور دی .
کتابتونونه
دلته د ماشین زده کړې کتابتونونو (جزوي) لیست دی:
- - د دقیق محاسبې لپاره یو بنسټیز کڅوړه.
- - د لوړ فعالیت ډیټا جوړښتونه او د معلوماتو تحلیل وسیلې.
- - د چارټونو جوړول.
- - د matplotlib پر بنسټ د معلوماتو لید.
- - د ماشین زده کړې میتودونه.
- - د ګریډینټ بوسټینګ میتودولوژي کې د ماشین زده کړې الګوریتمونه.
- – NLP
- - عصبي شبکې.
- د ماشین زده کړې ماډلونو رامینځته کولو لپاره یو پلیټ فارم دی.
- د ماشین زده کړې ماډلونو رامینځته کولو لپاره یو پلیټ فارم دی چې په پایتون تمرکز کوي.
- - د مختلف ماډلونو څخه PMML.
د AI/ML ټیکنالوژي سوداګرۍ ډیر اغیزمن او د تطبیق وړ کوي. سربیره پردې، نن ورځ دا ټیکنالوژي د پراختیا او پلي کولو لپاره اسانه کیږي. د AI/ML ټیکنالوژیو په اړه زده کړه پیل کړئ او دا څنګه کولی شي ستاسو د سازمان وده کې مرسته وکړي.
د جوړولو
د Python Gateway نصب او کارولو لپاره ډیری لارې شتون لري:
- OS
- Windows
- لینوکس
- مېک
- ډاکر
- د DockerHub څخه عکس وکاروئ
- خپل نظر جوړ کړئ
د نصب کولو میتود په پام کې نیولو پرته، تاسو به د سرچینې کوډ ته اړتیا ولرئ. د کوډ ډاونلوډ کولو یوازینی ځای دی . پدې کې ازمول شوي مستحکم ریلیزونه شامل دي ، یوازې وروستی ترلاسه کړئ. اوس مهال دا 0.8 دی، مګر د وخت په تیریدو سره به نوي وي. ذخیره کلون مه کوئ / ډاونلوډ کړئ ، وروستی ریلیز ډاونلوډ کړئ.
OS
که تاسو په عملیاتي سیسټم کې د Python Gateway نصب کوئ، نو لومړی (پرته له دې چې عملیاتي سیسټم وي) تاسو باید Python نصب کړئ. د دى لپاره:
- . دا سپارښتنه کیږي چې په ډیفالټ ډایرکټر کې Python نصب کړئ.
- ماډل نصب کړئ
dill:pip install dill. - د آبجیکٹ سکریپټ کوډ ډاونلوډ کړئ (د مثال په توګه
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) د محصولاتو سره هرې سیمې ته. په هغه صورت کې چې تاسو د محصولاتو مالتړ لپاره موجوده ساحه غواړئ، چل کړئ:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - ځای فولډر ته
binستاسو د InterSystems IRIS مثال. د کتابتون فایل باید په هغه لاره کې شتون ولري چې بیرته راستانه شويwrite ##class(isc.py.Callout).GetLib().
Windows
- ډاډ ترلاسه کړئ چې د چاپیریال متغیر دی
PYTHONHOMEPython 3.6.7 ته اشاره کوي. - ډاډ ترلاسه کړئ چې د سیسټم چاپیریال متغیر دی
PATHیو متغیر لريPYTHONHOME(یا هغه لارښود چې ورته اشاره کوي).
لینکس (دبیان / اوبنټو)
- وګورئ چې ایا د چاپیریال متغیر دی
PATHلري/usr/libи/usr/lib/x86_64-linux-gnu. فایل وکاروئ/etc/environmentد چاپیریال متغیرونو تنظیم کول. - د تېروتنو په صورت کې
undefined symbol: _Py_TrueStructترتیب تنظیم کړئPythonLib. هم په کې د ستونزو حل کولو برخه شتون لري.
مېک
- اوس مهال یوازې د python 3.6.7 څخه ملاتړ کیږي . متغیر چیک کړئ
PATH.
که تاسو د چاپیریال تغیرات بدل کړي وي، خپل د InterSystems محصول بیا پیل کړئ.
ډاکر
د کانتینرونو کارول یو شمیر ګټې لري:
- د پورټ وړتیا
- اغیزمنتوب
- موصلیت
- رڼا
- بې ثباتي
دا وګورئ د InterSystems محصولاتو سره د Docker کارولو په اړه د نورو معلوماتو لپاره.
د Python Gateway ټول جوړونه اوس مهال د کانټینر پر بنسټ دي. 2019.4.
بشپړ شوی انځور
چلول: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestد InterSystems IRIS Community Edition سره د Python Gateway ډاونلوډ او چلولو لپاره. بس نور څه نه.
خپل نظر جوړ کړئ
د ډاکر عکس رامینځته کولو لپاره ، د ذخیره کولو ریښې کې وګرځئ: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
په ډیفالټ کې، عکس د عکس پر بنسټ جوړ شوی store/intersystems/iris-community:2019.4.0.383.0په هرصورت، تاسو کولی شئ دا د متغیر په ترتیبولو سره بدل کړئ IMAGE.
د InterSystems IRIS څخه د جوړولو لپاره چلول: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.
له هغې وروسته، تاسو کولی شئ د ډاکر عکس چل کړئ:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.keyکه تاسو د InterSystems IRIS ټولنې ایډیشن پراساس یو عکس کاروئ ، نو تاسو اړتیا نلرئ کیلي مشخص کړئ.
تبصرې
- د ازموینې بهیر
isc.py.test.Processیو شمیر عکسونه لنډمهاله لارښود ته خوندي کوي. تاسو ممکن دا لاره په نصب شوي لارښود کې بدل کړئ. د دې کولو لپاره، ترتیب ترتیب کړئWorkingDirنصب شوی لارښود مشخص کول. - ترمینل ته د لاسرسي لپاره، چلول:
docker exec -it irispy sh. - د ننوتلو له لارې د سیسټم مدیریت پورټل ته لاسرسی
SuperUser/SYS. - د کانټینر د بندولو لپاره، چلول:
docker stop irispy && docker rm --force irispy.
د نصب کولو چک کول
یوځل چې تاسو د Python Gateway نصب کړ ، نو دا د چیک کولو ارزښت لري چې دا کار کوي. دا کوډ د InterSystems IRIS ترمینل کې چل کړئ:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write varپایله باید وي HELLO - د Python متغیر ارزښت x. که د بیرته ستنیدو حالت sc یوه تېروتنه ده یا var خالي، چک .
API
د Python Gateway نصب شوی او تاسو تایید کړی چې دا کار کوي. د دې کارولو پیل کولو وخت!
د Python اصلي انٹرفیس دی isc.py.Main. دا د میتودونو لاندې ډلې وړاندیز کوي (ټول بیرته راګرځي %Status):
- د کوډ اجرا کول
- د ډاټا انتقال
- معاون
د کوډ اجرا کول
دا میتودونه تاسو ته اجازه درکوي خپل سري Python کوډ اجرا کړئ.
SimpleString
SimpleString اصلي میتود دی. دا 4 اختیاري دلیلونه اخلي:
codeد اجرا کولو لپاره د کوډ کرښه ده. لاین فیډ کرکټر:$c(10).returnVariableد بیرته راستنیدو لپاره د متغیر نوم دی.serialization- څنګه سریالیز کولreturnVariable. 0 - تار (ډیفالټ)، 1 - تکرار.result- ByRef هغه متغیر ته حواله کوي په کوم کې چې ارزښت لیکل شویreturnVariable.
پورته مو کړي دي:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).په دې مثال کې، موږ د Python متغیر ته ګومارو x معنی Hello او غواړي چې د Python متغیر ارزښت بیرته راولي x د ObjectScript متغیر ته var.
ExecuteCode
ExecuteCode یو خوندي او لږ محدوده بدیل دی SimpleString.
د InterSystems IRIS پلیټ فارم کې لینونه تر 3 حروف پورې محدود دي، او که تاسو غواړئ د کوډ اوږده ټوټه اجرا کړئ، تاسو اړتیا لرئ چې جریان وکاروئ.
دا دوه دلیلونه اخلي:
code- د پایتون کوډ یو تار یا جریان باید اجرا شي.variable- (اختیاري) د اجرا کولو پایله وړاندې کويcodeدا Python متغیر.
د کارولو وړاندیز وکړئ:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").په دې مثال کې، موږ 2 د 3 سره ضرب کوو او پایله یې د Python متغیر کې ذخیره کوو y.
د ډاټا انتقال
Python ته او له هغه څخه ډاټا انتقال کړئ.
Python -> InterSystems IRIS
په InterSystems IRIS کې د Python متغیر ارزښت ترلاسه کولو لپاره 4 لارې شتون لري، د سریال کولو پورې اړه لري چې تاسو ورته اړتیا لرئ:
Stringد ساده معلوماتو ډولونو او ډیبګ کولو لپاره.Reprد ساده شیانو ذخیره کولو او ډیبګ کولو لپاره.JSONد InterSystems IRIS اړخ کې د اسانه معلوماتو لاسوهنې لپاره.Pickleد توکو خوندي کولو لپاره.
دا میتودونه تاسو ته اجازه درکوي چې له Python څخه د تار یا جریان په توګه متغیرات ترلاسه کړئ.
GetVariable(variable, serialization, .stream, useString)- ترلاسه کړئserializationمتغیرvariableвstream. کهuseString1 دی او سیریلائزیشن په تار کې کیښودل کیږي، بیا یو تار بیرته راځي، نه جریان.GetVariableJson(variable, .stream, useString)- د متغیر JSON سیریل کول ترلاسه کړئ.GetVariablePickle(variable, .stream, useString, useDill)- د یو متغیر سیریل کولو اچار (یا ډیل) ترلاسه کړئ.
راځئ هڅه وکړو چې خپل متغیر ترلاسه کړو y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
په پایتون کې د InterSystems IRIS څخه ډاټا بار کول.
ExecuteQuery(query, variable, type, namespace)- ډیټاسیټ رامینځته کوي (پانډاdataframeاو یاlist) د sql پوښتنې څخه او د python متغیر ته یې تنظیم کړئvariable. پلاستیکي کڅوړهisc.pyباید په سیمه کې شتون ولريnamespace- غوښتنه به هلته اجرا شي.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)- نړیوال معلومات بارويglobalد ګډون څخهstartپورېendپه Python کې د ډول متغیر په توګهtype:list, یا پانډاdataframe. د اختیاري دلیلونو توضیحاتmaskاوlabelsد ټولګي اسنادو او ذخیره کې شتون لري .ExecuteClass(class, variable, type, start, end, properties, namespace)- د ټولګي ډاټا بار کويclassله id څخهstartپورېendپه Python کې د ډول متغیر په توګهtype:list, یا پانډاdataframe.properties- د ټولګي د ملکیتونو لیست (د کوما په واسطه جلا شوی) په ډیټاسیټ کې د بارولو لپاره. ماسکونه ملاتړ شوي*и?. ډیفالټ -*(ټول ملکیتونه). ملکیت%%CLASSNAMEله پامه غورځول شویExecuteTable(table, variable, type, start, end, properties, namespace)- د میز ډاټا بار کويtableله id څخهstartپورېendپه python.
ExecuteQuery - یونیورسل (هر ډول معتبر SQL پوښتنه به پایتون ته انتقال شي). په هرصورت، ExecuteGlobal او د هغه لپې ExecuteClass и ExecuteTable د یو شمیر محدودیتونو سره کار وکړئ. دوی خورا ګړندي دي (د ODBC ډرایور په پرتله 3-5 ځله ګړندي او په پرتله 20 ځله ګړندي ExecuteQuery). نور معلومات په کې .
دا ټول میتودونه د هرې سیمې څخه د معلوماتو لیږد ملاتړ کوي. پلاستیکي کڅوړه isc.py باید په نښه شوي ساحه کې شتون ولري.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) - پایتون ته د هرې معتبر SQL پوښتنې پایلې لیږدول. دا د ډیټا لیږد ترټولو ورو طریقه ده. که یې وکاروئ ExecuteGlobal او د هغې ریپرونه شتون نلري.
دلیلونه:
query- sql پوښتنه.variable- د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.type-listیا پانډاdataframe.namespace- هغه ساحه چې غوښتنه به یې اجرا شي.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - Python ته نړیوال انتقال کول.
دلیلونه:
globalپرته د نړیوال نوم دی^variable- د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.type-listیا پانډاdataframe.start- د نړۍ لومړی ګډون. لازمه ده%Integer.endد نړیوال وروستی سبسکرپټ دی. لازمه ده%Integer.mask- د نړیوالو ارزښتونو ماسک. ماسک په نړیوال کې د ساحو له شمیر څخه لنډ کیدی شي (په دې حالت کې په پای کې ساحې پریښودل کیږي). د ماسک فارمیټ کولو څرنګوالی:+ارزښت لکه څنګه چې دی تیر کړئ.-ارزښت پریږدئ.b- د بولین ډول (0-Falseپاتې ټول -True).d- نیټه (د $ horolog څخه، په وینډوز کې له 1970 څخه، په لینکس کې له 1900 څخه).t- وخت ($ horolog، د نیمې شپې وروسته ثانیې).m— د مهال ویش (د کال-میاشت-ورځ ساعت: دقیقه: د دوهم شکل سټرینګ).
labels- د کالم نومونو لیست. لومړی عنصر د سبسکریپټ نوم دی.namespace- هغه ساحه چې غوښتنه به یې اجرا شي.
ExecuteClass
وتړل ExecuteGlobal. د ټولګي تعریف پراساس تلیفون چمتو کوي ExecuteGlobal او هغه ته غږ کوي.
ExecuteClass(class, variable, type, start, end, properties, namespace) - Python ته د ټولګي ډیټا لیږدول.
دلیلونه:
class- د ټولګي نومvariable- د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.type-listیا پانډاdataframe.start- د پیل IDend- وروستۍ پیژندنهproperties- د ټولګي د ملکیتونو لیست (د کوما په واسطه جلا شوی) په ډیټاسیټ کې د بارولو لپاره. ماسکونه ملاتړ شوي*и?. ډیفالټ -*(ټول ملکیتونه). ملکیت%%CLASSNAMEله پامه غورځول شویnamespace- هغه ساحه چې غوښتنه به یې اجرا شي.
ټول ملکیتونه لکه څنګه چې د ډول ملکیتونو پرته تیریږي %Date, %Time, %Boolean и %TimeStamp - دوی د Python اړوند ټولګیو ته بدل شوي.
ExecuteTable
وتړل ExecuteClass. د میز نوم د ټولګي نوم او زنګونو ته ژباړي ExecuteClass. لاسلیک:
ExecuteTable(table, variable, type, start, end, properties, namespace) - Python ته د جدول ډیټا لیږدول.
دلیلونه:
table- د میز نوم.
نور ټول دلیلونه لکه څنګه چې تیریږي.ExecuteClass.
یادښتونه
ExecuteGlobal,ExecuteClassиExecuteTableپه مساوي ډول ګړندي کار وکړئ.ExecuteGlobalپه پرتله 20 ځله ګړندیExecuteQueryپه لوی ډیټاسیټونو کې (د لیږد وخت> 0.01 ثانیې).ExecuteGlobal,ExecuteClassиExecuteTableد دې جوړښت سره په نړۍ کې کار وکړئ:^global(key) = $lb(prop1, prop2, ..., propN)چېkeyیو عدد دی.- لپاره
ExecuteGlobal,ExecuteClassиExecuteTableد ملاتړ شوي ارزښت رینج%Dateد حد سره مطابقت لريmktimeاو په OS پورې اړه لري: 1970-01-01 ، 1900-01-01، ). کارول%TimeStampد دې حد څخه بهر د معلوماتو لیږدولو لپاره یا د پانډا ډیټا فریم په توګه وکاروئ دا محدودیت یوازې د لیست لپاره دی. - لپاره
ExecuteGlobal,ExecuteClassиExecuteTableټول دلیلونه پرته له دې چې د ډاټا سرچینې (نړیوال، ټولګي یا جدول) او متغیر اختیاري دي.
مثالونه
د ازموینې ټولګي یو میتود لري چې د ډیټا لیږد ټول اختیارونه ښیې:
set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"
// Общие аргументы
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)
// Способ 0: ExecuteGlobal без аргументов
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)
// Способ 1: ExecuteGlobal с аргументами
// При передаче глобала названия полей задаются вручную
// globalKey - название сабсткрипта
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")
// mask содержит на 1 элемент меньше чем labels потому что "globalKey" - название сабскипта
// Пропускаем %%CLASSNAME
set mask = "-+dmt+++b"
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)
// Способ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)
// Способ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)
// Способ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)د زنګ وهلو طریقه do ##class(isc.py.test.Person).Test() د دې لپاره چې وګورئ چې د ډیټا لیږد ټولې میتودونه څنګه کار کوي.
د مرستې طریقې
GetVariableInfo(variable, serialization, .defined, .type, .length)- د متغیر په اړه معلومات ترلاسه کړئ: ایا دا تعریف شوی، ټولګي او د سریال کولو اوږدوالی.GetVariableDefined(variable, .defined)- آیا متغیر تعریف شوی.GetVariableType(variable, .type)- د متغیر ټولګي ترلاسه کړئ.GetStatus()- په پایتون اړخ کې وروستی استثنا ترلاسه کړئ او لرې کړئ.GetModuleInfo(module, .imported, .alias)- د ماډل متغیر او وارداتو حالت ترلاسه کړئ.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)- د فعالیت په اړه معلومات ترلاسه کړئ.
متقابل عمل
تاسو زده کړل چې څنګه د ټرمینل څخه Python Gateway ته زنګ ووهئ، اوس راځئ چې په تولید کې یې کارول پیل کړو. پدې حالت کې د Python سره د متقابل عمل اساس دی isc.py.ens.Operation. دا موږ ته اجازه راکوي:
- د Python کوډ اجرا کړئ
- د Python شرایط خوندي کړئ / بحال کړئ
- له Python څخه ډاټا پورته او ترلاسه کړئ
په اصل کې، د Pyhton عملیات یو ریپر اوور دی isc.py.Main. عملیات isc.py.ens.Operation د InterSystems IRIS محصولاتو څخه د Python پروسې سره تعامل ته اجازه ورکوي. پنځه غوښتنې ملاتړ کیږي:
isc.py.msg.ExecutionRequestد Python کوډ اجرا کولو لپاره. بیرته راګرځيisc.py.msg.ExecutionResponseد اعدام پایلې او د غوښتل شوي متغیر ارزښتونو سره.isc.py.msg.StreamExecutionRequestد Python کوډ اجرا کولو لپاره. بیرته راګرځيisc.py.msg.StreamExecutionResponseد پلي کولو پایله او د غوښتل شوي متغیر ارزښتونه. انلاګisc.py.msg.ExecutionRequest، مګر د تارونو پرځای جریان مني او بیرته راګرځوي.isc.py.msg.QueryRequestد SQL پوښتنې د اجرا کولو پایله لیږدولو لپاره. بیرته راګرځيEns.Response.isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequestد نړیوال / ټولګي / میز ډیټا تیرولو لپاره. بیرته راګرځيEns.Response.isc.py.msg.SaveRequestد Python شرایطو خوندي کولو لپاره. بیرته راګرځيEns.StringResponseد شرایطو ID سره.isc.py.msg.RestoreRequestد Python شرایطو بیرته راګرځولو لپاره.سربیره پردې،
isc.py.ens.Operationدوه ترتیبات لري:Initializer- د یو ټولګي غوره کول چې انٹرفیس پلي کويisc.py.init.Abstract. دا د دندو، ماډلونو، ټولګیو او داسې نورو بارولو لپاره کارول کیدی شي. دا یو ځل اجرا کیږي کله چې پروسه پیل شي.PythonLib- (یوازې لینکس) که تاسو د بوټ غلطۍ وګورئ، د هغې ارزښت یې وټاکئlibpython3.6m.soیا حتی د Python کتابتون ته په بشپړه لاره کې.
د سوداګرۍ پروسې رامینځته کول
دلته دوه ټولګي شتون لري چې د سوداګرۍ پروسې پراختیا اسانه کوي:
isc.py.ens.ProcessUtilsتاسو ته اجازه درکوي چې د متغیر بدیل سره د فعالیتونو څخه تشریحات استخراج کړئ.isc.py.util.BPEmulatorد Python سره د سوداګرۍ پروسې ازموینه اسانه کوي. دا کولی شي په اوسني پروسې کې د سوداګرۍ پروسې (Python برخې) اجرا کړي.
متغیر بدیل
ټولې سوداګریزې پروسې په میراث کې دي isc.py.ens.ProcessUtils، کولای شي د میتود څخه کار واخلي GetAnnotation(name) د نوم په واسطه د فعالیت تشریح ارزښت ترلاسه کول. د فعالیت تشریح ممکن متغیرات ولري چې پایتون ته د لیږدولو دمخه به د InterSystems IRIS اړخ کې ارزول کیږي. دلته د متغیر بدیل لپاره ترکیب دی:
${class:method:arg1:...:argN}- میتود زنګ#{expr}- د ObjectScript په ژبه کې کوډ اجرا کړئ.
یوه بیلګه د ازموینې سوداګرۍ پروسې کې شتون لري isc.py.test.Processد مثال په توګه، په فعالیت کې Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). په دې مثال کې:
#{process.WorkDirectory}د څیز د کاري لارښود ملکیت بیرته راګرځويprocess، کوم چې د ټولګي یوه بیلګه دهisc.py.test.Processهغه. د سوداګرۍ اوسنۍ پروسه.${%PopulateUtils:Integer:1:100}طریقه بوليIntegerکلونه%PopulateUtils، تیریدل دلیلونه1и100په حد کې د تصادفي عدد بیرته راګرځول1...100.
د سوداګرۍ پروسې ازموینه
د ازموینې تولید او ازموینې سوداګرۍ پروسه د پایتون ګیټ وے برخې په توګه په ډیفالټ کې شتون لري. د دوی کارولو لپاره:
- د OS ترمینل چلولو کې:
pip install pandas matplotlib seaborn. - د InterSystems IRIS ترمینل کې، چلول:
do ##class(isc.py.test.CannibalizationData).Import()د ازموینې ډاټا ډکولو لپاره. - محصولات پیل کړئ
isc.py.test.Production. - د غوښتنې ډول لیږل
Ens.Requestвisc.py.test.Process.
راځئ وګورو چې دا ټول څنګه یوځای کار کوي. خلاص isc.py.test.Process د BPL مدیر کې:

د کوډ اجرا کول
ترټولو مهم کال د Python کوډ اجرا کول دي:

غوښتنه کارول isc.py.msg.ExecutionRequestدلته د هغې ځانګړتیاوې دي:
Code- د Python کوډ.SeparateLines- ایا کوډ د اجرا کولو لپاره په لینونو ویشل.$c(10)(n) د تارونو جلا کولو لپاره کارول کیږي. مهرباني وکړئ په یاد ولرئ چې دا سپارښتنه نه کیږي چې ټول پیغام په یوځل کې پروسس کړئ، دا فعالیت یوازې د پروسس کولو لپاره دیdefاو ورته څو کرښې څرګندونه. ډیفالټ0.Variablesد کوما لخوا جلا شوی د متغیرونو لیست دی چې په ځواب کې به اضافه شي.Serialization- هغه متغیرونه څنګه سریالیز کړئ چې موږ یې غواړو بیرته راستانه کړو. اختیارونه:Str,Repr,JSON,PickleиDill, defaultStr.
زموږ په قضیه کې، موږ یوازې ملکیت ترتیب کوو Codeد دې لپاره چې نور ټول ملکیتونه خپل اصلي ارزښتونه کاروي. موږ یې د زنګ وهلو له لارې تنظیم کړو process.GetAnnotation("Import pandas")، کوم چې د چلولو په وخت کې د متغیر بدیل ترسره کیدو وروسته تشریح راګرځوي. په پای کې کوډ import pandas as pd Python ته لیږدول کیږي. GetAnnotation د ملټي لاین پیتون سکریپټونو ترلاسه کولو لپاره ګټور کیدی شي ، مګر د کوډ ترلاسه کولو پدې لاره کې هیڅ محدودیت شتون نلري. تاسو کولی شئ ملکیت تنظیم کړئ Code په هر ډول چې ستاسو لپاره مناسب وي.
د تغیراتو ترلاسه کول
د کارولو بله په زړه پورې ننګونه isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

دا د Python اړخ کې د ارتباط میټرکس محاسبه کوي او متغیر استخراج کوي corrmat د غوښتنې ملکیتونو تنظیم کولو سره د JSON ب formatه کې InterSystems IRIS ته بیرته:
Variables:"corrmat"Serialization:"JSON"
موږ کولی شو پایلې په بصری ټریس کې وګورو:

او که موږ په BP کې دې ارزښت ته اړتیا ولرو، دا په لاندې ډول ترلاسه کیدی شي: callresponse.Variables.GetAt("corrmat").
د ډاټا انتقال
بیا ، راځئ چې د InterSystems IRIS څخه Python ته د ډیټا لیږدولو په اړه وغږیږو ، د ډیټا لیږد ټولې غوښتنې انٹرفیس پلي کوي isc.py.msg.DataRequest، کوم چې لاندې ملکیتونه وړاندې کوي:
Variableد Python متغیر دی چې ډاټا لیکل کیږي.Type- متغیر ډول:dataframe(د پانډاس ډیټا فریم) یاlist.Namespace- هغه ساحه چې موږ یې معلومات ترلاسه کوو. پلاستیکي کڅوړهisc.pyباید په دې سیمه کې شتون ولري. دا ممکن د محصول ملاتړ پرته ساحه وي.
د دې انٹرفیس پراساس، د غوښتنو 4 ټولګي پلي کیږي:
isc.py.msg.QueryRequest- ملکیت ټاکلQueryد SQL پوښتنې لیږلو لپاره.isc.py.msg.ClassRequest- ملکیت ټاکلClassد ټولګي ډیټا تیرولو لپاره.isc.py.msg.TableRequest- ملکیت ټاکلTableد جدول ډیټا تیرولو لپاره.isc.py.msg.GlobalRequest- ملکیت ټاکلGlobalپه نړیواله کچه د معلوماتو لیږدولو لپاره.
د ازموینې په بهیر کې، فعالیت وګورئ RAWچیرته isc.py.msg.QueryRequest په عمل کې ښودل شوي.

د Python شرایط خوندي کول / بحال کول
په نهایت کې ، موږ کولی شو د Python شرایط په InterSystems IRIS کې ذخیره کړو ، د دې کولو لپاره ، واستوئ isc.py.msg.SaveRequest د دلیلونو سره:
Mask- یوازې هغه تغیرات چې ماسک راضي کوي خوندي شوي. ملاتړ شوی*и?. بېلګه:"Data*, Figure?". ډیفالټ*.MaxLength- د ذخیره شوي متغیر اعظمي اوږدوالی. که د متغیر سیریل کول اوږد وي، نو دا به له پامه غورځول شي. د هر اوږدوالي متغیر ترلاسه کولو لپاره 0 ته تنظیم کړئ. ډیفالټ$$$MaxStringLength.Name- د متن نوم (اختیاري).Description- د شرایطو توضیحات (اختیاري).
راګرځي Ens.StringResponse с Id خوندي شوي شرایط د ازموینې په بهیر کې، فعالیت وګورئ Save Context.
اړونده غوښتنه isc.py.msg.RestoreRequest د InterSystems IRIS څخه په Python کې شرایط باروي:
ContextIdد شرایطو پیژندونکی دی.Clear- د بیا رغولو دمخه شرایط پاک کړئ.
د Jupyter نوټ بوک
د خلاصې سرچینې ویب غوښتنلیک دی چې تاسو ته اجازه درکوي نوټ بوکونه جوړ او خپاره کړئ چې کوډونه، لیدونه او متن لري. د Python Gateway تاسو ته اجازه درکوي چې د BPL پروسې د Jupyter نوټ بوک په توګه وګورئ او ایډیټ کړئ. په یاد ولرئ چې منظم Python 3 اجرا کونکی اوس مهال کارول کیږي.
دا توسیع فرض کوي چې تشریحات د Python کوډ لري او د مخکیني سرلیکونو په توګه د فعالیت نومونه کاروي. اوس دا ممکنه ده چې په Jupyter نوټ بوک کې د PythonGateway سوداګرۍ پروسې رامینځته کړئ. دلته هغه څه دي چې ممکن دي:
- د سوداګرۍ نوې پروسې رامینځته کړئ
- د سوداګرۍ پروسې حذف کړئ
- نوي فعالیتونه رامینځته کړئ
- فعالیتونه بدل کړئ
- فعالیتونه حذف کړئ
دلته . او ځینې سکرین شاټونه:
د پروسې سپړونکی

د پروسې مدیر

د جوړولو
- تاسو به د InterSystems IRIS 2019.2+ ته اړتیا ولرئ.
- PythonGateway v0.8+ نصب کړئ (یوازې اړتیا لري
isc.py.util.Jupyter,isc.py.util.JupyterCheckpointsиisc.py.ens.ProcessUtils). - د ذخیرې څخه د ObjectScript کوډ تازه کړئ.
- چلول
do ##class(isc.py.util.Jupyter).Install()او لارښوونې تعقیب کړئ.
.
موندنو
MLToolkit د وسیلو یوه ټولګه ده چې هدف یې د ماډلونو او د لیږد چاپیریال سره یوځای کول دي ترڅو جوړ شوي ماډلونه په اسانۍ سره ستاسو د سوداګرۍ پروسو کې په اسانۍ سره وکارول شي. د Python Gateway د MLToolkit برخه ده او د Python ژبې سره ادغام چمتو کوي، تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال)، ډیری چمتو شوي کتابتونونه وکاروئ ترڅو ژر تر ژره تطبیقونکي، روبوټیک تحلیلي AI / د InterSystems پلیټ فارم IRIS کې د ML حلونه.
مرجع
MLToolkit
د MLToolkit کاروونکي ګروپ یو شخصي GitHub ذخیره ده چې د InterSystems کارپوریټ GitHub سازمان د یوې برخې په توګه رامینځته شوی. دا هغه بهرني کاروونکو ته په ګوته شوي چې د Python Gateway په ګډون د MLToolkit اجزا نصبوي، زده کوي یا دمخه کاروي. دا ډله د بازار موندنې، تولید، درملو او ډیری نورو صنعتونو په برخو کې یو شمیر پلي شوي قضیې (د سرچینې کوډ او ازموینې ډاټا سره) لري. د ML Toolkit کاروونکي ګروپ سره د یوځای کیدو لپاره، مهرباني وکړئ لاندې پتې ته یو لنډ بریښنالیک واستوئ: او په خپل لیک کې لاندې معلومات شامل کړئ:
- د GitHub کارن نوم
- سازمان (تاسو کار یا مطالعه کوئ)
- موقعیت (ستاسو په سازمان کې ستاسو اصلي موقف، یا "شاګرد" یا "خپلواک").
- هیواد
د هغو کسانو لپاره چې مقاله یې لوستلې او د مصنوعي استخباراتو او ماشین زده کړې میکانیزمونو رامینځته کولو یا کوربه توب کولو لپاره د پلیټ فارم په توګه د InterSystems IRIS سره علاقه لري ، موږ تاسو ته بلنه درکوو چې ستاسو شرکت ته د علاقې احتمالي سناریوګانو په اړه بحث وکړئ. موږ به په اسانۍ سره ستاسو د تصدۍ اړتیاوې تحلیل کړو او په ګډه به د عمل پلان وټاکو؛ زموږ د AI/ML متخصص ګروپ بریښنالیک آدرس سره اړیکه ونیسئ - .
سرچینه: www.habr.com
