Одним из способов решения этой проблемы является использование алгоритма машинного обучения, который пытается изучить базовую функцию , чтобы предсказать наиболее вероятную оценку нового пользователя на основе его возможностей.
Обратите внимание, что модель не будет работать хорошо, если количество образцов недостаточно велико.Пять примеров явно недостаточны, это всего лишь набросок, чтобы дать вам представление о том, как вы могли бы подойти к этому, используя машинное обучение.
Я буду использовать RandomForestRegressor
в качестве примера:
from sklearn.preprocessing import MinMaxScaler
from sklearn.ensemble import RandomForestRegressor
Давайте начнем с определения характеристик и цели, которые будут поданы в модель.
X_ = df.drop(['target_priority'], axis=1).values
scaler = MinMaxScaler()
X = scaler.fit_transform(X_)
y = df.target_priority
Теперь давайте подгоним модель:
rf = RandomForestRegressor()
rf.fit(X,y)
ЗдесьЯ не разделял данные в обучающих и тестовых наборах, но вы должны делать это, чтобы иметь представление о том, насколько хорошо работает ваша модель.Здесь, учитывая, что для каждой существующей цели существует один образец, я обучил модель всем образцам и создам набор тестов, добавив некоторый шум к тренировочным данным:
noise = np.random.normal(loc=0, scale=0.2, size=X.shape)
X_test = X + noise
А теперьВы можете получить прогнозы на тестовом наборе, используя обученную модель:
y_pred = rf.predict(X_test).round()
# array([2., 2., 4., 3., 4.])
A Вы можете видеть, что даже при небольшом количестве выборок, использованных для обучения модели, модель была в состоянии прогнозировать со среднимошибка только 0.4
:
np.abs(y - y_pred).mean()
# 0.4