我们可以训练模型作为方形函数

时间:2017-06-23 17:06:56

标签: python machine-learning

我想训练一个模型作为方形函数。 但我无法弄清楚我应该在什么类型的数据集上训练模型。

我想要的是,在我训练模型并调用预测后,结果应该是我传递给预测的数字的平方
示例:print(model.predict([5]) 它应该打印25

3 个答案:

答案 0 :(得分:1)

  • 您可以在尝试预测实际值时使用Regression

  • 您不能仅使用输入的线性要素,因为我们知道输出是输入的二次函数。所以,我们需要的是polynomial regression

  • 这可以在sklearn中以linear regression polynomial features完成。

  • 您可以指定度数为> = 2,让模型选择哪些特征最具表现力。您可以通过绘制模型学习的权重(coef_ in this page)来检查这一点。你通常希望看到训练进展顺利的是x ^ 2特征的一个大峰值,而其他所有特征几乎接近0。

因此,本质上,训练一个线性回归模型,其特征是输入的一些/多个高阶多项式表示,让模型知道输出实际上是提供的特征之一。

[编辑]:但是如果您不想明确传递该功能,那么您可以尝试使用输入的二进制表示来训练神经网络,尝试预测输出的二进制表示。 This让你退缩。

答案 1 :(得分:0)

分类说明一个项属于哪个类而不是输出哪个值,你要说的是对不属于任何类的值进行分类和预测。使用神经网络这种任务非常有效的预测器。< / p>

答案 2 :(得分:0)

事实上,你想训练一个回归者,而不是一个分类器。

训练这个模拟函数f的回归量:x - &gt; X ** 2。您的功能描述了域功能(实际设置),您的测试集包含功能图像。例如:

# python3

import numpy as np
from sklearn.ensemble import RandomForestRegressor

x = np.arange(0, 101, 2)
y = x**2

rf = RandomForestRegressor(random_state=1)
rf.fit(x.reshape(-1,1), y) 
print(rf.predict(5))

输出:

[ 22.]