我正在尝试使用 scikit-learn 来根据一些客户数据进行预测,根据他们给我们的一些答案以及我们的历史客户项目来确定财务收益估算。
我的数据集是这样的:
# Data (1-15 of 470)
array(
[[8662824, 34],
[ 7978337, 25],
[ 902219, 28],
[29890885, 64],
[14357494, 60],
[ 6403602, 43],
[96538844, 372],
[ 7675132, 67],
[34807493, 78],
[46215428, 75],
[ 5437889, 20],
[16674835, 50],
[17382472, 20],
[ 5437889, 20],
[ 313111, 0]])
# Targets (1-15 of 470)
array([2739267, 20539, 18304, 16052, 25391, 19444, 61550,
94392, 75934, 52997, 67485, 92263, 37672, 6748523,
20710])
实际数据中每行470行
我在用:
x_train, x_test, y_train, y_test = train_test_split(
data,
targets,
test_size=.25,
random_state=42
)
model = LogisticRegression(max_iter=5000) # 5000 until I learn how to scale
model.fit(x_train, y_train)
# If I run model.predict(...), I get 30000, no matter what
model.predict([[50000, 50]]
这是一些实际的 shell 输出(也请参见分数):
In [134]: model.predict([[16000000, 5]])
Out[134]: array([30000])
In [135]: model.predict([[150000, 20]])
Out[135]: array([30000])
In [138]: model.predict(np.array([[21500000000000, 2]]))
Out[138]: array([30000])
In [139]: model.predict(np.array([[21500000000000, -444444]]))
Out[139]: array([30000])
In [140]: model.predict([[2150000, 250]])
Out[140]: array([30000])
In [141]: model.score(x_test, y_test)
Out[141]: 0.009345794392523364
In [144]: model.n_iter_
Out[144]: array([4652], dtype=int32)
这是模型的一些元数据(通过
.__dict__
):
{'penalty': 'l2',
'dual': False,
'tol': 0.0001,
'C': 1.0,
'fit_intercept': True,
'intercept_scaling': 1,
'class_weight': None,
'random_state': None,
'solver': 'lbfgs',
'max_iter': 5000,
'multi_class': 'auto',
'verbose': 0,
'warm_start': False,
'n_jobs': None,
'l1_ratio': None,
'n_features_in_': 2,
...
这两个数据点之间的关系肯定比 .0093 的分数似乎表明的要多。毕竟,我们目前正在使用相同的数据在脑海中做出预测。你知道我做错了什么吗,或者甚至在什么情况下训练有素的模型总是返回相同的答案是正常的?