私はmahoutとこの大きなデータの分野には初めてです。 一般的に、データは常に(ロング、ロング、ダブル)とはなりません。 FileDataModelに代わる方法はありますか?FileDataModelに代わるものはありますか?
DataModel model = new FileDataModel(new File("Ratings.csv"));
私はmahoutとこの大きなデータの分野には初めてです。 一般的に、データは常に(ロング、ロング、ダブル)とはなりません。 FileDataModelに代わる方法はありますか?FileDataModelに代わるものはありますか?
DataModel model = new FileDataModel(new File("Ratings.csv"));
ユーザとアイテムは、単にフレームワーク内のID値によって識別されます。 さらに、このID値は数値である必要があります。それは APIを介してJavaのロングタイプです。 PreferenceオブジェクトまたはPreferenceArrayオブジェクトは、ユーザーと優先項目(またはユーザーと が好む項目)の間の関係を でカプセル化します。
私は最近、同じ問題に直面しています。私はユーザーIDのUUIDタイプを持っていました。しかし、数値のユーザーIDとオリジナルのUUIDユーザーIDを持つテーブルを追加する必要がありました。後で私はこの説明を見つけたドキュメントをチェックします。 の他の実装に従ってたDataModel:
AのDataModelは、ユーザの嗜好に関する情報へのインタフェースです。 実装では、このデータを任意のソースから取得できますが、データベースは である可能性が最も高いソースです。良いパフォーマンスを得るには、これを ReloadFromJDBCDataModelでラップしてください! Mahoutは、たとえば MySQLJDBCDataModelを提供して、 データベースからJDBCとMySQLを介して環境設定データにアクセスします。 PostgreSQLには別のものがあります。 Mahout にはFileDataModelも用意されています。これは小規模なアプリケーションに適しています。
データベースからDataModelを構築できます。
PostgreSQLJDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String preferenceColumn, String timestampColumn)
Initalization:
Intercafeは次のようになります。ここでは は、PostgreSQLのための一例である
source = new PGPoolingDataSource();
source.setDataSourceName(properties.getProperty("DATABASE_NAME"));
source.setServerName("127.0.0.1");
source.setDatabaseName(properties.getProperty("DATABASE_NAME"));
source.setUser(properties.getProperty("DATABASE_USER"));
source.setPassword(properties.getProperty("DATABASE_PASS"));
source.setMaxConnections(50);
DataModel model =new PostgreSQLJDBCDataModel(
source,
"mahout_teble",
"user_id",
"item_id",
"preference",
"timestamp"
)
)