DATAFRAME:
import pandas as pd
import json
# Binding Affinity Data (Hardcoded from your input)
binding_affinity_json = """
[
{
"Model": 1,
"Calculated affinity (kcal/mol)": -8.216
},
{
"Model": 2,
"Calculated affinity (kcal/mol)": -7.926
},
{
"Model": 3,
"Calculated affinity (kcal/mol)": -7.855
},
{
"Model": 4,
"Calculated affinity (kcal/mol)": -7.572
},
{
"Model": 5,
"Calculated affinity (kcal/mol)": -7.552
},
{
"Model": 6,
"Calculated affinity (kcal/mol)": -7.472
},
{
"Model": 7,
"Calculated affinity (kcal/mol)": -7.465
},
{
"Model": 8,
"Calculated affinity (kcal/mol)": -7.444
},
{
"Model": 9,
"Calculated affinity (kcal/mol)": -7.435
},
{
"Model": 10,
"Calculated affinity (kcal/mol)": -7.264
},
{
"Model": 11,
"Calculated affinity (kcal/mol)": -7.247
},
{
"Model": 12,
"Calculated affinity (kcal/mol)": -7.237
},
{
"Model": 13,
"Calculated affinity (kcal/mol)": -7.183
},
{
"Model": 14,
"Calculated affinity (kcal/mol)": -7.098
},
{
"Model": 15,
"Calculated affinity (kcal/mol)": -7.095
},
{
"Model": 16,
"Calculated affinity (kcal/mol)": -7.052
},
{
"Model": 17,
"Calculated affinity (kcal/mol)": -6.903
},
{
"Model": 18,
"Calculated affinity (kcal/mol)": -6.786
},
{
"Model": 19,
"Calculated affinity (kcal/mol)": -6.644
},
{
"Model": 20,
"Calculated affinity (kcal/mol)": -6.635
}
]
"""
binding_affinity_data = json.loads(binding_affinity_json)
binding_affinity_df = pd.DataFrame(binding_affinity_data)
print("Binding Affinity Data (DataFrame):")
print(binding_affinity_df)
ML CODE:
import pandas as pd
import json
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
# Binding Affinity Data (Hardcoded from your input)
binding_affinity_json = """
[
{
"Model": 1,
"Calculated affinity (kcal/mol)": -8.216
},
{
"Model": 2,
"Calculated affinity (kcal/mol)": -7.926
},
{
"Model": 3,
"Calculated affinity (kcal/mol)": -7.855
},
{
"Model": 4,
"Calculated affinity (kcal/mol)": -7.572
},
{
"Model": 5,
"Calculated affinity (kcal/mol)": -7.552
},
{
"Model": 6,
"Calculated affinity (kcal/mol)": -7.472
},
{
"Model": 7,
"Calculated affinity (kcal/mol)": -7.465
},
{
"Model": 8,
"Calculated affinity (kcal/mol)": -7.444
},
{
"Model": 9,
"Calculated affinity (kcal/mol)": -7.435
},
{
"Model": 10,
"Calculated affinity (kcal/mol)": -7.264
},
{
"Model": 11,
"Calculated affinity (kcal/mol)": -7.247
},
{
"Model": 12,
"Calculated affinity (kcal/mol)": -7.237
},
{
"Model": 13,
"Calculated affinity (kcal/mol)": -7.183
},
{
"Model": 14,
"Calculated affinity (kcal/mol)": -7.098
},
{
"Model": 15,
"Calculated affinity (kcal/mol)": -7.095
},
{
"Model": 16,
"Calculated affinity (kcal/mol)": -7.052
},
{
"Model": 17,
"Calculated affinity (kcal/mol)": -6.903
},
{
"Model": 18,
"Calculated affinity (kcal/mol)": -6.786
},
{
"Model": 19,
"Calculated affinity (kcal/mol)": -6.644
},
{
"Model": 20,
"Calculated affinity (kcal/mol)": -6.635
}
]
"""
binding_affinity_data = json.loads(binding_affinity_json)
binding_affinity_df = pd.DataFrame(binding_affinity_data)
# Data Cleaning: Remove rows with null values
binding_affinity_df = binding_affinity_df.dropna()
# Define features (X) and target (y)
X = binding_affinity_df[['Model']]
y = binding_affinity_df['Calculated affinity (kcal/mol)']
# Data Splitting
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# --- Regression Models ---
# 1. Random Forest Regressor
rf_pipeline = Pipeline([
('scaler', StandardScaler()),
('rf', RandomForestRegressor(random_state=42))
])
# 2. Gradient Boosting Regressor
gb_pipeline = Pipeline([
('scaler', StandardScaler()),
('gb', GradientBoostingRegressor(random_state=42))
])
# 3. Support Vector Regressor
svr_pipeline = Pipeline([
('scaler', StandardScaler()),
('svr', SVR())
])
# --- Training and Evaluation ---
def train_evaluate_regressor(pipeline, model_name, X_train, y_train, X_test, y_test):
print(f"Training and Evaluating {model_name}...")
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"{model_name} Mean Squared Error: {mse:.4f}")
print(f"{model_name} R-squared: {r2:.4f}")
return pipeline
# Train and Evaluate Models
rf_pipeline = train_evaluate_regressor(rf_pipeline, "Random Forest", X_train, y_train, X_test, y_test)
gb_pipeline = train_evaluate_regressor(gb_pipeline, "Gradient Boosting", X_train, y_train, X_test, y_test)
svr_pipeline = train_evaluate_regressor(svr_pipeline, "Support Vector Regression", X_train, y_train, X_test, y_test)
Binding Affinity of MP + TP53 © 2025 by Mrinmoy Chakraborty is licensed under CC BY-NC-ND 4.0
No comments:
Post a Comment