def fit(self,X,y):
'''
??knn?????
:param X: ??????dataframe???????????????
:param y: ??????series??X???????????????????????
:return:
'''
X=pd.DataFrame(X.copy())
X=X.reset_index(drop=True)
y=pd.Series(y.copy())
y=y.reset_index(drop=True)
self.means=y.mean()
self.models={}
for col in X.columns.tolist():
if col in self.feature_cate:
self.models[col]=y.groupby(X[col]).mean().to_dict()
else:
knn=KNeighborsRegressor(n_neighbors=self.n_neighbors)
knn.fit(X[[col]],y)
self.models[col]=copy.deepcopy(knn)
return self
评论列表
文章目录