业务分析
SQL数据查询
基本查询语句表达式
1 2 3 4 5 6 7 8 9 10
| SELECT {*|<字段列表>} FROM<表1>, <表2> WHERE<表达式> [GROUP BY <group by definition>] [HAVING <expression>[[<operator><expression>)...]] [ORDER BY <order by definition>] [LIMIT [<offset>,]<row count>] ]
|
示例SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SELECT r.xm as "username", r.lx as "type", r.scrq as "date", r.cs as "times" FROM user_record r WHERE r.lx IN ('娱乐', '时事', '名声')
// 时间 // 七天前 where r.scrq >= date_sub(curdate(), interval 7 day) and r.scrq <= curdate()
// 七天后 where r.scrq <= date_add(curdate(), interval 7 day) and r.scrq >= curdate()
|
智能训练
模型训练与评估
划分数据集(必背)
1 2 3 4 5 6 7 8
| X = data['预估购买']
y = data['是否会购买']
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
|
导入模型并训练(必背)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| from sklearn.linear_model import LogisticRegression model = LogisticRegression() model.fit(X_train, y_train)
from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(X_train, y_train)
from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier() model.fit(X_train, y_train)
from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier() model.fit(X_train, y_train)
from sklearn.naive_bayes import GaussianNB model = GaussianNB() model.fit(X_train, y_train)
|
输出模型预测值与准确度(必背)
1 2 3 4 5 6 7
| y_pred = model.predict(X_test) print(y_pred)
acc = model.score(X_test, y_test) print(acc)
|
标准化处理(以 age
为例)
1 2 3
| from sklearn.preprocessing import StandardScaler scaler = StandardScaler() data['age'] = scaler.fit_transform(data[['age']])
|
热力图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import seaborn as sns import pandas as pd import matplotlib.pyplot as plt
data = pd.DataFrame( [[0.1, 0.2, 0.3], [0.5, 0.6, 0.9], [0.8, 0.4, 0.2]], columns=['A', 'B', 'C'], index=['X', 'Y', 'Z'] )
plt.figure(figsize=(6, 4)) sns.heatmap(data, annot=True, cmap='coolwarm', cbar=True) plt.title("Labeled Heatmap") plt.show()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
y = pd.Categorical(data.index).codes
clf = DecisionTreeClassifier(max_depth=2) clf.fit(data, y)
plot_tree( clf, feature_names=data.columns.tolist(), class_names=data.index.tolist(), filled=True, rounded=True ) plt.show()
|
分箱处理
1 2 3 4 5
| import numpy as np import pandas as pd bins = [0, 5, 10, np.inf] labels = ['0-5', '6-10', '>10'] data['num'] = pd.cut(data['num'], bins=bins, labels=labels)
|
查缺失值、填充缺失值
加载数据
1
| df = pd.read_csv('customer_behavior.csv')
|
检查缺失值
1
| print(df.isnull().sum())
|
填充缺失值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| df['age'].fillna(df['age'].median(), inplace=True)
df['age'].fillna(df['age'].mean(), inplace=True)
df['age'] = df.groupby('gender')['age'].transform(lambda x: x.fillna(x.median()))
df['gender'].fillna(df['gender'].mode()[0], inplace=True)
df_dropped = df.dropna()
df.dropna(inplace=True)
|
鸢尾花数据集(多分类)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from sklearn import datasets iris = datasets.load_iris() x = iris.data y = iris.target
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier() model.fit(x_train, y_train)
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
|
红酒数据集(多分类)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from sklearn import datasets from sklearn.tree import DecisionTreeClassifier wine = datasets.load_wine()
df = pd.DataFrame(data=wine.data, columns=wine.feature_names) df['target'] = wine.target
X_train, X_test, y_train, y_test = train_test_split(wine.data, wine.target, test_size=0.2, random_state=42) clf = DecisionTreeClassifier() clf.fit(X_train, y_train) pred = clf.predict(X_test) print(classification_report(y_test, pred))
|
培训与指导
请列出人数据标注培训大纲(必背)
本答案可以有代入多种问题的变种,比如问数据清洗的培训大纲等,替换下字眼就可。
1 2 3 4 5 6 7 8 9 10
| 1. 数据标注的概述 - 了解数据标注的定义,行业发展的趋势 2. 数据标注的分类 - 文本标注 - 图像标注 - 视频标注 - 语音标注 3. 数据标注的过程及管理 4. 数据标注质量管理 5. 数据标注实战
|
请列出人工智能培训内容大纲
1 2 3 4 5 6 7 8 9
| 1. 人工智能概论 2. 数据采集 3. 数据处理 4. 数据标注 5. 业务流程 6. 人机交互设计与应用 7. 数据分析 8. 机器学习 9. 数据标注实战
|
请列出数据处理的流程
1 2 3 4 5
| 1. 数据加载、存储 2. 数据清洗和准备 3. 数据概览和类型转换 4. 处理缺失数据 5. 处理重复数据
|
数据采集可能出现什么问题,怎么解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 1. 数据缺失 原因:接口异常、网络断连
解决:添加重试机制、记录失败日志、支持补采
2. 数据结构变动 原因:网页/接口字段变更
解决:使用结构校验、自动告警、适配器模式解耦解析逻辑
3. 采集频率过高被封 IP 原因:访问过快触发反爬机制
解决:设置延时、使用代理池、IP轮换
4. 采集数据重复或遗漏 原因:分页处理错误、时间窗口不准
解决:加入去重逻辑、完善分页策略、使用唯一键校验
5. 系统资源瓶颈 原因:线程/内存/带宽不足
解决:使用异步采集、分布式架构、限流与监控
|
数据处理可能出现什么问题,怎么解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 1. 脏数据(错误、重复、异常值) 原因:源数据质量差、采集错误
解决:数据清洗(去重、填充、纠错),加入校验规则
2. 格式不统一 原因:字段单位、日期格式、编码方式不一致
解决:统一标准格式,写入规范化转换逻辑
3. 缺失值处理不当 原因:部分字段缺失,处理策略不一致
解决:根据业务选择填充、删除或标记缺失值
4. 计算逻辑错误 原因:处理公式、字段映射、分组维度配置错误
解决:增加单元测试、人工抽样验证结果
5. 数据延迟或处理失败 原因:资源瓶颈、任务调度失败
解决:设置超时重试、任务监控、分布式处理
|
数据标注可能出现什么问题,怎么解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 1. 标注不一致(多标注员结果冲突) 原因:理解偏差、主观判断不同
解决:制定统一标注规范,设置交叉验证和质检流程
2. 标签错误或漏标 原因:人工失误、界面操作问题
解决:引入审核机制,使用预标注辅助,高频错误自动提示
3. 样本类别分布不均 原因:采样策略不合理
解决:按类别配额采样,进行欠/过采样处理,提升长尾样本占比
4. 标注效率低下 原因:工具不友好、操作复杂
解决:优化标注工具 UI,加入快捷键、自动标注建议等功能
5. 标注数据格式混乱或无法用 原因:导出格式错误、不符合训练输入要求
解决:统一输出格式规范,加导出校验工具,设置导出模板
|
附录:常用指令
Pandas 基础结构
术语 |
描述 |
例子 |
DataFrame |
类似于表格的数据结构(二维) |
|
Series |
一堆带索引的数据结构 |
|
read_csv() |
用于读取CSV格式文件并生成DataFrame |
df = pd.read_csv(‘a.csv’) |
value_counts() |
统计Series中各个值出现的频次 |
|
groupby() |
按某列分组,常配合.apply()、.agg() |
|
cut() |
按区间将数值列离散化分类 |
|
mean() |
平均值,配合条件筛选时常用于比例计算 |
|
sum |
计算总和 |
|
fillna |
前向或后向补数据,method=’ffill’前向,前往后补,method=’bfill’ 从后往前补 |
|
drop() |
删除列 |
data.drop(columns=”是否会购买”) |
to_csv() |
保存文件 |
|
drop_duplicates() |
删除所有列完全相同的行 |
# 删除所有列完全相同的行 df.drop_duplicates(inplace=True) |
isnull |
是否为空 |
data.isnull() |
dropna |
丢弃所有包含缺失值的数据 |
dta.dropna() |
duplicated |
检测是否有重复 |
# 返回布尔Series,标记是否为重复行 df.duplicated()
# 只检查指定列是否重复 df.duplicated(subset=[‘列名1’, ‘列名2’])
# 统计总重复行数 df.duplicated().sum() |
head |
前5行 |
data.head() |
tail |
后5行 |
data.tail() |
astype |
数据格式转换 |
|
mean |
平均值 |
|
std |
方差 |
|
sort_index |
排序 |
|
~ |
取反值,相反的意思 |
|
agg |
聚合,对每组分别应用多个聚合函数,可以是mean,std,max |
|
dtypes |
显示每一列的数据类型 |
data.dtypes |
info |
查看数据概况 |
data.info() |
describe |
描述性统计信息 |
data.describe() |
shape |
获取数据规模 |
data.shape |