kohonen SOM的R实现:由于数据类型而导致的预测错误。

时间:2018-12-05 05:23:30

标签: r som

我一直在尝试为https://clarkdatalabs.github.io/soms/SOM_NBA中受监督的kohonen SOM运行示例代码。当我尝试预测测试集数据时,出现以下错误:

import React from "react";
import ReactDOM from "react-dom";
import { createStore } from "redux";
import { Provider } from "react-redux";
import "./Style.css";
import App from "./App";
import reducer from "./reducers";

let persistedState = localStorage.getItem("reduxState")
  ? JSON.parse(localStorage.getItem("reduxState"))
  : {};

const store = createStore(
  reducer,
  // persistedState,
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

// store.subscribe(() => {
//   localStorage.setItem('reduxState', JSON.stringify(store.getState()));
// });

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById("root")
);

我尝试过newdata = as.matrix(NBA.testing),但没有帮助。 as.factor()都没有。

为什么会发生?我该如何解决?

1 个答案:

答案 0 :(得分:0)

您应该再向预测函数添加一个参数,即“ whatmap”,然后将其值设置为1。 代码如下:

pos.prediction <- predict(NBA.SOM3, newdata = NBA.testing, whatmap = 1)

要验证预测结果,可以使用:

table(NBA$Pos[-training_indices], pos.prediction$predictions[[2]], useNA = 'always')

由于未声明使用set.seed()函数,因此结果可能与本教程的结果不同。 我建议在训练阶段之前的某个地方声明其中带有任意数字的set.seed()。 为简单起见,请将其放在脚本的最顶部,例如

set.seed(12345)

这将确保您下次重新运行脚本时模型的结果可重复。

希望会有所帮助。