لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/13/21 في كل الموقع
-
ليس بالضرورة أن نجعل كل المستخدمين يصلون إلى كافة البيانات في قاعدة البيانات قد نحجب بعض الواصفات في علاقة ما عن المستخدمين وذلك باستخدام مفهوم ليس بإنشاء جدول جديد وليس استعلام جديد. وإنما بإنشاء مايسمى "منظار" نستطيع من خلاله الوصول إلى جزء محدد من قاعدة البيانات. إن المنظار هو علاقة لاتنتمي إلى النموذج المنطقي لقاعدة البيانات لكنها تعرض للمستخدم بشكل مرئي كعلاقة افتراضية Virtual relation. CREATE VIEW view_name(c1,c2,...,cn) AS SELECT ...,...,... FROM ... WHERE ... c تشير لاسم العمود ## يمكننا استخدام اسم المنظار للوصول إلى العلاقة الافتراضية (الجدول الوهمي) الناتجة عن استعلام هذا المنظار المعرف مسبقاً. ## المنظار ليس جدول جديد يخزن في ال Database وإنما يتم تخزين الاستعلام الذي عرف المنظار من خلاله. ## يتم تنفيذ الاستعلام الموجود في المنظار في كل مرة يتم فيها ذكر هذا المنظار. ## عند الطلب يتم تنفيذ الاستعلام. مثلاً سوف أقوم بإنشاء منظار لعلاقة ما ولتكن A بحيث أخفي فيها الواصفة c2 أما باقي الواصفات تكون مرئية: CREATE VIEW myview AS SELECT c1,c3,cn # c2 لا نضع FROM A; # ثم يمكنك التعامل معه وكأنه علاقة موجودة في القاعدة لذا نسميها علاقة افتراضية2 نقاط
-
يمكن تحديد النص المساع لعنصر ما في HTML عن طريق title لأي عنصر مثلا: <!DOCTYPE html> <html> <body> <p title="أكاديمية حسوب">https://academy.hsoub.com</p> </body> </html> أو ابحث عن CSS Tooltip2 نقاط
-
2 نقاط
-
يمكن ذلك بطريقتين : الطريقه الأولى بعد تهيئة القاموس نقوم باستخدام التابع setdefault حيث يأخذ وسيطين الأول المفتاح والثاني نوع القيم ممكن أن تكون list وset وغيرها وبعد ذلك نستخدم append الخاص ب list لأضافة القيمة #طريقة أولى: dic={} # تعريف قاموس فارغ yourlist=[[88,66],[80,3]] # تعريف قائمة for j in range(len(yourlist)): dic.setdefault(j, list()).append(yourlist[j]) print(dic) # {0: [[88, 66]], 1: [[80, 3]]} الطريقة الثانية بدون التابع setdefault نقوم فقط بعملية إسناد تقليدية #طريقة ثانية: dic={} # تعريف قاموس فارغ yourlist=[[88,66],[80,3]] # تعريف قائمة for j in range(len(yourlist)): dic[j]=yourlist[j]2 نقاط
-
أرجو أن تبدأي بكتابة البرنامج و سنساعدك إن حصل معك أخطاء. يمكنك تقسم الاستعلام ل أجزاء: عبارة select تجلب عدد المواد الدراسية ويمكن عدهم بواسطة الدالة count from بعدها نحدد اسم الجدول نستخدم تعليمة التجميع group by ونمرر لها عمود في الجدول يميز الطالب لوحده عن غيره السؤال ليس صعب، يمكنك حله وسنساعدك في تعلم الحل.2 نقاط
-
لاحظ أن بعض الدوال لا يمكنها إستخراج القيم السالبة و الأرقام المكتوبة بصورة علمية scientific writing مثل 0.000000123 والتي يمكن كتابتها في بايثون بصيغة 1.23E-7، للحصول على دالة أشمل يمكننا إستخراج الأرقام و العلامات مثل - (موجودة في الأرقام السالبة و الأرقام العلمية) من النص و تخطي أي قيم حرفية كالتالي: newstr = ''.join((ch if ch in '0123456789.-e' else ' ') for ch in s) بذلك نحصل على كل الأرقام مجمعة (نتيجة لإتخدام الدالة join) في شكل نص و بوجود فراغات ( الحروف التي تم تخطيها من قبل الشرط if) و نقوم بتحويل النص المحتوي على كل الأرقام الممكنة إلى قائمة بإستخدام split، كما يمكننا تحويل كل الأرقام إلى قيم كسرية (إختياري) كالتالي: listOfNumbers = [float(i) for i in newstr.split()] بذلك تكون كل الأرقام مخزنة في المتغير listOfNumbers.2 نقاط
-
تمام , يمكن إنشاء هذا الريكويست الذي يفحص إذا كان الرقم موجود أو لا من خلال الاستعلام التالي $findNumber = Number::where('phone', 'like', '%' . $number . '%')->first(); $findNumber = Number::where('phone', 'like', '%' . $number . '%')->get();2 نقاط
-
ال multithreading ليست دوماً الحل الأفضل لتسريع البرنامج: هناك عبء overhead مرتبط بإدارة ال Threads، لذلك لايكون من الجيد استخدامها للمهام البسيطة (الغاية الأساسية هي السرعة في التنفيذ، لكن في هكذا حالات قد تكون النتائج سيئة أي قد يزداد زمن التنفيذ وهذا ما لانريده فنحن بالأساس نتجه لتحقيق الThreading لكي يقل زمن التنفيذ وليس العكس) ال multithreading يزيد من تعقيد البرنامج ، مما يجعل تصحيح الأخطاء أكثر صعوبة. ال multiprocessing: هناك عبء مرتبط بها عندما يتعلق الأمر بعمليات الإخراج والإدخال. لاتتم مشاركة الذاكرة بين ال subprocess حيث يكون لكل subprocess نسخة كاملة خاصة به من الذاكرة وهذا يشكل عبء Overhead بالنسبة للبرامج الأخرى. إن الموديول multiprocessing يستخدم ال Processes أي أن التعليمة الثانية التي أشرت لها في كتابتك تقوم بإنشاء Processe أما الموديول multithreading يستخدم ال Threads أي أن التعليمة الأولى التي أشرت لها تقوم بإنشاء Thread، والفرق الأساسي بينهم أن الأولى تستخدم ذاكرة منفصلة لكل subprocess (كما أشرت في الأعلى) بينما ال Threads تتشارك الذاكرة وبالتالي في ال multiprocessing لاخوف من حدوث حالات تلف البيانات أو التوقف التام deadlock بينما في ال multithreading فهذا وارد الحدوث. متى نستخدم كل منها: إذا كان البرنامج يحوي العديد من مهام الإدخال والإخراج أو استخدام الشبكة فيفضل استخدام ال threading لأنها سيترتب عليها overhead أقل من ال multiprocessing. أو إذا كان لديك GUI في برنامجك. إذا كان برنامجك يحوي على العديد من العمليات الحسابية "CPU bound" فيفضل التعامل مع ال multiprocessing.2 نقاط
-
الإصدار 1.0.0
76189 تنزيل
هذا الكتاب ليس وصفةً سريعةً للثّراء! وهو لا يَعِدُكَ بجنيِ آلافِ الدولاراتِ منْ خلالِ بقائكَ نائمًا في البيت. لا يُقدّم الكتاب وَصفاتٍ سحريّةً للحُصولِ على 500$ خلالَ ساعتين من خلال مواقعَ خطيرة. ولا يعرض نماذجَ لأناسٍ حصلوا على مليون دولار في عامهم الأوّل بعد قراءة الكتابْ! هذا الكتاب، كتابٌ واقعيٌّ. يلامسُ الحقيقةَ الصعبة بأنّهُ مِن الصّعبِ الحُصولُ على وظيفة في الكثير من الدُّولِ العربيّة. ويخبرك بأن هناكَ أملًا وبديلًا. بل بديلًا قويًّا قَد يكون أفضل من الوظيفة بمراحل. ويبرهن على ذلك بعرض قصص نجاحٍ لأشخاصٍ مثلك، عاشوا ظروفك نفسها، ومن بلدك، ويعانون من جميع المصاعب التي تعاني منه، وبدأوا بمؤهِّلاتٍ قريبةٍ جدًا من مؤهلاتك، وامتلكوا بعضَ المهاراتِ التي تَمتلكها، ولربما كنتَ تُحسِنُها أكثر مِنْ بَعضِهم. ولكنَّ الفرقَ الوحيد (ليس طبعا أنّهم قرأوا الكتاب)، الفرقُ الوَحيدُ أنّهُم وَجَدوا طَريقَهُم للعملِ عَبْر الأنترنت وتحقيقِ مصدرِ دخلٍ كافٍ ومستمرٍّ لأنفسهم، بعضهم – بل الكثير منهم – يحقِّقُ ضِعف الرّاتِبِ الّذي تَحلُمُ بِه شَهريا. يَستعرضُ الكِتابُ قِصصَ النَّجاح بغرضِ إلهامكَ ومَنحِكَ الدَّافِع لتنجح كما نَجحُوا. ويؤكد أنّهم نجحوا ليس لأنّهم تعلّموا المُعادلة السِّحرية للنَّجاح، وليس لأنّهم وجدوا الوصفة السّرية لعصيرِ النّجاح فأعدّوه وشربوه، وليس لأنّ هناك (واسطةً) أخدتْ بأيديهم وعبرت بهم إلى طريقِ النّجاح. إنّما نجَحوا لأنّهم عَمِلوا وتَعبوا وصَابروا وواصَلوا حتّى وَصَلوا. يعرض عليك الكتابُ فرصةَ أنْ تنجح كَما نجحوا، بَل ويَضَعك في ظروفٍ أَفضَل مِن ظُروفهم. وذلك بشرحِ الخُطواتِ اللّازمِ اتّخاذها لبدءِ عملكَ عبر الأنترنت. فالكثير مِنهم لم تُتَح لَه فرصة الحصول على تلك المعلومات، وإنما جرّبوا فأخطأوا فتعلّموا فجرّبوا ثانيةً فنجحوا. وهنا – في هذا الكتاب – نختصر عليك الطّريق، فنعرضُ لكَ تجارِبَهم وأخْطاءَهُم وأَفْضلَ ما حقَّقُوه. يبدأ الكتاب بتعريفِ العمل الحرّ، ومجالاتِه، ومُميّزاتهِ وعُيوبِه. ثمّ يُرشِدُكَ إِلى الكيفيّةِ التي تَبدأُ بِها عملكَ الحُرّ بخطواتٍ بسيطةٍ وسهلةِ التّطبيق. ويُتابِع معك هذِه الخُطوات خُطوة بخطوة. فيقدّم لكَ النَّصائِحَ حولَ إِنشاءِ ملفِّكَ الشّخصيّ، ويُحدثك عَن الطّريقة التي تُقدّمُ بها عروضَ العمل، ويُعلّمكَ كيفيّة تحديدِ السِّعرِ المُناسِب للمشروع، وكيفيّة تَقدير الزّمن اللّازِم لتنفيذه. ويُواسيكَ في حال عدمِ حُصولِكُ عُلى مَشاريع. يَعرضُ الكتابُ عَددًا مِنَ المَهاراتِ اللّازِمة للعَملِ الحُرّ عبرَ الأنترنت، فيستعرضُ مهاراتِ التّواصلِ معَ الزّبائن، ومهاراتِ التّفاوُضِ والإِقْناعْ، ومهاراتِ إدارةِ وتنظيمِ الوقتْ. الكتابُ لا يَدّعي أنّهُ المرجعُ الشاملُ لكلِّ ما لهُ علاقةٌ بالعملِ الحُرّ، إنَّما يرجو مُؤلّفُ الكتابِ أنْ تَكونَ كلماتُهُ قُد لامستْ مَواطنَ الإرادةِ فِي قَلبك. وفُصولَه قدْ شَقّتْ لكَ طريقًا واضحًا للعملِ الحرِّ عبر الأنترنت. وأن يَكونَ ركيزةَ البدايةِ والخُطوة الأولَى في عملكَ عبْر الأنْترنَت. أُمنِيَتُنا في هَذا الكِتاب، أَنْ تَكونَ قِصّةَ نجاحٍ ملهمةً يُحتَفَى بِها، وتُذكَرُ في إصْداراتٍ لاحقةٍ مِنَ الكِتاب. ضَعْ ذَلكَ نُصبَ عَيْنيكْ خِلالَ قِراءتِكَ للكِتابْ.1 نقطة -
1 نقطة
-
أستخدام Node.js في كتابة برنامج بسيط وأثناء تشغيل البرنامج على حاسوبي الشخصي أريد الحصول على بروتوكل الإنترنت المحلي "Local IP address" الخاص بحاسوبي الشخصي كيف يمكنني القيام بذلك بإستخدام Node.js1 نقطة
-
1 نقطة
-
PCA هي طريقة تستخدم لتقليل الأبعاد أي تقليل عدد الفيتشرز بهدف تسريع عملية معالجة البيانات. لا يقوم PCA بتقليل المساحه في الهارد وأنما يقلل المساحة في الذاكره العشوائية أثناء عملية التدريب. وغالباً ماتستخدم مع التعليم بدون إشراف إلا أنه يتم استخدامها أحياناً مع التعليم بإشراف لكنها تؤثر على كفاءة النموذج بشكل سلبي فهي لاتأخذ قيم ال target بعين الاعتبار. يتم استخدامه عبر الموديول sklearn.decomposition #استدعاء المكتبات: from sklearn.decomposition import PCA في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل #الشكل العام للموديل: PCAM=PCA(n_components=None, copy=True,svd_solver='auto', iterated_power='auto', random_state=None) الوسيط الأول n_components هو عدد حقيقي أو صحيح يشير إلى عدد المكونات التي سيتم الإبقاء عليها المقصود بالمكونات أقل عدد أمثلة وعدد الفيتشرز وإذا أخذ None يتم الاحتفاظ بجميع المكونات. الوسيط الثاني copy قيمة بوليانية إذا كان false فإنه سوف يتم العمل على نسخة من البيانات الأصلية أي تعديل على البيانات سوف يكون دائم أما إذا كان True تؤخذ نسخة من البيانات. الوسيط الثالث svd_solver يمثل طريقة الحل يأخذ ‘auto’, ‘full’, ‘arpack’, ‘randomized’ وكل قيمة لها طريقتها في اختيار الأبعاد لذلك ينصح بوضع ‘auto’ لكي تكون عملية الاختيار تلقائية. الوسيط الرابع iterated_power عدد التكرارات المسموحة عندما يكون svd_solver=randomized. ويمكن وضعها auto لكي يتم التحديد بشكل تلقائي. الوسيط الخامس random_state للتحكم بآلية التقسيم. طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامة سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train,X_test نستطيع كتابة الأتي لعملية التدريب. #الشكل العام للموديل: PCAM=PCA(n_components=None, copy=True, whiten=False,svd_solver='auto', tol=0.0001, iterated_power='auto', random_state=None) PCAM.fit(X_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب نستطيع حساب دقة الموديل أو كفاءته على التدريب والاختبار عن طريق التابع score وحساب عدد المكونات وفق الشكل #حساب الكفاءة على التدريب والاختبار وعدد المكونات: print('Train Score is : ' , PCAM.score(X_train)) print('Test Score is : ' , PCAM.score(X_test)) print('No. of components is : ' , PCAM.components_) الان للحصول على X الجديدة نستخدم transform #الحصول على الدخل الجديد: X =PCAM.transform(X) يوجد دالة تقوم بالعمليتن معا التدريب والتحويل fit_transform. #استدعاء المكتبات from sklearn.decomposition import PCA #الشكل العام للموديل PCAM=PCA(n_components=None, copy=True, whiten=False,svd_solver='auto', tol=0.0001, iterated_power='auto', random_state=None) PCAM.fit(X_train) #حساب الكفاءه على التدريب والاختبار وعدد المكونات print('Train Score is : ' , PCAM.score(X_train)) print('Test Score is : ' , PCAM.score(X_test)) print('No. of components is : ' , PCAM.components_) #الحصول على القيم X_new =PCAM.transform(X_train)1 نقطة
-
بالنسبة للبرمجة فأغلب الحواسيب المتاحة حاليًا تفي بالغرض، وذلك لأن متطلبات البرمجة ليست كبيرة، ويمكن لحسوب من 10 سنوات أن يستخدم في أغلب أنواع البرمجة بدون مشاكل. أما بالنسبة إلى برامج التصميم والجرافيك، فالأمر مختلف قليلًا ومتفاوتة أيضًا، فعلى حسب البرامج المستعملة سيختلف الحد الأدنى من المتطلبات، ولكن يمكن أن نتفق على أن المواصفات التالية تفي بالغرض لأغلب برامج التصميم مثل Adobe Photoshop و Illustrator أو Cinema 4D .. إلخ: وحدة المعالجة المركزية CPU: يفضل أن تكون من نوع inter core i3 - i5 - i7 الجيل العاشر أو أعلى، أو AMD Rayzen 3600 وما فوق. ذاكرة الوصول العشوائي RAM: على الأقل 8 جيجابايت بسرعة 2600 MHz تخزين من نوع SSD: بمساحة 256 جيجابايت على الأقل. بعض أنواع المعالجات تحتوي على بطاقة رسوميات مثل معالجات AMD وبعض معالجات intel وحينها لن تحتاج إلى شراء بطاقة رسوميات عالية، وعلى الجانب الأخر توجد معالجات لا تحتوي على بطاقة رسوميات مثل معالجات intel من سلالة f (مثل intel i5 9400f (لاحظ يتنهي رقم المعالج بحرف f) )، أنصحك ببطاقة Nvidia GeForce GTX 1080 أو أعلى. بالمواصفات السابقة يمكنك العمل على البرامج التالية بسلاسة وبدون مشاكل: كل منتجات Adobe مثل Photoshop و After Effect منتجات AutoDesk مثل AutoCAD و Maya و 3Ds Max و Rivet المحررات البرمجية مثل VS Code و Android Studio برامج أنظمة التشغيل الإفتراضية مثل virtualbox و GenyMotion1 نقطة
-
1 نقطة
-
اعتقد أنك تقصد الفرق بينهما أليس كذلك؟! حسناً... وظائفهما متشابهة لحد ما، لذا فغالباً ماتذكران معاً. لكن جذور التقنيتين مختلفة كثيراً. LVM: هي التقنية الستخدمة من قبل نظام لينوكس وهي اختصار ل Logical Volume Manager "مدير التخزين المنظقي"، تستخدم لعزل الحيز التخزيني المتاح لنظام الملفات (المنطقي) عن الحيز التخزيني الفيزيائي، بحيث تجعل إدارة البيانات أكثر مرونة واستقلالاً عن السعة الحقيقية للأقراص عند تحميل تلك البيانات. RAID: وهي تفنية مستخدمة في التخزين وهي اختصاراً ل "Redundant Array of Independent Disks" أي التخزين الفائض للبيانات على الأقراص بحيث تحمي البيانات من الفقدان الذي قد يحصل بسبب فشل الأقراص أو حدوث عطب ما في أحد الأقراص فهي تستخدم طريقة بأن تخزن الملف على أكثر من قرص (الأقراص تكون رخيصة الثمن ) وله أكثر من مستوى من RAID0 إلى 6 وكل مستوى له خصائصه.1 نقطة
-
1 نقطة
-
بعد كتابة الشيفرات البرمجية للموقع، كتصميم واجهات أمامية Front End = HTML - CSS و لغة Back End مثلا PHP يتم نسخ الملفات لما يسمى استضافة، وهي حاسوب متصل على الشبكة، بعدها يمكن الدخول لرابط الموقع و تصفحه، طبعا يتم ربط الموقع عن طريق Domain وهو رابط URL. الربح من الموقع له أكثر من مصدر: إعلانات مثل Google Ads عضوية مدفوعة وسيط تجاري متجر الكتروني وغيرهم.. نسبة الربح حسب عدد الزوار و نوع الدخل، لا يمكن حسابه.1 نقطة
-
احاول انشاء template لكل مشاريعي المستقبلية باستخدام react و express و أريد كل شئ ان يكون على سيرفر واحد فقمت بانشاء تجهيز express يسمح ب تقديم مجلد ال build الخاص ب react على شكل view ولكن بما انهما على سيرفر واحد عانيت من مشكلة routing بين express و react router ولكن قمت بالاجتهاد وحللت المشكلة لكن لا اعرف مدى صحة ما قمت به const express = require('express'); const mongoose = require('mongoose'); const morgan = require('morgan'); const cors = require('cors'); require('dotenv').config(); const errorController = require('./controllers/errorController'); const { upload } = require('./helpers/upload'); mongoose.set('useFindAndModify', false); const app = express(); app.use(cors()); app.use(morgan('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(express.static(__dirname + '/client/dist')); app.get('/#/*', function (req, res) { res.sendFile(__dirname + '/client/dist/index.html'); }); app.use(errorController); mongoose .connect(process.env.MONGO_URI_DEV, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => { app.listen(process.env.PORT, () => { console.log('listening ' + process.env.PORT); }); }) .catch(() => { console.log('mongoose connection failed'); }); قمت ياستخدام hashroute الخاص ب react router وفي كل مرة اصل الى رابط فيه # أرسل ال index.html ارجو اخباري اذا ما كنت ارتكبت خطأ سيعطل مسار العمل في المستقبل1 نقطة
-
يمكنك ذلك عن طريق الموديول: ensemble.GradientBoostingClassifier الصيغة العامة: sklearn.ensemble.GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, max_depth=3, random_state=None, max_features=None, verbose=0, max_leaf_nodes=None, validation_fraction=0.1, n_iter_no_change=None, tol=0.0001, ccp_alpha=0.0) الوسطاء: loss: معادلة التكلفة المستخدمة. {‘deviance’, ‘exponential’}, 'default=’deviance n_estimators : عدد مراحل ال boosting المستخدمة. default=100 learning_rate: قيمة معامل التعلم افتراضياً 0.1. criterion: الأسلوب الرياضي للمعالجة (قياس جودة الانقسام) وتكون {‘friedman_mse’, ‘mse’, ‘mae’}, 'default=’friedman_mse max_depth : عمق الأشجار. min_samples_split:الحد الأدنى لعدد العينات المطلوبة لتقسيم عقدة داخلية. int , default=2. min_samples_leaf: الحد الأدنى لعدد العينات المطلوبة في العقدة التي تمثل الاوراق. default=1. random_state: يتحكم بعملية التقسيم افتراضياً يكون None. verbose: لعرض التفاصيل التي تحدث في التدريب. افاراضياً 0 أي لايظهر شيء، أما وضع أي قيمة أكبر من الصفر سيعرض التفاصيل int. max_features:العدد المناسب من الفيتشرز التي يتم احتسابها {“auto”, “sqrt”, “log2”}. في حال auto: max_features=sqrt(n_features). sqrt: ax_features=sqrt(n_features). log2: max_features=log2(n_features). None: max_features=n_features. إذا وضعت قيمة float: max_features=int(max_features * n_features) قيمة int: سيتم أخذ ال features عند كل تقسيمة ك max_features. validation_fraction: النسبة التي سيتم اقتطاعها من عينة التدريب للاستخدام كعينة تطوير. افتراضياً 0.1 n_iter_no_change: لتطبيق مفهوم التوقف المبكر "early stopping" (إيقاف التدريب عندما تتوقف عينة التطةير عن التحسن). افتراضياً None أي لن تطبق، إذا أسندت لها أي عدد صحيح سيتم تطبيقه. tol: مقدار السماحية في التقاربم من القيم المثالية. افتراضياً 0.0001 ccp_alpha: معامل تعقيد يستخدم لتقليل التكلفة الزمانية والمكانية. non-negative float, default=0.0 ال attributtes: classes_: لعرض ال labels التي وجدها. n_outputs_: عدد المخرجات الناتجة عن عملية ال fitting. estimators_: عرض معلومات عن كل الخوارزميات التي تم تشكيلها. feature_importances_: عرض أهم الفيتشرز المؤثرة في التوقع. n_features_: عدد الفيتشرز. التوابع: fit(data): للقيام بعملية التدريب. predict(data): لتوقع القيم. score(data): لتقييم كفاءة النموذج. ()get_params :لايجاد مقدار الدقة. predict_proba(data) : لعمل التوقع أيضاً لكن هنا سيخرج الفيمة الاحتمالية(أي لن يتم القصر على عتبة) apply(data): ياتي لك بقيمة الورقة المحسوبة. مثال: # استيراد المكتبات from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import confusion_matrix import seaborn as sns import matplotlib.pyplot as plt #تحميل البيانات data = load_breast_cancer().data labels = load_breast_cancer().target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True) # RandomForestClassifier تطبيق GBCM = GradientBoostingClassifier(n_estimators=110,max_depth=1,random_state=44,n_iter_no_change=1) GBCM.fit(X_train, y_train) print('Train Score is : ' , GBCM.score(X_train, y_train)) # Train Score is : 0.9758241758241758 print('Test Score is : ' , GBCM.score(X_test, y_test)) # Test Score is : 0.9649122807017544 #print('No. of n_classes_ are : ' , GBCM.n_classes_) # No. of n_classes_ are : 2 #print('No. of features are :', GBCM.n_features_) # No. of features are : 30 # عرض معلومات عن كل الأشجار التي تم تشكيلها #print(GBCM.estimators_) # عرض أهم الفيتشرز #print( GBCM.feature_importances_)1 نقطة
-
يمكنك استخدامها عبر الموديول: ensemble.RandomForestClassifier الصيغة العامة: sklearn.ensemble.RandomForestClassifier(n_estimators=100, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, max_features='auto', max_leaf_nodes=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, ccp_alpha=0.0) n_estimators : عدد أشجار القرار المستخدمة. default=100 criterion: الأسلوب الرياضي للمعالجة وتكون {“gini”, “entropy”}, 'default='gini max_depth : عمق الأشجار. min_samples_split:الحد الأدنى لعدد العينات المطلوبة لتقسيم عقدة داخلية. int , default=2. min_samples_leaf: الحد الأدنى لعدد العينات المطلوبة في العقدة التي تمثل الاوراق. default=1. max_features:العدد المناسب من الفيتشرز التي يتم احتسابها {“auto”, “sqrt”, “log2”}. في حال auto: max_features=sqrt(n_features). sqrt: ax_features=sqrt(n_features). log2: max_features=log2(n_features). None: max_features=n_features. إذا وضعت قيمة float: max_features=int(max_features * n_features) قيمة int: سيتم أخذ ال features عند كل تقسيمة ك max_features. bootstrap: لتحديد فيما إذا كان سيتم استخدام عينات ال bootstrap عند بناء الأشجار. في حال ضبطها على true سيتم استخدام كامل البيانات لبناء كل شجرة. افتراضياً تكون False. oob_score: لتحديد فيما إذا كان سيتم استخدام عينات out-of-bag لتقدير قيمة التعميم "generalization score". ويجب أن تكون bootstrap مضبوطة على True لاستخدامها. n_jobs: عدد المهام التي يتم تنفيذها بالتوازي. -1 للتنفيذ بأقصى سرعة ممكنة. random_state: يتحكم بعملية التقسيم افتراضياً يكون None. verbose: لعرض التفاصيل التي تحدث في التدريب. افاراضياً 0 أي لايظهر شيء، أما وضع أي قيمة أكبر من الصفر سيعرض التفاصيل int. ccp_alpha: معامل تعقيد يستخدم لتقليل التكلفة الزمانية والمكانية. non-negative float, default=0.0 التوابع: fit(data): للقيام بعملية التدريب. predict(data): لتوقع القيم. score(data): لتقييم كفاءة النموذج. ()get_params :لايجاد مقدار الدقة predict_proba(data) : لعمل التوقع أيضاً لكن هنا سيخرج الفيمة الاحتمالية(أي لن يتم القصر على عتبة) apply(data): ياتي لك بقيمة الورقة المحسوبة. ()get_n_leaves: يرد عدد الأوراق. ()get_depth: يرد عمق الشجرة. ال attributtes: classes_: لعرض ال labels التي وجدها. n_outputs_: عدد المرخرجات الناتجة عن عملية ال fitting. estimators_: عرض معلومات عن كل الأشجار التي تم تشكيلها. base_estimator_:عرض معلومات الشجرة الأساسية feature_importances_: عرض أهم الفيتشرز المؤثرة في التوقع. n_features_: عدد الفيتشرز. مثال: # استيراد المكتبات from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import confusion_matrix import seaborn as sns import matplotlib.pyplot as plt #تحميل البيانات data = load_breast_cancer().data labels = load_breast_cancer().target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True) # RandomForestClassifier تطبيق RandomForestC = RandomForestClassifier(criterion = 'gini',n_estimators=100,max_depth=2,random_state=33) #criterion can be also : entropy RandomForestC.fit(X_train, y_train) print('Train Score is : ' , RandomForestC.score(X_train, y_train)) # 0.9538461538461539 print('Test Score is : ' , RandomForestC.score(X_test, y_test)) # Test Score is : 0.9298245614035088 #print('No. of classes are : ' , RandomForestC.n_classes_) # No. of features are : 2 #print('No. of features are : ' RandomForestC.n_features_) # No. of features are : 30 #print('No. of n_outputs are : ' , RandomForestC.n_outputs_) # No. of n_outputs are : # عرض معلومات عن كل الأشجار التي تم تشكيلها #print(RandomForestC.estimators_) # عرض معلومات الشجرة الأساسية #print( RandomForestC.base_estimator_) # عرض أهم الفيتشرز #print( RandomForestC.feature_importances_)1 نقطة
-
1 نقطة
-
إذا كنت تقصد ال tooltip كما وضح وائل في التعليق السابق فبالطبع يمكنك عمل ذلك من خلال الخاصية title ولكن لن تتمكن من تعديل التنسيق حيث يبقى لل title نفس الشكل ولن تستطيع التعديل عليه حيث يبدو من الصورة أنك تحتاج شكل معين يأخذ بعض التنسيقات وهناك العديد من الطرق عن طريق ال javascript عن طريق ال css فقط بدون الحاجة لل javascript أو يمكنك البحث عن الأشياء الجاهزة فقط أبحث عن ال tooltip تطبيق ذلك عن طريق ال css سيكون كالتالي <div data-tooltip="hello"> <!-- لم نستخدم ال title --> something here </div> ال css [data-tooltip]:before { position : absolute; content : attr(data-tooltip); opacity : 0; /* يمكنك تنسيقه كما تريد عن طريق إضافة التنسيقات هنا */ } [data-tooltip]:hover:before { /*title الجزء المسؤل عن ظهور ال */ opacity : 1; }1 نقطة
-
كيف يمكنني الاستعلام عن هذا السؤال في الsql او الdatabase جلب عدد الكورسات لكل طالب في SQL ,database ,programming ,oracle1 نقطة
-
لدي قمت بتجهيز مكون app ليعمل بهذه الطريقة import React, { useState, useEffect } from 'react'; import { Switch, Route, Link, HashRouter } from 'react-router-dom'; import routes from './routes/userRoutes'; import Navbar from './pages/layout/Navbar'; import Footer from './pages/layout/Footer'; export default function App() { console.log(routes); return ( <HashRouter> <Navbar></Navbar> <Switch> {routes.map((route) => ( <Route {...route}></Route> ))} </Switch> <Footer></Footer> </HashRouter> ); } و لدي مشكلة حيث انه اعلم انه في المستقبل سانشئ صفحات لا تحتوي على navabar و footer وأتساءل عن الطريقة الصحيحة للوصول لذلك من الأن ليكون كل شئ منظم من البداية1 نقطة
-
1 نقطة
-
ممكن عن طريق request api الذي تفحص من خلاله رقم الجوال موجود ولا لا, هل أنت تستخدم php في الباك أند ؟1 نقطة
-
لدي endpoint لجلب بيانات وهذه ال controller الخاصة بي exports.list = async (req, res, next) => { try { const tags = await Tag.find({}); res.status(200).json(tags); } catch (error) { next(error); } }; اعرف ان find تجلب بيانات كثيرة لكن تبقى لا تجلب كل البيانات واريد انشاء pagination في هذه ال endpoint وأبحث عن طريقة بسيطة وسهلة لتحقيق ذلك1 نقطة
-
نفس فكرة request api الذي يقوم بفحص الرقم موجود ولا لا من خلال استعلام mysql $findNumber = sprintf("SELECT * FROM table WHERE number LIKE '%s%%'", mysqki_real_escape_string($prefix)); $result = mysqli_query($conn, $findNumber); بحيث تفحص إذا كان في أول أو أخر الحقل موجود الرقم الذي تبحث عنه.1 نقطة
-
كيف يمكنني الحصول على المسار الخاص بالملف الحالي الذي قمت بتشغيله في node.js أعلم أن هناك "process.cwd" ولكنها لا تشير إلى مسار الملف الذي قمت بتشغيله على سبيل المثال إذا كنت في المسار "/home/hany/" وقمت بكتابة الأمر التالي node /home/hany/some/dir/file.js ففي حالة قمت بإستخدام "process.cwd()" ف النتيجة هي "/home/hany/" وليست "home/hany/some/dir/" هل هناك طريقه للحصول على المسار الخاص بالملف الذي قمت بتشغيله ؟1 نقطة
-
يجب إرفاق الكود الخاص بك ليتم توضيحه لك من خلال الكود, أو تطبيق الفكرة التالية عندما تقوم بإرجاع رقم الجوال و تخزينه في قاعدة البيانات عن طريق api تقوم بعمل request api ثاني للتأكد بأن الرقم الجوال هل تم تخزينه ولا لا , ثم هذا request api إذا كان موجود الرقم في قاعدة البيانات يعود لك مثلا status : true إذا كان غير موجود يعود status: false و من ثم إذا كانت النتيجة false تقوم بإدخال الرقم إلى قاعدة البيانات باستخدام request api المخصص لذلك.1 نقطة
-
مؤخرا أحاول الانتقال من redux الى redux toolkit وقد تعودت على الأساسيات الخاصة ب reducer import { createSlice } from '@reduxjs/toolkit'; const initialState = { value: 10, }; const counterSlice = createSlice({ name: 'counter', initialState, reducers: { increment(state) { state.value++; }, decrement(state) { state.value--; }, incrementby(state, action) { state.value += action.payload; }, }, }); export const { increment, decrement, incrementby } = counterSlice.actions; export default counterSlice.reducer; لكن ماذا اذا اردت عمل dispatch ل action تجلب البيانات من السيرفر ب axios كيف يمكن القيام بذلك في حالة استخدام redux toolkit1 نقطة
-
المواصفات: وحدة المعالجة المركزية : Intel Core i5 – i7 من الجيل العاشر. بطاقة رسومات Intel Iris Plus – Nvidia GeForce GTX 1650 Ti. ذاكرة الوصول العشوائي: 8 جيجابايت – 64 جيجابايت. الشاشة: 15.6 بوصة FHD + (1920 × 1200) IPS – UHD + (3840 × 2400). التخزين: 256 جيجا بايت – 1 تيرا بايت SSD.1 نقطة
-
السلام عليكم انا مستخدم هاذا الكود في ال post-controller let express = require('express'), multer = require('multer'), mongoose = require('mongoose'), uuidv4=require('uuid') const DIR = './images/'; const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, DIR); }, filename: (req, file, cb) => { const fileName = file.originalname.toLowerCase().split(' ').join('-'); cb(null, uuidv4() + '-' + fileName) } }); var upload = multer({ storage: storage, limits: { fileSize: 1024 * 1024 * 5 }, fileFilter: (req, file, cb) => { if (file.mimetype == "image/png" || file.mimetype == "image/jpg" || file.mimetype == "image/jpeg") { cb(null, true); } else { cb(null, false); return cb(new Error('Only .png, .jpg and .jpeg format allowed!')); } } }); // انشاء الصورة exports.create = (upload.single('image'),(req, res, next) => { const url = req.protocol + '://' + req.get('host') let model = new Post({ title: req.body.title, content: req.body.content, profileImg: `${req.protocol}://${req.get('host')}/images/${req.file.filename}`, author: req.user.id }); model.save() .then(result => { res.status(201).json({ message: "User registered successfully!", userCreated: { _id: result._id, profileImg: result.profileImg } }) }) .catch(err => { console.log(err), res.status(500).json({ error: err }); }) }); وايضا داخل ال craet-post-controller import React from 'react'; import axios from 'axios'; import "bootstrap/dist/css/bootstrap.min.css"; //import { Button } from 'react-bootstrap'; const createError = require('http-errors'); class CreatePost extends React.Component { constructor(props) { super(props); if (!localStorage.getItem('token')) { this.props.history.push('/Login');//move to home page } this.onChangeTitle = this.onChangeTitle.bind(this); this.onChangeContent = this.onChangeContent.bind(this); this.onSubmit = this.onSubmit.bind(this); this.renderError = this.renderError.bind(this); this.state = { title: '', content: '', profileImg: '', error: '' }; } onChangeTitle(e) { this.setState({ title: e.target.value, error: '' }); } onChangeContent(e) { this.setState({ content: e.target.value, error: '' }); } onSubmit(e) { e.preventDefault(); const formData = new FormData() formData.append('profileImg', this.state.profileImg) let data = { title: this.state.title, content: this.state.content, }; axios.post('/api/posts', data) .then(res => { //alert(res.data.token); this.props.history.push('/');//move to home page }) .catch(err => { if (err.title === ' ' && err.content === ' ') throw createError(404); //alert(err.response.data.message) this.setState({ error: err.response.data.message }); }) } renderError() { return this.state.error ? (<blockquote>{this.state.error}</blockquote>) : ""; } render() { return ( <div className="container"> <div className="row"> <h4 className="mb-5"> انشاء صورة</h4> {this.renderError()} <form onSubmit={this.onSubmit} enctype="multipart/form-data"> <h3 className="mb-3"> العنوان </h3> <div className="form-group mb-5"> <input className="form-input" type="text" value={this.state.title} onChange={this.onChangeTitle} placeholder="اضف عنوان للصورة " /> </div> <h3 className="mb-3"> اضافة صورة </h3> <div className="form-group mb-5"> <input type="file" className="form-input" name="image" defaultValue={this.state.profileImg} /> </div> <h3 className="mb-3"> المحتوى </h3> <div className="form-group mb-5"> <textarea className="form-input" value={this.state.content} onChange={this.onChangeContent} placeholder="اضف وصف للصورة "></textarea> </div> <div className="form-group"> <button className="btn button-primary button-outline" type="submit">ارسال</button> </div> </form> </div> </div> ); } } export default CreatePost; وايضا داخل ال post-model const mongoose=require("mongoose"); const Schema=mongoose.Schema; const CommentSchema=new Schema({ content:{ type:String, required:true }, author:{ type:Schema.Types.ObjectId, ref:'User' }, create_at:{ type:Date, default:Date.now }, }); const PostSchema=new Schema({ title:{ type:String, required:true }, profileImg: { type: String }, content:{ type:String, required:true }, author:{ type:Schema.Types.ObjectId, ref:'User' }, comments:[ CommentSchema, ], create_at:{ type:Date, default:Date.now }, }); const Post=mongoose.model('Post',PostSchema); module.exports=Post; مش عارف ليه بيظهر نفس الخطا وحاولت ادور ع حل لكن من دون فاىدة؟1 نقطة
-
يمكنك إستخدام عدة طرق للحصول على النتيجة المرغوبة ، يمكنك إستخدام حلقة لتقسيم الكلمات من النص والتأكد بإستخدام ()isalpha وإضافتها الى قائمة كالآتي s = """Bound methods have been "bound" (how descriptive) to an instance, what about that?!""" x = [] for i in s.split(): if i.isalpha(): x.append(i) print(x) أو هذا إستخدام دالة findall من حزمة re import re x = """Bound methods have been "bound" (how descriptive) to an instance, what about that?!""" print(re.findall('[a-z]+', x, flags=re.IGNORECASE)) أو هذا الكود import re s = """Bound methods have been "bound" (how descriptive) to an instance, what about that?!""" print(re.findall(r'(?<!\S)[A-Za-z]+(?!\S)', s))1 نقطة
-
يمكنك إستخدام Regular Expressions بحيث تجد جميع الأحرف كمصفوفة و من ثم تقوم بتحويل هذه المصفوفة الى string و بطريقة سلهة جدا كالتالي import re word1 = " ".join(re.findall("[a-zA-Z]+", st)) و إن أردت أيضا الأرقام فيمكنك إضافة 0-9 داخل الأقواس فيتم جلب الأرقام أيضا1 نقطة
-
classmethod@ تجعل التابع تابع صنف أي"class method" وبالتالي تمكننا من الوصول إلى الصنف الذي تم فيه تعريف التابع. التابع الذي يتم تعريفه على أنه تابع صف، يستقبل كمعامل أول الصف الخاص به ويعبر عن ذلك ب cls، أي بشكل مشابه لما كنا نفعله في التوابع العادية حينما كنا نمرر للتابع العادي نسخة instance أي (self). إذن هي توابع مرتبطة بالصف وليس بال object. التوابع المعرفة بهذه الطريقة يكون لديها سماحية "access to the state of the class" أي النفاذ إلى حالة الصف (نحن مررنا لها cls أي أنها تشير إلى الصف نفسه وليس نسخة منه) ويمكنها التعديل عليها أيضاً وهذا التعديل ينتقل إلى كل ال object. Static Method@: وهي مشابهة لتلك الموجودة في Java أو C++. الدالة التي نعرفها على أنها ساكة يمكننا الوصول لها من الكلاس نفسه (أي يمكن الوصول لها مباشرة من خلال اسم الكلاس). أو من خلال ال object المأخوذة من الكلاس. عندما يتم إستدعاء التوابع الساكنة من كائن من هذا الكلاس, فإنه لا تتم معاملته بشكل خاص بالنسبة للكائن بل سيبقى كأنك تستدعيها بشكل مباشر من الكلاس. وهذا هو السبب في كونها لاتقبل الوسيط self. التوابع من هذا النوع لاتملك السماحية "access to the state of the class" أي لايمكنها التعديل على حالة الصف. أي أنها لاتعرف شيئ عن حالة الصف class state ولاتستطيع تعديلها أما classmethod يمكنها ذلك. بشكل عام تستخدم class method كنوع من ال factory method (دوال تعيد object (بشكل مشابه لل constructor ) من أجل استخدام معين أنت تريده) أما ال static فتستخدم كأداة للقيام بعمليات معينة. إذا لم يكن لديك معرفة عن factory method يمكنك أن تجدها في هذا المقال: https://wiki.hsoub.com/Design_Patterns/factory_method from datetime import date class Person: def __init__(self, name, age): self.name = name self.age = age # دالة ساكنة لاختبار فيما إذا كان مسناً أم لا @staticmethod def old(age): print("old") return age > 55 #person كلاس ميثود لإنشاء كائن من الصف @classmethod def create(cls, name, year): return cls(name, date.today().year - year) print (Person.old(22)) # True obj=Person.create('km',24) print(obj) # <__main__.Person object at 0x000001C7DC405708> obj.age # 19971 نقطة
-
من المعروف أن أي دالة تصف ب statice تكون تنتمي للصنف و ليس لاوبجت من ذلك الصنف بما معناه إننا نستطيع إستدعاء الدالة فقط بكتابة إسم الصنف دون عمل instance منه أي خلق أوبجت كالتالي class A(object): def foo(self, x): print(f"executing foo({self}, {x})") @classmethod def class_foo(cls, x): print(f"executing class_foo({cls}, {x})") @staticmethod def static_foo(x): print(f"executing static_foo({x})") #هنا نقوم بخلق أوبجكت أو وحده من هذا الصنف a = A() #يمكننا هنا أستدعاء الclassmethod #بهذه الطريقة فقط a.class_foo(1) # static_fooأما ال #فهي تنتمي فقط للكلاس و ليس للأوبجت لذلك يتم أستدعائها من عن طريق إسم الكلاس #كالتالي A.static_foo('hi') كما أن الclassmethod تمكنك من تغيير الجالة للأوبجكت الstaticmethod لا تستطيع بها أنم تقوم بتغيير أي حالة و ليس لها علم بأي معلومات عن الأوبجكت و كما نرى classmethos تاخذ cls كمتغير يمرر اليها و يجب تمريره أما الstaticmethod فليس شرط أن تأخذ أي متغير1 نقطة
-
يمكننا باستخدام التعابير المنتظمة: نستورد المكتبة re = regular expression ثم نطبق الدالة findall: import re text = "Hello, World! 0 Started 99, I'm 20 years" result = re.findall(r'\d+', text) => ['42', '32', '30'] d يعبر عن digit أي رقم. + (على الأقل واحد)1 نقطة
-
يمكننا فعل ذلك باستخدام الدالة Split التي تقوم بتقسيم النص إلى قائمة حيث تكون كل كلمة عنصر قائمة, بعد تقسيم النص يمكننا فحص كل كلمة هل هي رقم أم لا باستخدام الدالة isdigit x = "Hello, World! 0 Started 99 , I'm 20 years" num = [int(i) for i in x.split() if i.isdigit()] print(str(num))1 نقطة
-
السلام عليكم لدي حاسوب hp I5 7eme generation Ram 8gega 1T desque dur و أعمل عليه برمجة و تصميم و احيانا مونتاج و هو يعمل بطريقة سلسة و جيدة1 نقطة
-
dic1={'team1':5, 'lose1':39} dic2={'team2':3, 'lose2':40} def combine(f1, f2): dic = f1.copy() #dic ننشئ نسخة من القاموس الأول ونسميها dic.update(f2) # نضيف لهذا القاموس مفاتيح وقيم القاموس الثاني return dic combine(dic1, dic2) ''' في حال كانت إحدى المفاتيح في القاموس الأول موجودة في الثاني فسيتم استبدالها بمفاتيح الثاني ''' ويمكن أن تجرب: dic = dict(list(dic1.items()) + list(dic2.items())) حيث items هي تابع يرد المفاتيح والقيم في أول قاموس وتضعهم على شكل list من ال tuble ثم تدمجهما مع الثانية وتحولهما في النهاية إلى قاموس في النسخ الحديثة من بايثون يمكنك أن تفعل هذا ببساطة : dic = {**dic1, **dic2}1 نقطة
-
يمكنك إضافة المهارات التي تملكها ويمكنك العمل بها بدقة. حاول جعل معرض أعمالك مميزا، في حال كانت التصاميم جميلة ضعها وإلا اكتب شرحا عما قمت به إن كان مثلا برمجة bach-end قدم عروضك على المشاريع المناسبة لك، وإقرأ متطلبات المشروع بدقة وتجنب المشاريع المبهمة.. اكتب عرضا مميزا، قم بالترحيب بصاحب المشروع ثم اذكر مهاراتك ثم حاول إقناعه بتوظيفك بطريقتك الخاصة مهتما للتفاصيل التي هو ذكرها في شرح تفاصيل المشروع إن كنت مبتدءاً حدد سعرا مناسبا ومنافساً على الأقل حتى تكتسب بعض التقييم عندها ضع عرضا يناسب خبراتك و متطلبات المشروع. وآخر جزء مهم قبل التوظيف هو نقاس المشروع، حاول التواجد متصلا بالانترنت وتابع الموقع باستمرار و حاول الرد على صاحب المشروع بأقرب فرصة.1 نقطة
-
1 نقطة
-
1 نقطة