|
import pandas as pd |
|
from sklearn.preprocessing import LabelEncoder |
|
from sklearn.tree import DecisionTreeClassifier |
|
import pickle |
|
|
|
|
|
data = { |
|
"project_type": ["Web App", "API", "ML App", "Real-time App", "Web App"], |
|
"team_size": [3, 2, 5, 6, 1], |
|
"perf_need": ["Medium", "Low", "Medium", "High", "Low"], |
|
"experience": ["Intermediate", "Beginner", "Expert", "Expert", "Beginner"], |
|
"stack": ["Django + PostgreSQL", "Flask + SQLite", "FastAPI + TensorFlow", "Node.js + Redis", "Django + SQLite"] |
|
} |
|
|
|
df = pd.DataFrame(data) |
|
|
|
|
|
encoders = {} |
|
for col in ["project_type", "perf_need", "experience", "stack"]: |
|
le = LabelEncoder() |
|
df[col] = le.fit_transform(df[col]) |
|
encoders[col] = le |
|
|
|
|
|
X = df[["project_type", "team_size", "perf_need", "experience"]] |
|
y = df["stack"] |
|
model = DecisionTreeClassifier() |
|
model.fit(X, y) |
|
|
|
|
|
with open("model.pkl", "wb") as f: |
|
pickle.dump(model, f) |
|
|
|
|
|
with open("encoders.pkl", "wb") as f: |
|
pickle.dump(encoders, f) |
|
|