我有这个数据框:
| 指数 | 拉兹里亚德 | 年龄 | 薪水 |
|---|---|---|---|
| 一 | 2 | 22 | 30000 |
| 2 | 3 | 19 | 36000 |
| 3 | 四 | 三十 | 40000 |
| 四 | 5 | 25 | 47000 |
简而言之:该表包含薪水级别,其中存在依赖关系:类别越高,薪水越高。在我的例子中,由于某种原因,“年龄”特征的权重在预测中的作用比排名特征更大。输入新数据时问题听起来像这样(数字= 4,年龄= 17)给出的预测等于= 36000,尽管理论上存在类别依赖性,但由于某种原因,模型更多地考虑了权重“年龄”比“razryad”???或者我没有正确构建模型,或者我需要自己增加“razryad”的重量?尽管从理论上讲,模型本身应该发现这种对放电的依赖性
import pandas as pd
import numpy as np
import time
from sklearn.ensemble import RandomForestClassifier
df_json = pd.read_json('dataframes//test_data.json')
X_test = df_json[['razryad', 'age']].reset_index(drop=True) #
y_test = df_json['salary'] #
model = RandomForestClassifier() # выбираем модель обучения: Случайный лес класссификация
model.fit(X_test, y_test) # обучаем модель
# подаем новые данные для выдачи прогноза ожидаемой зарплаты
example_test = {'razryad': [4], 'age': [11]}
example_df_test = pd.DataFrame(example_test)
res = model.predict(example_df_test) # предсказывает данные
print(f"\nПредсказанные данные:\n{res=}")

首先,分类模型不知道如何插值。他们给出了训练样本中的一个值。而且您还为输入提供了一个
age不在训练中的值。同时,你把模型太复杂了,容易重新训练。如果我们采用一个简单的模型,而且是回归而不是分类,那么一切都会更加合乎逻辑。结论:
模型系数:
结论:
那些。线性模型的计算公式如下:
那些。年龄越小,工资越高。这些是您的数据,如果您仔细查看它们,数字 2 和 3 以及数字 4 和 5 之间的转换伴随着年龄的下降。