sklearn one_hot向量输出维度第2维大小的本质
生活随笔
收集整理的這篇文章主要介紹了
sklearn one_hot向量输出维度第2维大小的本质
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題起源:在pipeline轉換時,突然出現one_hot向量輸出維度為第2維為1。通過多次驗證,發現第2維都是2而非1?問題在哪里呢,最后發現第2維為2和第2維為1是輸入不同導致的?
case1:
y = np.array([1,0,1,1]).reshape(-1,1) json_pritimive = "sklearn.preprocessing.OneHotEncoder" obj = AIPrimitive() obj.load_from_json(json_pritimive) obj.fit(X_fit=y) obj.produce(X_produce=y)sklearn.preprocessing.OneHotEncoder fit start sklearn.preprocessing.OneHotEncoder fit over sklearn.preprocessing.OneHotEncoder produce start sklearn.preprocessing.OneHotEncoder produce over array([[0., 1.],[1., 0.],[0., 1.],[0., 1.]])case2:
y = np.array([1,1,1,1]).reshape(-1,1) json_pritimive = "sklearn.preprocessing.OneHotEncoder" obj = AIPrimitive() obj.load_from_json(json_pritimive) obj.fit(X_fit=y) obj.produce(X_produce=y)sklearn.preprocessing.OneHotEncoder fit start sklearn.preprocessing.OneHotEncoder fit over sklearn.preprocessing.OneHotEncoder produce start sklearn.preprocessing.OneHotEncoder produce over array([[1.],[1.],[1.],[1.]])case3:
y = np.array([1,1,2,0]).reshape(-1,1) json_pritimive = "sklearn.preprocessing.OneHotEncoder" obj = AIPrimitive() obj.load_from_json(json_pritimive) obj.fit(X_fit=y) obj.produce(X_produce=y)sklearn.preprocessing.OneHotEncoder fit start sklearn.preprocessing.OneHotEncoder fit over sklearn.preprocessing.OneHotEncoder produce start sklearn.preprocessing.OneHotEncoder produce over array([[0., 1., 0.],[0., 1., 0.],[0., 0., 1.],[1., 0., 0.]])從這里可以看出axis=1的大小是由類別數量決定的,也符合one_hot向量的本質。我的理解偏離本質,固化的認為第2維大小為2,而不是其他值。
總結
以上是生活随笔為你收集整理的sklearn one_hot向量输出维度第2维大小的本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tuple index out of r
- 下一篇: is not None与not某某 的区