KNN 类的问题
来源:4-2 scikit-learn中的机器学习算法封装
慕移动3485595
2020-07-04
这里 def__init__(self ,k)中 为什么可以不定义 _X_train和_y_train?
这里 return self的self 具体指什么? 这里不太懂。
is not None 这个判别式比较少见,老师能不能讲讲?
y_predict = [self. _predict(x) for x in X_predict] 中self. _predict(x)不太理解? 不知道啥意思?另外,predict是一个有固定意义的函数吗?
x.shape[0] == self._x_train.shape[1], 这里是不是x.shape[1]?
希望得到老师的解答,谢谢
1回答
-
liuyubobobo
2020-07-04
1
我没有理解你说的定义 _X_train和_y_train,是指你想如何定义?
在 init 中做 self._X_train = X_train self._y_train = y_train 就是在定义 _X_train和_y_train
2
self 相当于 C++ 或者 Java 语言中的 this,就是自身。
3
a is not None 就是在判断 a 不是 None。可以再参考复习一下 Python 语言中 is 关键字的用法 和 not 关键字的用法
4
self. _predict(x) 就是调用自身的 _predict 方法。
5
"predict是一个有固定意义的函数吗" 这个问题我没有理解?
6
x.shape[0] == self._X_train.shape[1] 这里注意,传来的小 x 是一个向量,这个向量表示一个样本,有 n 个元素; self._X_train.shape 是一个矩阵,包含 m 和样本,每个样本有 n 个特征。所以是 x.shape[0] == self._X_train.shape[1]
在程序里,具体用单步跟踪或者打印输出的方式看一看,x.shape[0] == self._X_train.shape[1] 这个调用中,x 和 _X_train 都是谁?他们的维度是怎样的?
继续加油!:)
022020-07-04
相似问题