假设一个游客对游览的城市一无所知,我想根据他对城市的特点(budgetToTravel,isCoastel,isHitorical,withFamily等)来推荐十大城市。 )。 我的数据集包含每个城市的特征:
我想了解机器学习的最佳算法,该算法可以根据游客的特征来推荐前10个热门城市。
答案 0 :(得分:1)
如Pierre S.所述,您可以从KNearestNeigbours开始
此算法将允许您通过以下操作完全按照自己的意愿进行操作:
if (isset($_POST['btn-upload'])){
copy("$sourcepath/$latest_filename","$copy/$latest_filename");
// Here i split the csv file, from second line. and using the first and fourth lines as the headers.
if (($openfile = fopen("$copy/$latest_filename", "r")) !== false) {
$header1 = fgetcsv($openfile, 1000, ";"); // consume, but don't use
$csv->createPalleTable($latest_filename);
$csv->insertPalleTable($latest_filename, array_map("toNumber", fgetcsv($openfile, 1000, ";")));
$delimiting_row = fgetcsv($openfile, 1000, ";"); // consume, but don't use
$header2 = fgetcsv($openfile, 1000, ";"); // consume, but don't use
while($row = fgets($openfile)){
// can parse further $row by usingstr_getcsv
$myArray = explode(';', $row);
$myArray = array_map("utf8_encode", $myArray);
$myArray = array_map("toNumber", $myArray);
echo'<pre>';
print_r($myArray);
echo'</pre>';
$csv->createCsvTable();
$csv->insertCsvData($myArray);
}
}
fclose($openfile);
}
答案 1 :(得分:0)
您可以使用(无监督)聚类算法(例如,层次聚类或K-Means聚类)将聚类分为10个,然后可以将人(游客)特征与聚类进行匹配。
答案 2 :(得分:-1)
k均值可能对您的问题有用。不适合使用K-NearestNeigbours,因为它是一种受监督的机器学习算法,您应该给一些标签(某些城市的房价)打分。