我有一个使用纬度和经度的数据集: 我想为欧氏距离创建一个交叉特征:
origin_lat, origin_lon,dest_lat, dest_lon
41.857183858,-87.620334624,42.001571027,-87.695012589
我已经分别读取了4个不同的tf.float
张量(tf.feature_column.numeric_column)
这是我创建的类似交叉列:
# Creating a boolean flag
capital_indicator = features['capital_gain'] > features['capital_loss']
features['capital_indicator'] = tf.cast(capital_indicator, dtype=tf.int32)
我想要这样的东西:
euclid_distance = distance((['origin_lat', 'origin_lon']), (['dest_lat', 'dest_lon']))
答案 0 :(得分:2)
对于欧几里得距离,我们可以使用以下公式:
我们可以将其“翻译”为TensorFlow代码,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<ul class="bar" id="bar">
<li class="active">Register new PO</li>
<li>Scan PO barcode</li>
<li>Scan Operation barcode</li>
</ul>
</div>
<section id="cards">
<div class="card">
<h3 class="cardTitle">Register new PO</h3>
<p class="cardText">Some description</p>
<div class="actions">
<a href="#" class="btn next startCO">Register new PO</a>
</div>
</div>
<div class="card" id="CoStep1">
<h3 class="cardTitle">Scan PO barcode</h3>
<p class="cardText">Some description</p>
<div class="input-style">
<input type="text" class="POBarcode" placeholder="PO barcode">
<div class="style"></div>
</div>
<div class="actions">
<a href="#" class="btn prev">Prev</a>
<a href="#" class="btn next coButton">Next</a>
</div>
</div>
<div class="card" id="CoStep2">
<h3 class="cardTitle">Scan Operation barcode</h3>
<p class="cardText">Some description</p>
<div class="input-style">
<input type="text" placeholder="Operation barcode" class="Operation_barcode"> <button class="plusButton">+</button>
<div class="style"></div>
</div>
<div class="actions">
<a href="#" class="btn prev">Prev</a>
<a href="#" class="btn next coButton startCO">Start CO</a>
</div>
</div>
</section>
我也许应该顺便提一句,对于坐标系使用欧几里得距离函数对平面来说是合适的,(当然)地球的纬度和经度都不适合!
地球的曲率使用经纬度的经度和纬度减小为“近似值”,该精度随着所涉及的距离和距赤道的距离而降低。您可能会很高兴在模型中接受这种近似。如果没有,那么您需要研究一下Haversine formula,这虽然有点复杂,但仍然应该可以在TensorFlow中使用