[Avg. reading time: 3 minutes]
Model vs Library vs Framework
python -m venv .demomodel
source .demomodel/bin/activate
pip install scikit-learn joblib
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
from joblib import dump, load
import numpy as np
# Fake dataset: study_hours -> exam_score
rng = np.random.default_rng(42)
hours = rng.uniform(0, 10, size=100).reshape(-1, 1) # feature X
noise = rng.normal(0, 5, size=100) # noise
scores = 5 + 8*hours.ravel() + noise # target y
X_train, X_test, y_train, y_test =
train_test_split(hours, scores, test_size=0.2, random_state=42)
model = LinearRegression()
# Train (fit)
model.fit(X_train, y_train)
# Evaluate
pred = model.predict(X_test)
print("MSE:", mean_squared_error(y_test, pred))
print("R2 :", r2_score(y_test, pred))
print("Learned slope and intercept:", model.coef_[0], model.intercept_)
# Save
dump(model, "linear_hours_to_score.joblib")
# Inference on new data
new_hours = np.array([[2.0], [5.0], [9.0]])
print("Predicted scores:", model.predict(new_hours))
# Predict after load
restored = load("linear_hours_to_score.joblib")
print("Loaded model predicts:", restored.predict(new_hours))
Fun Task
- Identify the Algorithj, Library, Model in this code
- What is MSE, R2_Score
- What is .joblib
- What is the number 42?