إضافة جزء التحليل الفني:
# استيراد مكتبات إضافية
من keras.optimizers استيراد آدم، RMSprop، SGD
من keras.callbacks قم باستيراد EarlyStopping وModelCheckpoint
من keras.wrappers.scikit\_learn قم باستيراد KerasClassifier
استيراد numpy كـ np
استيراد الباندا ك pd
من keras.layers قم باستيراد Dense وLSTM وGRU والتسلسل والإدخال
من keras.models نموذج الاستيراد
من sklearn.preprocessing استيراد MinMaxScaler، StandardScaler
من sklearn.model\_selection استيراد القطار\_test\_split، KFold، RandomizedSearchCV
من sklearn.metrics، قم باستيراد متوسط\_مربع\_خطأ
استيراد نظام التشغيل
import urllib

# عناوين URL لملفات البيانات
Stock\_data\_url = 'https://raw.githubusercontent.com/example/AAPL.csv'
news\_data\_url = 'https://raw.githubusercontent.com/example/AAPL\_news.csv'
econ\_data\_url = 'https://raw.githubusercontent.com/example/AAPL\_econ.csv'

#أسماء الملفات
مخزون\_بيانات\_ملف = 'AAPL.csv'
news\_data\_file = 'AAPL\_news.csv'
econ\_data\_file = 'AAPL\_econ.csv'

# تحقق مما إذا كانت الملفات موجودة بالفعل، إذا لم تقم بتنزيلها
إذا لم يكن os.path.isfile(stock\_data\_file):
 urllib.request.urlretrieve(stock\_data\_url، Stock\_data\_file)
إذا لم يكن os.path.isfile(news\_data\_file):
 urllib.request.urlretrieve(news\_data\_url, news\_data\_file)
إذا لم يكن os.path.isfile(econ\_data\_file):
 urllib.request.urlretrieve(econ\_data\_url, econ\_data\_file)

# تحميل بيانات المخزون التاريخي
df\_stock = pd.read\_csv(stock\_data\_file)
# قم بتحميل بيانات إضافية مثل المؤشرات الاقتصادية أو المشاعر الإخبارية
df\_news = pd.read\_csv(news\_data\_file)
df\_econ = pd.read\_csv(econ\_data\_file)

# قياس البيانات
قشارة\_stock = MinMaxScaler(feature\_range=(0, 1))
المقياس\_news = StandardScaler()
المقياس\_econ = StandardScaler()
المخزون\_البيانات = المقياس\_stock.fit\_transform(df\_stock)
news\_data = Scaler\_news.fit\_transform(df\_news)
econ\_data = المقياس\_econ.fit\_transform(df\_econ)

# الحصول على التسميات
ص = df\_stock.iloc[:,-1]

# تقسيم البيانات إلى مجموعات تدريب واختبار
X\_train، X\_test، y\_train، y\_test = قطار\_test\_split(stock\_data، y، test\_size=0.2)

# إنشاء الفرع الأول من النموذج لبيانات المخزون
المخزون\_المدخلات = الإدخال(الشكل=(X\_train.shape[1],))
x = LSTM(50، تسلسلات الإرجاع = صحيح) (المخزون_المدخلات)
س = LSTM(50، تسلسل الإرجاع = صحيح)(x)
س = LSTM(50)(خ)

# إنشاء الفرع الثاني للنموذج لبيانات الأخبار
news\_inputs = الإدخال(الشكل=(news\_data.shape[1],))
y = GRU(50, return\_sequences=True)(news\_inputs)
ص = جرو(50)(ذ)

# إنشاء الفرع الثالث لنموذج البيانات الاقتصادية
econ\_inputs = الإدخال(الشكل=(econ\_data.shape[1],))
z = كثيف (50، التنشيط='relu')(econ\_inputs)

# دمج الفروع الثلاثة
تم دمجها = سلسلة ([x، y، z])

# إنشاء طبقة التنبؤ النهائية
التنبؤات = كثيفة (1) (مدمجة)

# إنشاء وتجميع النموذج
النموذج = النموذج (المدخلات=[المخزون_المدخلات والأخبار_المدخلات والاقتصاد_المدخلات] والمخرجات=التنبؤات)

# تعريف المحسن
محسن = آدم ()

# تجميع النموذج
model.compile(الخسارة='المتوسط\_المربع\_خطأ'، المحسن=المحسن)

#تعريف التوقف المبكر
Early\_stopping = EarlyStopping(monitor='val\_loss'، الصبر=5)

# تحديد نقطة التفتيش النموذجية
model\_checkpoint = ModelCheckpoint('model.h5', save\_best\_only=True)

# إنشاء قائمة رد الاتصال
رد الاتصال\_قائمة = [التوقف المبكر، النموذج\_نقطة التفتيش]

# ملائمة النموذج لبيانات التدريب باستخدام التحقق المتبادل وعمليات الاسترجاعات المحددة
model.fit([X\_train[0], X\_train[1], X\_train[2]], y\_train, validation\_data=([X\_test[0], X\_test[1] ، X\_test[2]]، y\_test)،
 دفعة\_حجم=20، العصور=100، رد الاتصال=رد الاتصال\_قائمة)

# قم بإنشاء غلاف لـ scikit-Learn
model = KerasClassifier(build\_fn=model, Epochs=100, Batch\_size=20, Verbose=0)

# تحديد معلمات البحث في الشبكة
حجم الدُفعة = [10، 20، 40، 60، 80، 100]
العصور = [10، 50، 100]
أدوات تحسين الأداء = ['Adam'، 'RMSprop'، 'SGD']
param\_grid = dict(batch\_size=batch\_size, epochs=epochs,Optimer=optimizers)

# إنشاء كائن السيرة الذاتية للبحث العشوائي
عشوائي_بحث = RandomizedSearchCV (المقدر = النموذج، التوزيعات المعلمة = المعلمة _ الشبكة، n_iter = 10، السيرة الذاتية = 3، مطول = 2)

# ملائمة كائن السيرة الذاتية للبحث العشوائي مع البيانات
عشوائي\_search.fit([X\_train[0]، X\_train[1]، X\_train[2]]، y\_train)

# اطبع أفضل المعلمات ومتوسط ​​درجات الاختبار المقابلة
طباعة ("أفضل المعلمات: {}".format(random\_search.best\_params\_))
print("أفضل متوسط ​​درجات الاختبار: {:.4f}".format(random\_search.best\_score\_))
{"source": "ewof/sharegpt-instruct-unfiltered-deduped", "kind": "human", "evolved_from": null}