判断点是否在多边形内

问题描述

地图应用上,会经常判断用户是否在 xx 内(车站/商场/机场等),即判断一个点是否位于多边形区域内。

解决算法 - 射线法

思想: 从待判断的点向某一个方向引射线,计算和多边形交点的个数,如果个数是偶数或者0,则点在多边形外,如果是奇数,则在多边形内。

特殊情况:

  1. 射线经过顶点
  2. 点在边上

思路流程

Read More

解决推荐系统冷启动问题

对于冷启动问题,一般分为三类:

  1. 用户冷启动: 对新用户做个性化推荐
  2. 物品冷启动: 把新物品推荐给用户
  3. 系统冷启动: 给新开发的应用设计推荐系统

通过不同的维度获取用户的基本特征,操作习惯,从而进行粗粒度的推荐。

1 注册信息

获取用户的注册国家/时区/地区/年龄/性别等

2 获取社交信息进行冷启动

尝试将注册路径改为 QQ/微信/微博/twitter等社交平台登陆,可以获取用户的关注列表,根据最近的转发/评论/点赞等获取用户的偏好,从而获得推荐系统的冷启动数据。

Read More

TensorFlow实现 Softmax Regression 识别手写数字

这里使用 MNIST 数据集,它是由几万张 28像素 * 28像素 的手写数字组成。

流程:

  1. 参数初始化: w,b
  2. 定义算法公式:y = Softmax(Wx + b)
  3. 定义 loss function: cross-entropy
  4. 选定优化器,并指定优化器优化 loss:随机梯度下降SGD
  5. 随机选取样本,迭代训练
  6. 在测试集上对准确率进行评测

1. 加载数据集

TensorFlow 已经为我们提供了一个封装,可以直接加载。

1
2
3
from tensorflow.examples.tutorials.mnist import input_data
dataSet = input_data.read_data_sets("MNIST_data/", one_hot=True)

Read More

movieLens推荐电影(二)

数据集与上篇文章相同。本篇文章是基于用户推荐算法

思路也与上篇大致一样。

只是先求出每个用户的相似用户,再根据相似用户评价过的电影,对评分进行排序即得推荐的电影。

与基于物品推荐不同点

过程:

  1. 遍历相似的用户
  2. 得到每个相似用户所评价过的电影
  3. 计算每个电影的评分
  4. 取评分前k个

    Read More

movieLens推荐电影(一)

下载数据集地址: https://grouplens.org/datasets/movielens/

基于物品推荐算法

  1. 获取数据集
  2. 用皮尔逊系数求每部电影的前k个相似电影
  3. 根据用户id,求出用户评价过的电影
  4. 得到评价过的电影的相似电影
  5. 对于这些相似电影,求评分的加权平均数
  6. 取前k个,即为推荐的电影

1. 数据集介绍

这里使用 ml-100k 的数据

This data set consists of:

  • 100,000 ratings (1-5) from 943 users on 1682 movies.
  • Each user has rated at least 20 movies.
  • Simple demographic info for the users (age, gender, occupation, zip)

    Read More