gpt4 book ai didi

python - 写出类中的完整输入列表以进行模型预测

转载 作者:行者123 更新时间:2023-11-30 09:54:02 26 4
gpt4 key购买 nike

我有以下代码,一个基于 BaseEstimator 和 ClassifierMixin 在 python 中应用 sklearn 的非常简单的模型。它的目的是报告城市(X)的预测分数(y)。在这里,作为一个简单的模型,我只希望它在每次调用该城市时报告该城市的平均得分作为其预测值。

class MeanClassifier(BaseEstimator, ClassifierMixin):
def __inif__(self):
self.cityid_ = []
self.cntX = []

def X3(self, X):
self.cityid_, idx = np.unique(X, return_inverse = True)
self.cntX = map(list(self.cityid_).index, X)
return self.cntX

def fit(self, X, y):
self.meanclasses_, meanindicies = np.unique(y, return_inverse = True)
self.cityid_, idx = np.unique(X, return_inverse = True)
self.df = pd.DataFrame({"X":X, "y":y})
self.mean_ = self.df.groupby(['X'].mean())

def predict(self, X):
return self.df['y']['X']

为了使用这个类,我有 B,其中 city 是类中充当 X 和星号作为 y 的城市的列表。

B = MeanClassifier()
asncityid = city

B.fit(asncityid, stars)
pred = B.predict(asncityid[2]) #use the third city in the city list for prediction
print(pred)

当我运行此代码时,我收到以下错误

  `File "ml2_cp.py", line 66, in <module>
pred = B.predict(asncityid[2])
File "ml2_cp.py", line 58, in predict
return self.df['y']['X'] ## using sklearn requires all X inputs
File "/opt/conda/lib/python2.7/site-packages/pandas/core/series.py", line 583, in __getitem__
result = self.index.get_value(self, key)
File "/opt/conda/lib/python2.7/site-packages/pandas/indexes/base.py", line 1980, in get_value
tz=getattr(series.dtype, 'tz', None))
File "pandas/index.pyx", line 103, in pandas.index.IndexEngine.get_value (pandas/index.c:3332)
File "pandas/index.pyx", line 111, in pandas.index.IndexEngine.get_value (pandas/index.c:3035)
File "pandas/index.pyx", line 161, in pandas.index.IndexEngine.get_loc (pandas/index.c:4084)
KeyError: 'X'`

但是,我很困惑,如何将 X 的整个列表留在 def Predict(self, X) 我确信我的编写方式不正确,因为我也有 y 在那里。请让我知道任何可能的解决方案,如果不清楚,我想进一步解释我的代码和问题。非常感谢。

最佳答案

我想也许你想要

self.mean_ = self.df.groupby(['X']).mean()

而不是

self.mean_ = self.df.groupby(['X'].mean())

return self.mean_.ix[X].values

而不是

return self.df['y']['X']

关于python - 写出类中的完整输入列表以进行模型预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38386694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com