<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[htbeker的博客]]></title><description><![CDATA[数据挖掘与机器学习爱好者]]></description><link>https://blog.csdn.net/htbeker</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; htbeker]]></copyright><item><title><![CDATA[使用GRPC调用TensorFlow-Serving服务]]></title><link>https://blog.csdn.net/htbeker/article/details/119351063</link><guid>https://blog.csdn.net/htbeker/article/details/119351063</guid><author>htbeker</author><pubDate>Tue, 03 Aug 2021 15:30:44 +0800</pubDate><description><![CDATA[docker启动服务：


docker run -p 8502:8500 --mount type=bind,source=/home/recommend/hh/esmm,target=/models/search_multiply_task_model -e MODEL_NAME=search_multiply_task_model -t tensorflow/serving:2.2.0 


其中，本机的8502端口对应Docker的8500端口（GRPC端口），本机8501端口对应Docker的85]]></description><category></category></item><item><title><![CDATA[你们都是怎么学 Python 的？]]></title><link>https://blog.csdn.net/htbeker/article/details/114848816</link><guid>https://blog.csdn.net/htbeker/article/details/114848816</guid><author>htbeker</author><pubDate>Mon, 15 Mar 2021 20:18:11 +0800</pubDate><description><![CDATA[无意中听我们院长大人说：Python是一门神奇的语言，在此之前我已经对C/C++/Java等几门语言有了一定得了解和掌握，并做过一些小项目。

学习Python大致可以分为以下几个阶段：

1.

刚上手的时候肯定是先过一遍Python最基本的知识，比如说：变量、数据结构、语法等，基础过的很快，基本上1~2周时间就能过完了，我当时是在这儿看的基础：Python 简介 | 菜鸟教程

如果你想简单点，我把我自己的学习经验总结成了一本Python以及爬虫电子书，保证非常的通俗易懂帮助你学会Python，目前这本]]></description><category></category></item><item><title><![CDATA[多任务学习（Multi-task）keras实现]]></title><link>https://blog.csdn.net/htbeker/article/details/114845549</link><guid>https://blog.csdn.net/htbeker/article/details/114845549</guid><author>htbeker</author><pubDate>Mon, 15 Mar 2021 19:20:38 +0800</pubDate><description><![CDATA[多目标任务存在很多场景中，如多目标检测，推荐系统中的多任务学习。

多任务学习(Multi-task learning)简介

多任务学习(Multi-task learning)是迁移学习（Transfer Learning）的一种，而迁移学习指的是将从源领域的知识（source domin）学到的知识用于目标领域(target domin)，提升目标领域的学习效果。 而多任务学习也是希望模型同时做多个任务时，能将其他任务学到的知识，用于目标任务中，从而提升目标任务效果。

如果我们换个角度理解，其实多任]]></description><category></category></item><item><title><![CDATA[Pandas中DataFrame数据合并、连接（concat、merge、join）]]></title><link>https://blog.csdn.net/htbeker/article/details/114766583</link><guid>https://blog.csdn.net/htbeker/article/details/114766583</guid><author>htbeker</author><pubDate>Sat, 13 Mar 2021 22:45:46 +0800</pubDate><description><![CDATA[最近在工作中，遇到了数据合并、连接的问题，故整理如下，供需要者参考~

一、concat：沿着一条轴，将多个对象堆叠到一起

concat方法相当于数据库中的全连接（union all），它不仅可以指定连接的方式（outer join或inner join）还可以指定按照某个轴进行连接。与数据库不同的是，它不会去重，但是可以使用drop_duplicates方法达到去重的效果。

concat(objs, axis=0, join='outer', join_axes=None, ignore...]]></description><category></category></item><item><title><![CDATA[pandas的连接函数concat()函数]]></title><link>https://blog.csdn.net/htbeker/article/details/114766363</link><guid>https://blog.csdn.net/htbeker/article/details/114766363</guid><author>htbeker</author><pubDate>Sat, 13 Mar 2021 22:41:19 +0800</pubDate><description><![CDATA[完整代码扫描下方二维码或微信搜索【有酒有风】回复【pandas】获取。：



参数含义

objs：Series，DataFrame或Panel对象的序列或映射。如果传递了dict，则排序的键将用作键参数，除非它被传递，在这种情况下，将选择值（见下文）。任何无对象将被静默删除，除非它们都是无，在这种情况下将引发一个ValueError。
axis：{0,1，...}，默认为0。沿着连接的轴。
join：{'inner'，'outer'}，默认为“outer”。如何处理其他轴上的索引。outer为联合和in]]></description><category></category></item><item><title><![CDATA[tensorflow之tf.where实例解析]]></title><link>https://blog.csdn.net/htbeker/article/details/112306043</link><guid>https://blog.csdn.net/htbeker/article/details/112306043</guid><author>htbeker</author><pubDate>Fri, 08 Jan 2021 15:08:19 +0800</pubDate><description><![CDATA[tf.where(
	condition,
	x=None,
	y=None,
	name=None
)

a,b为和ｔｅｎｓｏｒ相同维度的ｔｅｎｓｏｒ，将ｔｅｎｓｏｒ中的ｔｒｕｅ位置元素替换为ａ中对应位置元素，ｆａｌｓｅ的替换为ｂ中对应位置元素。


import tensorflow as tf
import numpy as np
sess=tf.Session()
 
a=np.array([[1,0,0],[0,1,1]])
a1=np.array([[3,2,3],[4,5,6]])
 
pr.]]></description><category></category></item><item><title><![CDATA[tf.feature_column详解及避坑攻略]]></title><link>https://blog.csdn.net/htbeker/article/details/112266784</link><guid>https://blog.csdn.net/htbeker/article/details/112266784</guid><author>htbeker</author><pubDate>Wed, 06 Jan 2021 19:22:31 +0800</pubDate><description><![CDATA[在使用tensorflow搭建模型时会有特征工程的工作，今天介绍一下tensorflow做特征工程的api：tf.feature_column。

feature_column 输入输出类型
1.深度模型的输入必须是Dense类型，所有输出是categorical类型需要经过indicator或者embedding的转换才可以
2.indicator, embedding, bucketized的输入不能是原始特征，前两者只能是categorical类型的feature_column, 后者只能是numer]]></description><category></category></item><item><title><![CDATA[使用pyspark 进行向量计算]]></title><link>https://blog.csdn.net/htbeker/article/details/105432031</link><guid>https://blog.csdn.net/htbeker/article/details/105432031</guid><author>htbeker</author><pubDate>Fri, 10 Apr 2020 23:06:12 +0800</pubDate><description><![CDATA[最近根据Airbnb在KDD 2018的bestpaper《Real-time Personalization using Embeddings for Search Ranking at Airbnb》做实时推荐的项目。其中在表达用户短期兴趣特征时我们是将用户近两周对item的行为数乘以对应item向量并将所有行为向量相加。此处item向量已由word2vec训练好。

数据格式如下：



我...]]></description><category></category></item><item><title><![CDATA[python动态规划及编辑距离计算实例]]></title><link>https://blog.csdn.net/htbeker/article/details/102566986</link><guid>https://blog.csdn.net/htbeker/article/details/102566986</guid><author>htbeker</author><pubDate>Tue, 15 Oct 2019 16:20:28 +0800</pubDate><description><![CDATA[动态规划的三要素:最优子结构,边界和状态转移函数,最优子结构是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到(子问题的最优解能够决定这个问题的最优解),边界指的是问题最小子集的解(初始范围),状态转移函数是指从一个阶段向另一个阶段过度的具体形式,描述的是两个相邻子问题之间的关系(递推式)

　　重叠子问题,对每个子问题只计算一次,然后将其计算的结果保存到一个表格中,每一...]]></description><category></category></item><item><title><![CDATA[spark.DataFrane分布式转pandas.dataframe]]></title><link>https://blog.csdn.net/htbeker/article/details/93630921</link><guid>https://blog.csdn.net/htbeker/article/details/93630921</guid><author>htbeker</author><pubDate>Mon, 15 Jul 2019 20:04:15 +0800</pubDate><description><![CDATA[import pandas as pd
def _map_to_pandas(rdds):
    return [pd.DataFrame(list(rdds))]
    
def topas(df, n_partitions=None):
    if n_partitions is not None: df = df.repartition(n_partitions)
    df_pa...]]></description><category></category></item><item><title><![CDATA[tf.reduce_sum()]]></title><link>https://blog.csdn.net/htbeker/article/details/93881308</link><guid>https://blog.csdn.net/htbeker/article/details/93881308</guid><author>htbeker</author><pubDate>Tue, 02 Jul 2019 19:17:12 +0800</pubDate><description><![CDATA[reduce_sum应该理解为按相应的轴压缩求和，用于降维。通过设置axis参数按相应轴压缩求和。通过如下实例进行理解。

先设置一个2*3*4的tensor实例x。


x =tf.constant([[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]],
[[13, 14, 15, 16],
[17, 18, 19, 20],
[21, 22, 23...]]></description><category></category></item><item><title><![CDATA[XGBoost原理及目标函数推导详解]]></title><link>https://blog.csdn.net/htbeker/article/details/91517805</link><guid>https://blog.csdn.net/htbeker/article/details/91517805</guid><author>htbeker</author><pubDate>Wed, 12 Jun 2019 17:02:34 +0800</pubDate><description><![CDATA[前言

  XGBoost（eXtreme Gradient Boosting）全名叫极端梯度提升，XGBoost是集成学习方法的王牌，在Kaggle及工业界都有广泛的应用并取得了较好的成绩，本文较详细的介绍了XGBoost的算法原理及目标函数公式推导。

一、XGBoost原理

  XGBoost是boosting算法的一种，是以决策树为基础的一种梯度提升算法。通过多轮迭代,每轮迭...]]></description><category></category></item><item><title><![CDATA[hive获取今天/明天/昨天时间]]></title><link>https://blog.csdn.net/htbeker/article/details/90805050</link><guid>https://blog.csdn.net/htbeker/article/details/90805050</guid><author>htbeker</author><pubDate>Tue, 04 Jun 2019 19:13:58 +0800</pubDate><description><![CDATA[一、获取今天时间


select FROM_UNIXTIME(UNIX_TIMESTAMP()) date



二、获取明天时间


select regexp_replace(substr(date_add(FROM_UNIXTIME(UNIX_TIMESTAMP()),1),1,10),'-','') date




可以通过date_add函数获取今天开始后n天的时间

三、获取昨天时...]]></description><category></category></item><item><title><![CDATA[hive中case..when和row_number()的使用]]></title><link>https://blog.csdn.net/htbeker/article/details/90756615</link><guid>https://blog.csdn.net/htbeker/article/details/90756615</guid><author>htbeker</author><pubDate>Mon, 03 Jun 2019 19:33:51 +0800</pubDate><description><![CDATA[一、case..when

将列值进行条件筛选和转换。


select sex,case when sex = 1 then 'man'  
when sex = 2 then 'woman'
when sex = 3 then 'secret'
else 'other' end SEX
from big_data.big_data

结果如下：



将sex列中数据做了相应转换。

二、ro...]]></description><category></category></item><item><title><![CDATA[hive 行转列/列转行]]></title><link>https://blog.csdn.net/htbeker/article/details/90609225</link><guid>https://blog.csdn.net/htbeker/article/details/90609225</guid><author>htbeker</author><pubDate>Mon, 27 May 2019 20:13:24 +0800</pubDate><description><![CDATA[在使用hive对一些日志数据进行解析或者分析的时候会有将行列进行转换的情形，我们将分别进行讨论。

一、行转列。

原始数据如下：



                             图一

需要转换成如下形式：



                           ...]]></description><category></category></item><item><title><![CDATA[pyspark中dataframe切片]]></title><link>https://blog.csdn.net/htbeker/article/details/88690386</link><guid>https://blog.csdn.net/htbeker/article/details/88690386</guid><author>htbeker</author><pubDate>Wed, 20 Mar 2019 15:33:30 +0800</pubDate><description><![CDATA[想要对pyspark中dataframe实现pandas.dataframe中iloc的切片功能，发现spark中没有相关函数可以直接实现该功能，因此自己琢磨了一个方法。
首先创建一个dataframe。
dfs = spark.createDataFrame([("a", 1), ("b", 2), ("c", 3)], ["letter", "name"])

长这样子
±-----±—+
|...]]></description><category></category></item><item><title><![CDATA[tf.nn.embedding_lookup和tf.gather实例]]></title><link>https://blog.csdn.net/htbeker/article/details/87460402</link><guid>https://blog.csdn.net/htbeker/article/details/87460402</guid><author>htbeker</author><pubDate>Sat, 16 Feb 2019 17:44:31 +0800</pubDate><description><![CDATA[tf.nn.embedding_lookup的作用就是找到embedding data中对应行下的vector


tf.nn.embedding_lookup(params, ids, partition_strategy='mod', name=None, validate_indices=True, max_norm=None)#寻找params中索引为ids的vector




imp...]]></description><category></category></item><item><title><![CDATA[tf.truncated_normal和tf.random_normal]]></title><link>https://blog.csdn.net/htbeker/article/details/87101348</link><guid>https://blog.csdn.net/htbeker/article/details/87101348</guid><author>htbeker</author><pubDate>Wed, 13 Feb 2019 09:23:04 +0800</pubDate><description><![CDATA[import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
import tensorflow as tf

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, s...]]></description><category></category></item><item><title><![CDATA[tf.matmul和tf.multiply]]></title><link>https://blog.csdn.net/htbeker/article/details/87100928</link><guid>https://blog.csdn.net/htbeker/article/details/87100928</guid><author>htbeker</author><pubDate>Tue, 12 Feb 2019 18:36:28 +0800</pubDate><description><![CDATA[tf.matmul为矩阵相乘，tf.multiply为矩阵中对应元素各自相乘]]></description><category></category></item><item><title><![CDATA[推荐系统深度学习实战之Wide_Deep]]></title><link>https://blog.csdn.net/htbeker/article/details/86998372</link><guid>https://blog.csdn.net/htbeker/article/details/86998372</guid><author>htbeker</author><pubDate>Mon, 11 Feb 2019 16:19:56 +0800</pubDate><description><![CDATA[推荐系统与深度学习的结合。在推荐系统中，记忆体现的准确性，而泛化体现的是新颖性，wide_deep能将两者相结合。

1、Memorization 和 Generalization

  这个是从人类的认知学习过程中演化来的。人类的大脑很复杂，它可以记忆(memorize)下每天发生的事情（麻雀可以飞，鸽子可以飞）然后泛化(generalize)这些知识到之前没有看到过的东西（有翅膀的动物都...]]></description><category></category></item></channel></rss>