5 min read

技术:python中变量批量处理集成方案

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:Python接口函数-中台 2018-01-03
13 技术:使用pbd包进行debug 2018-01-03
14 技术:R实现随机分组 2018-01-04
15 技术:jiebaR包做文本清洗 2018-01-05
16 技术:r_WACC使用说明 2018-01-05
17 技术:使用switchhost安装host 2018-01-05
18 技术:Git的下载问题 2018-01-06
19 技术:新闻爬虫 2018-01-07
20 技术:Scalable Data Processing in R 2018-01-08
21 技术:使用git创建一个自己的本地仓库 2018-01-11
22 技术:dashboard构建,来自yihui的包 2018-01-12
23 技术:最大似然估计再理解 2018-01-12
24 技术:itchat包提取微信好友公开数据 2018-01-13
25 技术:do函数和biglm包 2018-01-17
26 技术:Imputer后X少了一列 2018-01-18
27 技术:mac连接mysql,理论上win7也可以 2018-01-19
28 技术:ggpubr提高作图效率 2018-01-20
29 技术:t-SNE理论部分补充 2018-01-22
30 技术:RMarkdown的使用技巧 2018-01-30
31 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
32 技术:ggridges 山峦图 学习笔记 2018-02-02
33 技术:Tidyverse使用技巧 2018-02-02
34 技术:XGBoost 学习笔记 2018-02-02
35 技术:分布变离散,或者纠正skew 2018-02-02
36 技术:rsq在R中自定义函数 2018-02-03
37 技术:Jupyter实战 2018-02-13
38 技术:美化与定制 2018-02-21
39 技术:数据对比可视化指南 2018-02-22
40 技术:功能体验 2018-02-26
41 技术:高效数据处理 2018-02-27
42 技术:模型优化技巧 2018-03-05
43 技术:原理与应用 2018-03-06
44 技术:模型与可视化 2018-03-08
45 技术:美化与交互指南 2018-03-11
46 技术:高效操作指南 2018-03-14
47 技术:用法与优化技巧 2018-03-17
48 技术:效率提升指南 2018-03-18
49 技术:问题排查技巧 2018-03-18
50 技术:高效操作指南 2018-03-19
51 技术:方法与代码示例 2018-03-21
52 技术:进阶技巧与优化 2018-03-21
53 技术:实战示例 2018-03-22
54 技术:效率与规范指南 2018-03-24
55 技术:dplython包测评 2018-03-25
56 技术:原理与实现 2018-04-02
57 技术:原理与应用解析 2018-04-03
58 技术:实战指南 2018-04-05
59 技术:核心语法与函数整理 2018-04-05
60 技术:复利计算与应用 2018-04-08
61 技术:简单规则模型解析 2018-04-14
62 技术:高效代码设计指南 2018-04-25
63 技术:原理与应用学习笔记 2018-04-29
64 技术:实战指南 2018-04-29
65 技术:原理与应用 2018-05-01
66 技术:表格格式化指南 2018-05-02
67 技术:原理与应用介绍 2018-05-08
68 技术:高效文本拼接 2018-05-11
69 技术:方法与实践学习笔记 2018-05-12
70 技术:方法与工具 2018-05-12
71 技术:功能解析 2018-05-17
72 技术:高效数据输入 2018-05-21
73 技术:基础模型与方法 2018-05-22
74 技术:功能与使用体验 2018-05-26
75 技术:特征筛选学习笔记 2018-05-29
76 技术:实战技巧 2018-05-30
77 技术:建模思路解析 2018-06-03
78 技术:策略与实战 2018-06-03
79 技术:数据展示指南 2018-06-04
80 技术:包与环境配置指南 2018-07-14
81 技术:高效操作指南 2018-07-19
82 技术:方法与案例解析 2018-07-24
83 技术:统计建模学习笔记 2018-07-24
84 技术:展示技巧与原则 2018-08-10
85 技术:数据采集实战技巧 2018-08-21
86 技术:指标设计学习笔记 2018-09-20
87 技术:建模流程实战 2018-10-01
88 技术:大规模数据探索 2018-10-20
89 技术:文本提取与分析 2018-10-20
90 技术:原理与R实现实战 2018-10-21
91 技术:学习资源获取技巧 2018-10-23
92 技术:深度学习模型实战 2018-10-24
93 技术:实战指南 2018-10-30
94 技术:分析与展示指南 2018-11-03
95 技术:图片编辑与转换 2018-11-03
96 技术:安装与使用基础学习笔记 2018-11-07
97 技术:非结构化数据处理 2018-11-29
98 技术:表格美化技巧 2018-12-13
99 技术:分类数据可视化 2018-12-24
100 技术:流程图绘制技巧 2018-12-24
101 技术:自动化设置 2018-12-28
102 技术:协作与版本控制 2018-12-29
103 技术:pipeline设计 2018-12-30
104 技术:Git历史记录清理 2018-12-31
105 技术:AUC指标对比 2019-01-01
106 技术:时间序列可视化 2019-01-01
107 技术:变量命名工具指南 2019-01-02
108 技术:网页自动化截图 2019-01-02
109 技术:配置与优化 2019-01-03
110 技术:原理与应用 2019-01-07
111 技术:语法与核心概念 2019-01-14
112 技术:R包徽章设计 2019-01-15
113 技术:项目结构设计 2019-01-21
114 技术:文本分类基础任务 2019-01-22
115 技术:线性与非线性模型 2019-01-22
116 技术:有效性验证 2019-01-27
117 技术:评估与应用 2019-01-29
118 技术:循环神经网络入门 2019-01-30
119 技术:长短期记忆网络入门 2019-01-30
120 技术:for循环示例 2019-02-03
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28

这里主要是对变量进行一个预处理,因为xgboost模型,不能进文本型、因子型、分类型等非数值化的变量,但是已经有批量操作的集成方案, 下面主要先举个例子,一个数据表,然后给出集成方案。

Exploratory data analysis | Python

主要是为了preprocess

df.isnull()df.describe()用眼睛看方便许多。

In [2]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1460 entries, 0 to 1459
Data columns (total 21 columns):
MSSubClass      1460 non-null int64
LotFrontage     1201 non-null float64
LotArea         1460 non-null int64
OverallQual     1460 non-null int64
OverallCond     1460 non-null int64
YearBuilt       1460 non-null int64
Remodeled       1460 non-null int64
GrLivArea       1460 non-null int64
BsmtFullBath    1460 non-null int64
BsmtHalfBath    1460 non-null int64
FullBath        1460 non-null int64
HalfBath        1460 non-null int64
BedroomAbvGr    1460 non-null int64
Fireplaces      1460 non-null int64
GarageArea      1460 non-null int64
MSZoning        1460 non-null object
PavedDrive      1460 non-null object
Neighborhood    1460 non-null object
BldgType        1460 non-null object
HouseStyle      1460 non-null object
SalePrice       1460 non-null int64
dtypes: float64(1), int64(15), object(5)
memory usage: 239.6+ KB

object都是需要处理的。

Encoding categorical columns I: LabelEncoder | Python

Supervised Learning with scikit-learn第四章节已经有处理变量缺失值、数值化的集成方案了。

具体操作如下。

# Import LabelEncoder
from sklearn.preprocessing import LabelEncoder

导入集成方案。

# Fill missing values with 0
df.LotFrontage = df.LotFrontage.fillna(0)

处理缺失值,这里直接覆盖为0了。 df.LotFrontage这种写法比df["LotFrontage"]方便, 早就应该修改了。

# Create a boolean mask for categorical columns
categorical_mask = (df.dtypes == object)

object就是文本之类非数值的变量,这里就是把他们选出来,一行代码全部转数值类型。 这里是设定这个条件。 这个很好,不知道R里面有没有,非常方便,R里面还有构建变量的attribute真麻烦。

# Get list of categorical column names
categorical_columns = df.columns[categorical_mask].tolist()

这里是把刚才设定好的条件应用。

# Create LabelEncoder object: le
le = LabelEncoder()

这是最关键的函数LabelEncoder(),它的目的就是文本转数值。

# Apply LabelEncoder to categorical columns
df[categorical_columns] = df[categorical_columns].apply(lambda x: le.fit_transform(x))

.apply这里完成批量修改了,因此无论是python还是R都有批量修改变量类型的代码,并且执行的规则也不仅仅是label encoder了。

最后进行一个比较吧。

In [7]: # Print the head of the categorical columns
        print(df[categorical_columns].head())
  MSZoning PavedDrive Neighborhood BldgType HouseStyle
0       RL          Y      CollgCr     1Fam     2Story
1       RL          Y      Veenker     1Fam     1Story
2       RL          Y      CollgCr     1Fam     2Story
3       RL          Y      Crawfor     1Fam     2Story
4       RL          Y      NoRidge     1Fam     2Story
In [10]: print(df[categorical_columns].head())
   MSZoning  PavedDrive  Neighborhood  BldgType  HouseStyle
0         3           2             5         0           5
1         3           2            24         0           2
2         3           2             5         0           5
3         3           2             6         0           5
4         3           2            15         0           5

比如,这里的HouseStyle完全就修改好了,当然具体的谁赋值为0,1,这个可以通过level设定了。 但是这个也不重要,只有逻辑回归会考虑这个问题,trees型模型不考虑这个问题的。

整合的方案在此。

# Import LabelEncoder
from sklearn.preprocessing import LabelEncoder

# Fill missing values with 0
df.LotFrontage = df.LotFrontage.fillna(0)

# Create a boolean mask for categorical columns
categorical_mask = (df.dtypes == object)

# Get list of categorical column names
categorical_columns = df.columns[categorical_mask].tolist()

# Print the head of the categorical columns
print(df[categorical_columns].head())

# Create LabelEncoder object: le
le = LabelEncoder()

# Apply LabelEncoder to categorical columns
df[categorical_columns] = df[categorical_columns].apply(lambda x: le.fit_transform(x))

# Print the head of the LabelEncoded categorical columns
print(df[categorical_columns].head())

Encoding categorical columns II: OneHotEncoder | Python

Using LabelEncoder, the CollgCr Neighborhood was encoded as 5, while the Veenker Neighborhood was encoded as 24, and Crawfor as 6. Is Veenker “greater” than Crawfor and CollgCr? No - and allowing the model to assume this natural ordering may result in poor performance.

但是这种分类变量的数值化好粗暴,有ranking的嫌疑。 sklearn.preprocessing.OneHotEncoder — scikit-learn 0.19.1 documentation就是处理这个问题的。中文是一位热码编码,看不懂,真是糟糕的术语翻译。

# Import OneHotEncoder
from sklearn.preprocessing import OneHotEncoder

都是sklearn.preprocessing包的。

# Create OneHotEncoder: ohe
ohe = OneHotEncoder(categorical_features=categorical_mask, sparse=False)

引入函数,但是要解释下参数什么意思。

sparse就是会反馈一个稀疏矩阵,英文是sparse matrix,就是NMF经常搞的那个,这里选False,是个细节,我觉得不重要。

 |  sparse : boolean, default=True
 |      Will return sparse matrix if set True else will return an array.

这是help的解释。

# Apply OneHotEncoder to categorical columns - output is no longer a dataframe: df_encoded
df_encoded = ohe.fit_transform(df)

这个地方对categorical_mask的变量进行了编码。 因此不需要担心编码影响了其他变量。

接下来,可以看看编码后的效果。

print(df_encoded[:5, :])
In [5]: print(df_encoded[:5, :])
[[  0.00000000e+00   0.00000000e+00   0.00000000e+00   1.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   1.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   1.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   1.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   1.00000000e+00
    0.00000000e+00   0.00000000e+00   6.00000000e+01   6.50000000e+01
    8.45000000e+03   7.00000000e+00   5.00000000e+00   2.00300000e+03
    0.00000000e+00   1.71000000e+03   1.00000000e+00   0.00000000e+00
    2.00000000e+00   1.00000000e+00   3.00000000e+00   0.00000000e+00
    5.48000000e+02   2.08500000e+05]
 ...]

看到0.00000000e+001.00000000e+00就知道全部0和1组成稀疏矩阵完成了,喜极而泣。

In [6]: print(df.shape)
(1460, 21)

In [7]: print(df_encoded.shape)
(1460, 62)

显然集成过的变量会很多了!

最后集成方案如下。

# Import OneHotEncoder
from sklearn.preprocessing import OneHotEncoder

# Create OneHotEncoder: ohe
ohe = OneHotEncoder(categorical_features=categorical_mask, sparse=False)

# Apply OneHotEncoder to categorical columns - output is no longer a dataframe: df_encoded
df_encoded = ohe.fit_transform(df)

# Print first 5 rows of the resulting dataset - again, this will no longer be a pandas dataframe
print(df_encoded[:5, :])

# Print the shape of the original DataFrame
print(df.shape)

# Print the shape of the transformed array
print(df_encoded.shape)

Encoding categorical columns III: DictVectorizer | Python

当我搞清楚LabelEncoderOneHotEncoder时,我就想,既然都做成了集成方案,又没什么数学素养的东西,为什么不直接合并,要分开呢? 结果马上这哥们就说,可以合并的,那为什么之前要让我看LabelEncoderOneHotEncoder,这不是糊弄人吗? 这哥们真的不适合教书,好坑啊。

DictVectorizer的解释可以看这里,sklearn.feature_extraction.DictVectorizer — scikit-learn 0.19.1 documentation

# Import DictVectorizer
from sklearn.feature_extraction import DictVectorizer

导入DictVectorizer

# Convert df into a dictionary: df_dict
df_dict = df.to_dict("records")

转字典格式。 "records"的意思是, dictionary - How to convert rows in DataFrame in Python to dictionaries - Stack Overflow

举个例子就清楚了。

import pandas as pd

# your df
# =========================
print(df)

   id  score1  score2  score3  score4  score5
0   1  0.0000  0.1087  0.0000  0.0786       1
1   2  0.0532  0.3083  0.2864  0.4464       1
2   3  0.0000  0.0840  0.8090  0.2331       1

# to_dict
# =========================
df.to_dict(orient='records')

Out[318]: 
[{'id': 1.0,
  'score1': 0.0,
  'score2': 0.10865899999999999,
  'score3': 0.0,
  'score4': 0.078597,
  'score5': 1.0},
 {'id': 2.0,
  'score1': 0.053238000000000001,
  'score2': 0.308253,
  'score3': 0.28635300000000002,
  'score4': 0.44643299999999997,
  'score5': 1.0},
 {'id': 3.0,
  'score1': 0.0,
  'score2': 0.083978999999999998,
  'score3': 0.80898300000000001,
  'score4': 0.23305200000000001,
  'score5': 1.0}]
# Create the DictVectorizer object: dv
dv = DictVectorizer(sparse=False)

sparse就不解释了。

# Apply dv on df: df_encoded
df_encoded = dv.fit_transform(df_dict)

然后对字典格式的数据表进行编码。

最后结果如下。

In [5]: print(dv.vocabulary_)
{'HouseStyle=2Story': 18, 'Neighborhood=OldTown': 46, 'YearBuilt': 61, 'PavedDrive=P': 57, 'BldgType=TwnhsE': 5, 'GrLivArea': 11, 'GarageArea': 10, 'Neighborhood=MeadowV': 39, 'Neighborhood=NAmes': 41, 'MSZoning=RL': 27, 'FullBath': 9, 'BsmtFullBath': 6, 'OverallCond': 54, 'Neighborhood=Edwards': 36, 'Neighborhood=NridgHt': 45, 'MSZoning=RM': 28, 'HouseStyle=2.5Unf': 17, 'LotFrontage': 22, 'Neighborhood=Blmngtn': 29, 'Remodeled': 59, 'Neighborhood=Mitchel': 40, 'Neighborhood=NoRidge': 44, 'BldgType=2fmCon': 2, 'HouseStyle=SFoyer': 19, 'Neighborhood=SawyerW': 49, 'Neighborhood=SWISU': 47, 'MSSubClass': 23, 'OverallQual': 55, 'Neighborhood=Crawfor': 35, 'PavedDrive=Y': 58, 'BldgType=Duplex': 3, 'HalfBath': 12, 'Neighborhood=Somerst': 50, 'HouseStyle=1.5Unf': 14, 'MSZoning=C (all)': 24, 'Neighborhood=Sawyer': 48, 'Neighborhood=Blueste': 30, 'BldgType=Twnhs': 4, 'LotArea': 21, 'BedroomAbvGr': 0, 'Neighborhood=StoneBr': 51, 'SalePrice': 60, 'MSZoning=RH': 26, 'Neighborhood=ClearCr': 33, 'Neighborhood=NPkVill': 42, 'MSZoning=FV': 25, 'Fireplaces': 8, 'Neighborhood=Veenker': 53, 'Neighborhood=CollgCr': 34, 'BldgType=1Fam': 1, 'BsmtHalfBath': 7, 'HouseStyle=SLvl': 20, 'Neighborhood=IDOTRR': 38, 'Neighborhood=Gilbert': 37, 'Neighborhood=NWAmes': 43, 'HouseStyle=1.5Fin': 13, 'Neighborhood=Timber': 52, 'Neighborhood=BrDale': 31, 'Neighborhood=BrkSide': 32, 'HouseStyle=2.5Fin': 16, 'PavedDrive=N': 56, 'HouseStyle=1Story': 15}

这就是全部编码后的数值,不重要。

集成方案在这。

# Import DictVectorizer
from sklearn.feature_extraction import DictVectorizer

# Convert df into a dictionary: df_dict
df_dict = df.to_dict("records")

# Create the DictVectorizer object: dv
dv = DictVectorizer(sparse=False)

# Apply dv on df: df_encoded
df_encoded = dv.fit_transform(df_dict)

# Print the resulting first five rows
print(df_encoded[:5,:])

# Print the vocabulary
print(dv.vocabulary_)

所以全部弄完了,用后面这个方案代码可以写少一点,keep going。

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:Python接口函数-中台 2018-01-03
13 技术:使用pbd包进行debug 2018-01-03
14 技术:R实现随机分组 2018-01-04
15 技术:jiebaR包做文本清洗 2018-01-05
16 技术:r_WACC使用说明 2018-01-05
17 技术:使用switchhost安装host 2018-01-05
18 技术:Git的下载问题 2018-01-06
19 技术:新闻爬虫 2018-01-07
20 技术:Scalable Data Processing in R 2018-01-08
21 技术:使用git创建一个自己的本地仓库 2018-01-11
22 技术:dashboard构建,来自yihui的包 2018-01-12
23 技术:最大似然估计再理解 2018-01-12
24 技术:itchat包提取微信好友公开数据 2018-01-13
25 技术:do函数和biglm包 2018-01-17
26 技术:Imputer后X少了一列 2018-01-18
27 技术:mac连接mysql,理论上win7也可以 2018-01-19
28 技术:ggpubr提高作图效率 2018-01-20
29 技术:t-SNE理论部分补充 2018-01-22
30 技术:RMarkdown的使用技巧 2018-01-30
31 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
32 技术:ggridges 山峦图 学习笔记 2018-02-02
33 技术:Tidyverse使用技巧 2018-02-02
34 技术:XGBoost 学习笔记 2018-02-02
35 技术:分布变离散,或者纠正skew 2018-02-02
36 技术:rsq在R中自定义函数 2018-02-03
37 技术:Jupyter实战 2018-02-13
38 技术:美化与定制 2018-02-21
39 技术:数据对比可视化指南 2018-02-22
40 技术:功能体验 2018-02-26
41 技术:高效数据处理 2018-02-27
42 技术:模型优化技巧 2018-03-05
43 技术:原理与应用 2018-03-06
44 技术:模型与可视化 2018-03-08
45 技术:美化与交互指南 2018-03-11
46 技术:高效操作指南 2018-03-14
47 技术:用法与优化技巧 2018-03-17
48 技术:效率提升指南 2018-03-18
49 技术:问题排查技巧 2018-03-18
50 技术:高效操作指南 2018-03-19
51 技术:方法与代码示例 2018-03-21
52 技术:进阶技巧与优化 2018-03-21
53 技术:实战示例 2018-03-22
54 技术:效率与规范指南 2018-03-24
55 技术:dplython包测评 2018-03-25
56 技术:原理与实现 2018-04-02
57 技术:原理与应用解析 2018-04-03
58 技术:实战指南 2018-04-05
59 技术:核心语法与函数整理 2018-04-05
60 技术:复利计算与应用 2018-04-08
61 技术:简单规则模型解析 2018-04-14
62 技术:高效代码设计指南 2018-04-25
63 技术:原理与应用学习笔记 2018-04-29
64 技术:实战指南 2018-04-29
65 技术:原理与应用 2018-05-01
66 技术:表格格式化指南 2018-05-02
67 技术:原理与应用介绍 2018-05-08
68 技术:高效文本拼接 2018-05-11
69 技术:方法与实践学习笔记 2018-05-12
70 技术:方法与工具 2018-05-12
71 技术:功能解析 2018-05-17
72 技术:高效数据输入 2018-05-21
73 技术:基础模型与方法 2018-05-22
74 技术:功能与使用体验 2018-05-26
75 技术:特征筛选学习笔记 2018-05-29
76 技术:实战技巧 2018-05-30
77 技术:建模思路解析 2018-06-03
78 技术:策略与实战 2018-06-03
79 技术:数据展示指南 2018-06-04
80 技术:包与环境配置指南 2018-07-14
81 技术:高效操作指南 2018-07-19
82 技术:方法与案例解析 2018-07-24
83 技术:统计建模学习笔记 2018-07-24
84 技术:展示技巧与原则 2018-08-10
85 技术:数据采集实战技巧 2018-08-21
86 技术:指标设计学习笔记 2018-09-20
87 技术:建模流程实战 2018-10-01
88 技术:大规模数据探索 2018-10-20
89 技术:文本提取与分析 2018-10-20
90 技术:原理与R实现实战 2018-10-21
91 技术:学习资源获取技巧 2018-10-23
92 技术:深度学习模型实战 2018-10-24
93 技术:实战指南 2018-10-30
94 技术:分析与展示指南 2018-11-03
95 技术:图片编辑与转换 2018-11-03
96 技术:安装与使用基础学习笔记 2018-11-07
97 技术:非结构化数据处理 2018-11-29
98 技术:表格美化技巧 2018-12-13
99 技术:分类数据可视化 2018-12-24
100 技术:流程图绘制技巧 2018-12-24
101 技术:自动化设置 2018-12-28
102 技术:协作与版本控制 2018-12-29
103 技术:pipeline设计 2018-12-30
104 技术:Git历史记录清理 2018-12-31
105 技术:AUC指标对比 2019-01-01
106 技术:时间序列可视化 2019-01-01
107 技术:变量命名工具指南 2019-01-02
108 技术:网页自动化截图 2019-01-02
109 技术:配置与优化 2019-01-03
110 技术:原理与应用 2019-01-07
111 技术:语法与核心概念 2019-01-14
112 技术:R包徽章设计 2019-01-15
113 技术:项目结构设计 2019-01-21
114 技术:文本分类基础任务 2019-01-22
115 技术:线性与非线性模型 2019-01-22
116 技术:有效性验证 2019-01-27
117 技术:评估与应用 2019-01-29
118 技术:循环神经网络入门 2019-01-30
119 技术:长短期记忆网络入门 2019-01-30
120 技术:for循环示例 2019-02-03
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28