{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"colab":{"provenance":[]},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":84896,"databundleVersionId":10305135,"sourceType":"competition"}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n","metadata":{"id":"ukNO1owL040-"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport pandas as pd\nimport zipfile\n\n# Step 1: Upload kaggle.json file\nfrom google.colab import files\nuploaded = files.upload()\n\n# Step 2: Move kaggle.json to the correct directory\nos.makedirs(os.path.expanduser('~/.kaggle'), exist_ok=True)\n!mv kaggle.json ~/.kaggle/\n\n# Step 3: Set permissions for kaggle.json\nos.chmod(os.path.expanduser('~/.kaggle/kaggle.json'), 0o600)\n\n# Step 4: Install Kaggle (if not already installed)\n!pip install kaggle --quiet\n\n# Step 5: Download the competition data\n!kaggle competitions download -c playground-series-s4e12 -p ./data --force\n\n# Step 6: Extract the dataset\nwith zipfile.ZipFile('./data/playground-series-s4e12.zip', 'r') as zip_ref:\n    zip_ref.extractall('./data')\n\n# Step 7: Load the datasets\ntrain_data = pd.read_csv('./data/train.csv')\ntest_data = pd.read_csv('./data/test.csv')\nsample_submission = pd.read_csv('./data/sample_submission.csv')\n\n# Step 8: Display the datasets\nprint(\"Train Data:\")\nprint(train_data.head())\n\nprint(\"\\nTest Data:\")\nprint(test_data.head())\n\nprint(\"\\nSample Submission:\")\nprint(sample_submission.head())\n","metadata":{"id":"3rc7D-Tx1xRe","outputId":"efe4117e-3e2d-4379-ceaa-1dd6b41c7473"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data.info()","metadata":{"id":"EpUoTIC93RR1","outputId":"0e20331b-88fb-4525-df22-b1b400d7ae9c"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.columns","metadata":{"id":"xSngsp5J3cvi","outputId":"e788a4fe-14d4-4171-cb88-b1498d5ff624"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.histplot(y=train_data['Age'])\n","metadata":{"id":"U2mu3K6F43Jn","outputId":"81afe076-001f-45a5-bb20-ce9425c122f3"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Age'].nsmallest(1)","metadata":{"id":"Zvcnmm-G5Z2y","outputId":"852322e2-ec9b-4df0-ed2f-3fd446abd2bb"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Age'].nlargest(1)","metadata":{"id":"R-EHdJQf5w1_","outputId":"ed1d1ecf-e63d-4bc4-fb07-ebff68a50ca2"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.describe()","metadata":{"id":"tpAqf6XF661e","outputId":"db238a20-7407-49e3-bc28-096f005c599b"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Gender'].value_counts()","metadata":{"id":"YpoZR0WG66zq","outputId":"290b2a7c-73ff-490e-9d24-a236adf41f02"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.countplot(x=train_data['Gender'],color='#C57878')","metadata":{"id":"YQN_Euck79Sp","outputId":"e30df1fd-1e58-4009-b515-9713cfd502d8"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.histplot(train_data['Annual Income'])","metadata":{"id":"9tQyLjDS66yD","outputId":"9729b402-bb8c-4787-b7fa-47fe47254e38"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(train_data['Annual Income'].nlargest(1))\nprint(train_data['Annual Income'].nsmallest(1))\n","metadata":{"id":"RExckhKO66wd","outputId":"65b64e1b-e58c-424c-d989-ecfb93957059"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.iloc[167855]","metadata":{"id":"D35Tcqwi_PJg","outputId":"3f94d3b5-d12d-4fdb-e723-359d96c0e8a8"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Marital Status'].value_counts()","metadata":{"id":"oEbIJvuv66uu","outputId":"72f057d4-0375-4079-c028-036d48fdfae4"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Age']=train_data['Age'].fillna(train_data['Age'].mean())\ntrain_data['Annual Income']=train_data['Annual Income'].fillna(train_data['Annual Income'].mean())\ntrain_data.dropna(inplace=True)\n\ndf=train_data.copy()","metadata":{"id":"ioErRYsZDO-N"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.barplot(x=train_data['Marital Status'],y=train_data['Age'],hue=train_data['Gender'])\n# plt.ylim(37000,149997)","metadata":{"id":"V-pCdvzU66tF","outputId":"d76ea7a3-3724-4261-96d1-b53a36df5119"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.barplot(x=train_data['Gender'],y=train_data['Annual Income'])","metadata":{"id":"u50b8z6S-GmV","outputId":"7d984657-5bc9-4bf5-9835-f196fad624b2"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Number of Dependents'].value_counts()","metadata":{"id":"tr5H_fmi66oE","outputId":"121a53e4-8903-4c51-f8d3-a999e4fa0bc3"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.columns","metadata":{"id":"nTerjZTu-WdQ","outputId":"cf7c2b77-a0a3-434d-d19b-bf58178f577a"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.countplot(x=train_data['Number of Dependents'])","metadata":{"id":"93g5Oceu-WOH","outputId":"cbb5ab7f-9ba0-439a-b862-1bab68638d96"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.countplot(x=train_data['Education Level'])","metadata":{"id":"nGZjYcVgGHnm","outputId":"b68b87d6-b8a6-472d-b63e-b93a64797d6a"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.info()","metadata":{"id":"2Usg8FFQ-S1q","outputId":"7de4c88d-fe9c-4a1d-f5aa-387e79426a39"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Education Level'].value_counts()","metadata":{"id":"jc3EnHsVLuTK","outputId":"e7ea8bcf-95b3-41cc-9e4c-8af71231e4eb"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['Exercise Frequency'].value_counts()","metadata":{"id":"GbnyG-79WMIU","outputId":"45495905-d11c-437a-d1af-83f75d8bf88e"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.preprocessing import OneHotEncoder\n\ndf['Gender'] = train_data['Gender'].map({'Female': 0, 'Male': 1})\ndf['Marital Status'] = train_data['Marital Status'].map({'Single': 0, 'Married': 1, 'Divorced': 2})\ndf['Education Level'] = train_data['Education Level'].map({'High School': 0, \"Bachelor's\": 1, \"Master's\": 2, 'PhD': 3})\ndf['Customer Feedback'] = train_data['Customer Feedback'].map({'Poor': 0, 'Average': 1, 'Good': 2})\ndf['Smoking Status'] = train_data['Smoking Status'].map({'No': 1, 'Yes': 0})\ndf['Exercise Frequency'] = train_data['Exercise Frequency'].map({\n    'Weekly': 3,\n    'Rarely': 0,\n    'Monthly': 2,\n    'Daily': 1\n})\none_hot_columns = ['Marital Status', 'Occupation', 'Location', 'Policy Type', 'Property Type']\n\nencoder = OneHotEncoder(sparse_output=False, drop='first')\nencoded_features = encoder.fit_transform(train_data[one_hot_columns])\n\nencoded_df = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out(one_hot_columns))\n\ntrain_data_encode = pd.concat([df.drop(one_hot_columns, axis=1), encoded_df], axis=1)\n\n# عرض البيانات بعد التحويل\nprint(train_data_encode.head())\n","metadata":{"id":"eFEY258R-SyQ","outputId":"1604ac5e-e31a-4cd8-bd5f-cc8b65a80f1e"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data_encode.head()","metadata":{"id":"64EfeFYo-SsC","outputId":"005cfdd4-4e75-4ec4-9bdc-3529c3e64464"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data_encode.info()","metadata":{"id":"rkHg8Iz3UR9b","outputId":"6e6157e7-6bae-4394-fc4a-cd26946ab909"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sns.scatterplot(x=train_data_encode['Annual Income'],y=train_data_encode['Premium Amount'])","metadata":{"id":"uZA7HZ-G66ly","outputId":"5e91f972-55dc-4485-a1e5-9431425e2e7b"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# sns.pairplot(train_data_encode)","metadata":{"id":"7awzPuHCF-Vd"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data_encode.drop('id',axis=1,inplace=True)","metadata":{"id":"Chyb9vOwF-T1"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data_encode.columns","metadata":{"id":"F1cV9L5mF-SN","outputId":"a9f78d75-4661-4614-db6f-2f56d23ff99f"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import sklearn\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_error, r2_score","metadata":{"id":"yHcdEOcvF-Qa"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_data_encode['Policy Start Date']=pd.to_datetime(train_data_encode['Policy Start Date'])\n","metadata":{"id":"hMem4AjkTLAV"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\ntrain_data_encode=train_data_encode.dropna()","metadata":{"id":"0TIOUF6YXGf0"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data_encode.columns","metadata":{"id":"cyjqe6LIXoj-","outputId":"1c5982ab-354b-4c5b-c681-bc0bff50d205"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"x1=train_data_encode.drop(['Premium Amount','Policy Start Date'],axis=1).dropna().values\ny=train_data_encode['Premium Amount'].values","metadata":{"id":"bOsCjGaGF-Oz"},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"","metadata":{"id":"GXoN9uD8587G"}},{"cell_type":"code","source":"train_data_encode.dropna().info()","metadata":{"id":"4qFjSlstTsP1","outputId":"f47c0a4b-f1fb-445c-b257-d19e00d7d8a3"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nfrom statsmodels.stats.outliers_influence import variance_inflation_factor\n\n# Assuming train_data_encode is a DataFrame containing your independent variables\nX = train_data_encode.select_dtypes(include=np.number)  # Select only numeric columns\n\n# Calculate VIF\nvif_data = pd.DataFrame()\nvif_data[\"Feature\"] = X.columns\nvif_data[\"VIF\"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]\n\nprint(vif_data)","metadata":{"id":"9Q4Wy6Uo34z6","outputId":"25b4dd10-7be4-4ead-f4c6-a0d1196f04f4"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import seaborn as sns\nimport matplotlib.pyplot as plt\nplt.figure(figsize=(50, 20))\n# Compute correlation matrix\ncorr_matrix = X.corr()\n\n# Plot heatmap\nsns.heatmap(corr_matrix, annot=True, cmap=\"coolwarm\")\nplt.show()\n","metadata":{"id":"hNOj0oQR4iRl","outputId":"b7cf6387-c372-4790-8ecf-82be52dc9fda"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"lr_model=LinearRegression()\nlr_model.fit(x1,y)","metadata":{"id":"Xe2oY4F4F-NO","outputId":"50cd7d37-bc0c-47ed-adef-4f4512cb8104"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data['Age'] = test_data['Age'].fillna(test_data['Age'].mean())\ntest_data = test_data.dropna()","metadata":{"id":"pfAz49MwTCgV"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data.info()","metadata":{"id":"PwyIjZBYaNNC","outputId":"69667a8a-af8f-48eb-e024-50af95f73c4f"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data['Education Level'].value_counts()","metadata":{"id":"aYDLUAbkaf-l","outputId":"eeffae70-9271-40c1-abda-05cba5cc33fb"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.preprocessing import OneHotEncoder\n\ndf['Gender'] = test_data['Gender'].map({'Female': 0, 'Male': 1})\ndf['Marital Status'] = test_data['Marital Status'].map({'Single': 0, 'Married': 1, 'Divorced': 2})\ndf['Education Level'] = test_data['Education Level'].map({'High School': 0, \"Bachelor's\": 1, \"Master's\": 2, 'PhD': 3})\ndf['Customer Feedback'] = test_data['Customer Feedback'].map({'Poor': 0, 'Average': 1, 'Good': 2})\ndf['Smoking Status'] = test_data['Smoking Status'].map({'No': 1, 'Yes': 0})\ndf['Exercise Frequency'] = test_data['Exercise Frequency'].map({\n    'Weekly': 3,\n    'Rarely': 0,\n    'Monthly': 2,\n    'Daily': 1\n})\none_hot_columns = ['Marital Status', 'Occupation', 'Location', 'Policy Type', 'Property Type']\n\nencoder = OneHotEncoder(sparse_output=False, drop='first')\nencoded_features = encoder.fit_transform(train_data[one_hot_columns])\n\nencoded_df = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out(one_hot_columns))\n\ntest_data_encode = pd.concat([df.drop(one_hot_columns, axis=1), encoded_df], axis=1)\n\n# عرض البيانات بعد التحويل\nprint(test_data_encode.head())\n","metadata":{"id":"fSm3InnZF-Ld","outputId":"68da1713-4f23-4026-8b07-28c6593aca44"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(test_data['Education Level'].unique())","metadata":{"id":"PUUW4EH9F-J0","outputId":"4977541f-8dbe-4ee4-8a29-c9a312b89b76"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df.info()","metadata":{"id":"heET13DYF-IK","outputId":"f1d22528-c311-428b-f440-14bdcaf5e5ec"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data_encode=test_data_encode.dropna()\n","metadata":{"id":"S_rbLGZvF-Gi"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"x_test=test_data_encode.drop(['id','Premium Amount','Policy Start Date'],axis=1).values\ny_test=test_data_encode['Premium Amount'].values\ny_pred=lr_model.predict(x_test)","metadata":{"id":"pnkvGXPDb-9M"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.metrics import mean_squared_error, r2_score\nmse = mean_squared_error(y_test, y_pred)\nr2 = r2_score(y_test, y_pred)\n\nprint(\"Mean Squared Error:\", mse)","metadata":{"id":"fuVM-fTqcJkD","outputId":"772b65b0-7c54-4917-a28f-3cc31a97301b"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"r2","metadata":{"id":"ny7-C8BEcZv8","outputId":"dc62664e-5c14-496f-9fcc-06e4a5b44ec4"},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# use PCA","metadata":{"id":"X5sJ_TdM7C1W"}},{"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\n\n# Standardize training data\nscaler = StandardScaler()\nx1_scaled = scaler.fit_transform(x1)\n\n# Standardize test data\nx_test_scaled = scaler.transform(x_test)\n","metadata":{"id":"ztSfRzFx7BgW"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.decomposition import PCA\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Fit PCA on training data\npca = PCA()\nx1_pca = pca.fit_transform(x1_scaled)\n\n# Plot the cumulative explained variance\nexplained_variance_ratio = np.cumsum(pca.explained_variance_ratio_)\nplt.figure(figsize=(8, 5))\nplt.plot(range(1, len(explained_variance_ratio) + 1), explained_variance_ratio, marker='o')\nplt.xlabel('Number of Components')\nplt.ylabel('Cumulative Explained Variance')\nplt.title('PCA Explained Variance')\nplt.grid()\nplt.show()\n","metadata":{"id":"jyI0CKYg7Bd1","outputId":"28ac6b01-dbbf-472c-a173-87999b876767"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Apply PCA with selected components\nn_components = 10  # Adjust based on explained variance\npca = PCA(n_components=n_components)\nx1_pca = pca.fit_transform(x1_scaled)  # Transform training data\nx_test_pca = pca.transform(x_test_scaled)  # Transform test data\n","metadata":{"id":"nr4Nsebz7BaG"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_error, r2_score\n\n# Train the model\nmodel = LinearRegression()\nmodel.fit(x1_pca, y)\n\n# Predict on test data\ny_pred = model.predict(x_test_pca)\n\n# Evaluate the model\nmse = mean_squared_error(y_test, y_pred)\nr2 = r2_score(y_test, y_pred)\n\nprint(f\"Mean Squared Error: {mse:.2f}\")\nprint(f\"R^2 Score: {r2}\")\n","metadata":{"id":"TSuie2y17BYg","outputId":"3b05a91e-34b3-44aa-e789-629d1f74135a"},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Use Feature Selection Instead of PCA","metadata":{"id":"iVZgAdK878Zh"}},{"cell_type":"code","source":"import seaborn as sns\nimport pandas as pd\n\n# Compute correlation matrix\ncorr_matrix = pd.DataFrame(x1, columns=test_data_encode.drop(['id','Premium Amount','Policy Start Date'],axis=1).columns).corr()\n\n# Visualize\nsns.heatmap(corr_matrix, annot=True, cmap='coolwarm')\n","metadata":{"id":"sCD7T6bm7BXO","outputId":"d5f6978e-a34b-462e-a817-2cefa5cc3f34"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import RandomForestRegressor\n\nmodel = RandomForestRegressor()\nmodel.fit(x1, y)\n\n# Feature importances\n\n","metadata":{"id":"tTl_Ko2i7BVd","outputId":"d7b06155-c9e3-4f8a-df45-b3466c43a045"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"importances = model.feature_importances_\nfeature_importance_df = pd.DataFrame({\n    'Feature': test_data_encode.drop(['id','Premium Amount','Policy Start Date'],axis=1).columns,\n    'Importance': importances\n}).sort_values(by='Importance', ascending=False)\n\nprint(feature_importance_df)","metadata":{"id":"phkluAHq9-pO","outputId":"6d572b4b-64bf-4e08-ce0a-0df974ab88e3"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.linear_model import Ridge\n\nridge = Ridge(alpha=1.0)  # Alpha controls regularization strength\nridge.fit(x1, y)\ny_pred_ridge = ridge.predict(x_test)\n","metadata":{"id":"jQida1ke8bDv"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mse_ridge = mean_squared_error(y_test, y_pred_ridge)\nr2_ridge = r2_score(y_test, y_pred_ridge)\n\nprint(f\"Mean Squared Error (Ridge): {mse_ridge:.2f}\")\nprint(f\"R^2 Score (Ridge): {r2_ridge}\")","metadata":{"id":"U_B3_C288bB_","outputId":"42a2d54f-0d2c-4943-f6fd-8b8006bd49c4"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.linear_model import Lasso\n\nlasso = Lasso(alpha=1.19)  # Alpha controls regularization strength\nlasso.fit(x1, y)\ny_pred_lasso = lasso.predict(x_test)\n\nmse_lasso = mean_squared_error(y_test, y_pred_lasso)\nr2_lasso = r2_score(y_test, y_pred_lasso)\nprint(f\"Mean Squared Error (Lasso): {mse_lasso:.2f}\")\nprint(f\"R^2 Score (Lasso): {r2_lasso}\")","metadata":{"id":"Ye5BgnvY8bAa","outputId":"89b9d8e0-b4e9-4f51-dd18-30437cf622f9"},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# XGBRegressor","metadata":{"id":"PVom-W50Cvva"}},{"cell_type":"code","source":"from xgboost import XGBRegressor\n\nxgb_model = XGBRegressor(n_estimators=500, learning_rate=0.05)\nxgb_model.fit(x1, y)\ny_pred = xgb_model.predict(x_test)\n","metadata":{"id":"yLu8yDKw8a-w"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.metrics import mean_absolute_error\n\nr2 = r2_score(y_test, y_pred)\nmae = mean_absolute_error(y_test, y_pred)\nmse = mean_squared_error(y_test, y_pred)\n\nprint(f\"R^2 Score: {r2}\")\nprint(f\"Mean Absolute Error: {mae}\")\nprint(f\"Mean Squared Error: {mse}\")","metadata":{"id":"qQcaQL7t8a8-","outputId":"4d4f361d-0408-48fa-8429-26fdf8c787ca"},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# using deep learning","metadata":{"id":"XELWz1M1FJZd"}},{"cell_type":"code","source":"from tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Dense, Dropout\nfrom tensorflow.keras.optimizers import Adam\nfrom tensorflow.keras.callbacks import EarlyStopping, LearningRateScheduler\nfrom sklearn.preprocessing import StandardScaler\n\n# توحيد البيانات\nscaler = StandardScaler()\nx1_scaled = scaler.fit_transform(x1)\nx_test_scaled = scaler.transform(x_test)\n\n# بناء النموذج\nmodel = Sequential()\nmodel.add(Dense(1024, activation='selu', input_shape=(x1_scaled.shape[1],)))\nmodel.add(Dense(512, activation='selu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(128, activation='relu'))\nmodel.add(Dense(1, activation='linear'))\n\n# تجميع النموذج\nmodel.compile(optimizer=Adam(learning_rate=0.001), loss='mean_squared_error', metrics=['mae'])\n\n# إعداد EarlyStopping\nearly_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)\n\n# إعداد Learning Rate Scheduler\ndef scheduler(epoch, lr):\n    if epoch % 10 == 0 and epoch != 0:\n        lr = lr * 0.9\n    return lr\n\nlr_scheduler = LearningRateScheduler(scheduler)\n\n# تدريب النموذج\nmodel.fit(x1_scaled, y, epochs=100, batch_size=32, validation_data=(x_test_scaled, y_test), callbacks=[early_stopping, lr_scheduler])\n","metadata":{"id":"odFEWHRrdTHi","outputId":"d69da579-0dc2-4f32-d90a-f2cc60d3069c"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model.save('model.h5')","metadata":{"id":"0vhVpVpSdyI4","outputId":"81b2a65d-f5fe-4ac0-9d23-602789fec3a4"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model.evaluate(x_test_scaled,y_test)","metadata":{"id":"s6IxBNjVdVOM","outputId":"32681db3-772c-4cd0-84f9-e1b9d44fef05"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"id":"Id7K2o9QdVLT"},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"id":"9IIG5o3edVJS"},"outputs":[],"execution_count":null}]}