
数据科学:定义与实践应用
数据科学是一个相对较新但增长迅速且多学科交叉的领域,被广泛应用于许多领域。它使用多种高级分析技术和预测建模算法,从数据中提取有意义的洞见,以帮助回答战略性的商业或科学问题。数据科学融合了广泛的技能,从技术层面(编程、线性代数、统计与建模)到非技术层面(高效呈现与沟通结果)。此外,取决于数据科学应用的行业,必须具备扎实的领域知识,才能正确解读可用信息和所得洞见。
数据科学算法可成功应用于多种可收集大量数据的场景:金融、商业、市场营销、项目管理、保险、医疗、教育、制造、人力资源、语言学、社会学等。几乎任何行业或学科,只要能够收集、整理、分析和建模自身数据,都会显著受益。
什么是数据科学用例?
数据科学用例是指利用可用数据解决的具体现实任务。在某一公司框架内,会结合公司所处行业的具体背景,使用数据科学技术分析许多变量。数据科学用例可以是一项待解决的问题、一个待验证的假设,或一个待回答的问题。本质上,从事数据科学就是在解决现实世界的用例。
尽管每个用例的内容可能大不相同,但始终需要牢记一些共通点:
- 数据科学用例规划包括:明确目标与预期结果、理解工作范围、评估可用资源、提供所需数据、评估风险,并定义用于衡量成功的KPI。
- 解决数据科学用例的常见方法包括:预测、分类、模式与异常检测、推荐以及图像识别。
- 某些数据科学用例是在不同行业中都很典型的任务,您可以借助相似的方法来解决,例如客户流失率预测、客户细分、欺诈检测、推荐系统和价格优化。
如何解决一个数据科学案例研究?
答案高度依赖具体情况,由公司的业务战略驱动,并取决于案例本身的核心。然而,概述一条适用于任何数据科学用例的一般路线图会很有帮助:
- 提出正确的问题。第一步非常重要,包括回顾现有文献和案例研究、复核最佳实践、提出相关理论与工作假设,并补齐潜在的领域知识缺口。最终,我们应提出一个在目标案例研究中需要回答的清晰问题。
- 数据收集。在这一步,我们进行数据清单与汇集。在现实中,我们常常面对非代表性、不完整、有缺陷且非结构化的数据,也就是距离“完整、易读、可直接分析的表格数据”相去甚远。因此,我们需要搜索并识别所有可能对主题有用的数据来源。必要数据可以来自公司的档案、网络抓取或赞助方提供等。
- 数据整理。这通常是任何数据科学项目中最耗时、最耗资源的部分。需要评估所收集数据的质量与代表性,并进行初步探索。随后对数据进行清洗、预处理、转换、操作与映射,将其从原始形态转为更适合的格式。
- 数据分析与建模。对清洗后的数据先从其当前状态进行分析,然后将其拟合到选定的预测统计模型中。评估模型精度,如不理想则尝试其他建模方法。重复迭代,直到获得能以最高精度预测未来情景的模型。因此,这一过程与之前各步一样,往往具有很强的迭代性。
- 结果沟通。与前面步骤相比,此步更需要沟通与软技能,而非编程与技术专长。内容包括与管理层、股东及其他相关方分享最重要的发现和最终结论。洞见通常以报告、文章和演示幻灯的形式呈现,并提出潜在的前进路径。
按行业划分的数据科学用例
数据科学用例几乎可以涉及任何能或正在积累大量数据的行业。本章我们将讨论来自以下需求最旺的几个领域的一些典型用例:物流、医疗和电信。我们将要探讨的部分用例具有跨学科性质,能在许多其他领域轻易遇到。这使它们更具通用性与可适用性,因此值得了解其通解式的解决思路。此外,对于每个选定行业,我们还会概述一些可用数据科学方法建模的其他主题。
医疗领域中的数据科学
在之前的三个章节中,我们讨论了数据科学方法如何帮助不同行业的公司增加收入。说到医疗,正确使用和解读可用数据,不仅能让该领域的市场人员受益,还能帮助及时诊断重症,甚至拯救生命。
医疗和健康服务提供者从诸多来源收集海量数据:电子健康档案(EHR)系统、可穿戴设备数据、医学研究以及结算单据。借助创新的数据科学与数据分析技术,整个医疗行业正在逐步被重塑,为其未来发展提供最有前景且最具影响力的解决方案。尤其在一些高度专业化的医疗领域,如遗传学、生殖医学、肿瘤学、生物技术、放射学、预测性诊断与制药,通过释放数据的全部潜力,已经迈入全新阶段。
为更好理解数据科学在医学中的价值,我们聚焦一个最经典的用例。
医疗用例:乳腺癌预测
根据世界癌症研究基金会国际的数据,乳腺癌是女性中最常见的癌症类型,也是总体上第二常见的癌症。无论良性或恶性,及时诊断乳腺病变极其重要,因为这会显著提高治疗成功率与存活率。这正是数据科学大显身手之处。
数据挖掘方法与机器学习算法的进步,使得预测乳腺癌风险、在早期发现潜在异常、评估其变化趋势,并据此制定最佳治疗方案成为可能。本质上,这是一个典型的机器学习分类问题。好消息是,由于这种肿瘤在全球范围内相当常见,世界各地都进行了大量深入研究,因而积累了海量来自全球患者的数据。
在分类器中使用此类数据集的主要问题在于其可能严重不平衡。例如,当结果以“患癌/未患癌”的形式呈现时,患病(少数类)的概率显著低于未患病(多数类)的概率。结果,算法倾向于将新样本判为非病理。为更有效评估此类模型的准确性,使用F1-score作为评估指标更有意义,因为它衡量的是假阳性(I类错误)与假阴性(II类错误),而非算法正确分类的样本。
让我们看一个来自美国某州的乳腺癌真实数据集。特征在文档中有详细描述,简而言之,它们是每张数字化图像中显示的乳房肿块细胞核若干属性的均值、标准误和最大值。数据集中的每条记录对应一位女性,肿瘤为恶性或良性(即样本中的女性都存在某种肿瘤)。属性包括细胞半径、纹理、光滑度、致密度、凹陷度、对称性等。
import pandas as pd
cancer_data = pd.read_csv('data.csv')
pd.options.display.max_columns = len(cancer_data)
print(f'Number of entries: {cancer_data.shape[0]:,}\n'
f'Number of features: {cancer_data.shape[1]:,}\n\n'
f'Number of missing values: {cancer_data.isnull().sum().sum()}\n\n'
f'{cancer_data.head(2)}')
Number of entries: 569
Number of features: 33
Number of missing values: 569
id diagnosis radius_mean texture_mean perimeter_mean area_mean \
0 842302 M 17.99 10.38 122.8 1001.0
1 842517 M 20.57 17.77 132.9 1326.0
smoothness_mean compactness_mean concavity_mean concave points_mean \
0 0.11840 0.27760 0.3001 0.14710
1 0.08474 0.07864 0.0869 0.07017
symmetry_mean fractal_dimension_mean radius_se texture_se perimeter_se \
0 0.2419 0.07871 1.0950 0.9053 8.589
1 0.1812 0.05667 0.5435 0.7339 3.398
area_se smoothness_se compactness_se concavity_se concave points_se \
0 153.40 0.006399 0.04904 0.05373 0.01587
1 74.08 0.005225 0.01308 0.01860 0.01340
symmetry_se fractal_dimension_se radius_worst texture_worst \
0 0.03003 0.006193 25.38 17.33
1 0.01389 0.003532 24.99 23.41
perimeter_worst area_worst smoothness_worst compactness_worst \
0 184.6 2019.0 0.1622 0.6656
1 158.8 1956.0 0.1238 0.1866
concavity_worst concave points_worst symmetry_worst \
0 0.7119 0.2654 0.4601
1 0.2416 0.1860 0.2750
fractal_dimension_worst Unnamed: 32
0 0.11890 NaN
1 0.08902 NaN
我们删除仅包含缺失值的最后一列:
cancer_data = cancer_data.drop('Unnamed: 32', axis=1)
有多少女性(占比%)被确诊患癌(恶性乳腺肿瘤)?
round(cancer_data['diagnosis'].value_counts()*100/len(cancer_data)).convert_dtypes()
B 63
M 37
Name: diagnosis, dtype: Int64
37%的受访者患有乳腺癌,因此该数据集实际上相当均衡。
由于诊断变量的取值为分类变量,我们需将其编码为数值形式以便后续用于机器学习。在此之前,先将数据划分为预测特征与目标变量diagnosis:
X = cancer_data.iloc[:, 2:32].values
y = cancer_data.iloc[:, 1].values
# Encoding categorical data
from sklearn.preprocessing import LabelEncoder
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
现在,我们创建训练集与测试集,并对特征进行缩放:
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
为建模数据,我们采用以下默认参数的算法:k近邻(KNN)与逻辑回归:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
# KNN
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_predictions = knn.predict(X_test)
# Logistic regression
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_predictions = lr.predict(X_test)
先前我们看到该数据集相当均衡,因此可以使用准确率作为评估指标来识别最准确的模型:
from sklearn.metrics import accuracy_score
print(f'Accuracy scores:\n'
f'KNN model:\t\t {accuracy_score(y_test, knn_predictions):.3f}\n'
f'Logistic regression model: {accuracy_score(y_test, lr_predictions):.3f}')
Accuracy scores:
KNN model: 0.956
Logistic regression model: 0.974
基于我们的数据,逻辑回归在预测检测到任意性质乳腺病变的女性其肿瘤为恶性/良性方面表现最佳。
后续可行方向包括:鉴于逻辑回归算法没有关键参数可调,我们可以尝试不同的训练/测试划分方式和/或各种预测建模技术。
医疗领域其他常见数据科学用例:
- 可穿戴设备的实时数据监测
- 预测性分析
- 医学影像分析
- 药物研发
- 遗传学研究
- 虚拟助手
- 客户数据管理
交通与物流中的数据科学
物流是指将产品从一点运送到另一点的组织过程,而交通则指运送客户或货物的行为。根据公司的业务类型(如外卖配送、邮政服务、国际运输、航空公司、出租车或巴士服务),数据来源可能包括时间表、工时表、路线详情、仓库库存清单、报告、合同、协议、法律文件以及客户反馈。数据本身可以是结构化或非结构化的,涵盖时间、行程、路线、坐标、客户信息、货品详情、成本与价格等。
供应链与交通行业的业务效率并不总是直观明确,且取决于诸多因素:突发交通问题、路线质量、天气状况、紧急事件、燃料价格波动、仓库缺货、技术损坏、因安全导致的运输延误、政府监管与制裁等。此外,近年来市场上涌现了大量新公司,行业竞争日益激烈。因此,为了跟上竞争并提升运营效率,每家物流/交通公司都必须分析大数据并将其转化为有意义的洞见。
数据科学究竟如何帮助交通与物流行业?以下是其潜在应用的一份并不完整的清单:
- 端到端追踪整个运输流程,
- 使所有活动实现全自动与全透明,
- 准时交付,
- 路线优化,
- 动态定价,
- 维护物资库存,
- 保护易腐货物,
- 监控车辆状态,
- 改进生产网络,
- 提升客户服务。
交通与物流用例:识别出租车车辆的最优布点
Uber Technologies Inc.(Uber)是一家提供多种物流与交通服务的美国公司。在本案例研究中,我们将对Uber的拼车GPS数据进行聚类,以识别出租车车辆的最优布点。特别是,这对以下目的有用:
- 每一笔新的用车请求会被分配到最近的聚类,Uber便从该聚类派出最近的车辆前往客户所在地。
- 按小时或按星期几等维度分析各聚类的工作负载后,Uber可以提前重新分配车辆,将其投放至客户需求更旺的战略位置。
- 根据不同聚类中的供需比,公司可动态调整价格。
我们将使用来自FiveThirtyEight的2014年4月纽约Uber出行数据集:
import pandas as pd
uber_data = pd.read_csv('uber-raw-data-apr14.csv')
print(f'Number of trips: {uber_data.shape[0]:,}\n\n'
f'{uber_data.head()}')
Number of trips: 564,516
Date/Time Lat Lon Base
0 4/1/2014 0:11:00 40.7690 -73.9549 B02512
1 4/1/2014 0:17:00 40.7267 -74.0345 B02512
2 4/1/2014 0:21:00 40.7316 -73.9873 B02512
3 4/1/2014 0:28:00 40.7588 -73.9776 B02512
4 4/1/2014 0:33:00 40.7594 -73.9722 B02512
我们以示意图方式可视化所有上车点,注意经度对应x轴、纬度对应y轴:
import matplotlib.pyplot as plt
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.show()
为聚类这些数据,我们使用一种无监督机器学习算法——k-means聚类。其思想是将所有数据样本划分为若干方差相近的组。实质上,它接收聚类数n_clusters(默认8),并据此划分数据。为确定最优聚类数,常用肘部法,其包含以下步骤:
- 训练若干具有不同聚类数的模型,并收集各自的WCSS(簇内平方和),即观测点到其最近簇中心的距离平方和。
- 将WCSS值与对应的聚类数作图。
- 选择出现WCSS显著下降的最低聚类数。
from sklearn.cluster import KMeans
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, random_state=1)
kmeans.fit(uber_data[['Lat', 'Lon']])
wcss.append(kmeans.inertia_)
plt.figure(figsize=(12, 5))
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method', fontsize=25)
plt.xlabel('Number of clusters', fontsize=18)
plt.ylabel('WCSS', fontsize=18)
plt.xticks(ticks=list(range(1, 11)),
labels=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])
plt.show()

在我们的案例中,最合适的聚类数似乎是7。我们使用该值来拟合模型并为每个上车点预测其聚类编号。同时再次以图形方式展示数据点,并添加7个簇心的位置:
kmeans = KMeans(n_clusters=7, random_state=1)
kmeans.fit_predict(df[['Lat', 'Lon']])
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.scatter(kmeans.cluster_centers_[:, 1], kmeans.cluster_centers_[:, 0], s=100, c='lime')
plt.show()
现在,我们提取所有簇心的精确坐标并单独显示,不再展示原始数据:
centroids = pd.DataFrame(kmeans.cluster_centers_)
centroids.columns = ['Lat', 'Lon']
print(centroids)
plt.scatter(centroids['Lon'], centroids['Lat'])
plt.show()
Lat Lon
0 40.688588 -73.965694
1 40.765423 -73.973165
2 40.788001 -73.879858
3 40.656997 -73.780035
4 40.731074 -73.998644
5 40.700541 -74.201673
6 40.971229 -73.611288
如果在纽约市地图上展示这些簇心,效果会更直观:
import folium
centroids_values = centroids.values.tolist()
nyc_map = folium.Map(location=[40.79659011772687, -73.87341741832425], zoom_start=50000)
for point in range(0, len(centroids_values)):
folium.Marker(centroids_values[point], popup=centroids_values[point]).add_to(nyc_map)
nyc_map

借助我们的模型,我们可以根据纽约任一地理坐标预测其所属的最近聚类。实际意义在于,Uber将从最近位置派出可用车辆,从而更快为客户提供服务。
让我们找到曼哈顿区林肯表演艺术中心的最近聚类:
lincoln_center = [(40.7725, -73.9835)]
kmeans.predict(lincoln_center)
array([1])
以及皇后区霍华德海滩的最近聚类:
howard_beach = [(40.6571, -73.8430)]
kmeans.predict(howard_beach)
array([3])
潜在后续方向包括尝试其他聚类算法、按小时/星期几/月份对数据分片分析、寻找负载最高与最低的聚类,或探究已识别聚类与数据框中Base变量的关系。
交通与物流领域其他常见数据科学用例:
- 基于供需的动态价格匹配
- 需求预测
- 人工操作自动化
- 自动驾驶车辆
- 供应链可视化
- 损坏检测
- 仓库管理
- 客户情感分析
- 客户服务聊天机器人
电信领域中的数据科学
过去二十年间,电信技术以惊人速度发展并进入新阶段。如今,我们被各种电子设备所包围,许多人对互联网,尤其是社交网络与即时通信工具,几乎产生了依赖。有时这种设备依赖被批评为替代了面对面交流。然而,我们必须承认,电信显著简化了我们的生活,让我们在数秒内即可与世界各地的人们建立联系。
在新冠疫情期间尤为如此,许多公司和学校采用了远程办公或远程教学。在如此快速变化的现实中,数字连接的质量与顺畅性在各个领域都具有前所未有的重要性。封锁期间,人们比以往更频繁地拨打电话、发送信息给同事、亲友。以上新趋势导致了电信通信量的巨大攀升,进而在该行业产生了海量数据。
使用数据科学方法处理积累的数据,可以在多方面帮助电信行业:
- 精简运营,
- 优化网络,
- 过滤垃圾信息,
- 改进数据传输,
- 开展实时分析,
- 制定高效业务战略,
- 打造成功的营销活动,
- 提高收入。
我们详细探讨一个电信中的常见数据科学任务:检测并过滤垃圾信息。
电信用例:构建垃圾信息过滤器
垃圾信息过滤是所有现代书面通信渠道的一项关键功能,它保护我们免遭每天的诈骗邮件轰炸。从技术上看,这又是一个分类问题:基于历史数据,将每条新输入消息标注为“ham”(即正常消息,译注:常用行话)则直接投递给收件人,或标注为“spam”(垃圾),则被屏蔽或投至垃圾箱。
一种常用的监督式机器学习算法是朴素贝叶斯分类器。它基于同名的概率论定理,而“朴素”指其底层假设:每条消息中的所有词彼此独立。该假设并不严谨,因为它忽略了词嵌入和上下文的自然存在。然而,在大多数数据量不大的文本分类任务中,这种方法通常效果良好、预测准确。
朴素贝叶斯分类器有多个变体,各有适用场景:多项式、伯努利、高斯和灵活贝叶斯。在我们的垃圾检测任务中,最佳选择是多项式朴素贝叶斯分类器。它基于对代表每条消息词频的分类或连续特征进行离散频数统计。
我们将对来自SMS垃圾短信数据集(UCI机器学习资源库)应用多项式朴素贝叶斯垃圾过滤。
import pandas as pd
sms_data = pd.read_csv('SMSSpamCollection', sep='\t', header=None, names=['Label', 'SMS'])
print(f'Number of messages: {sms_data.shape[0]:,}\n\n'
f'{sms_data.head()}')
Number of messages: 5,572
Label SMS
0 ham Go until jurong point, crazy.. Available only ...
1 ham Ok lar... Joking wif u oni...
2 spam Free entry in 2 a wkly comp to win FA Cup fina...
3 ham U dun say so early hor... U c already then say...
4 ham Nah I don't think he goes to usf, he lives aro...
共有5,572条人工标注的消息。其中有多少(占比%)为垃圾信息?
round(sms_data['Label'].value_counts()*100/len(sms_data)).convert_dtypes()
ham 87
spam 13
Name: Label, dtype: Int64
13%的短信被人工识别为垃圾信息。
为准备多项式朴素贝叶斯分类所需的数据,我们首先完成以下步骤:
- 将字符串标签编码为数值格式。在本例中标签为二元,因此编码为0/1。
- 提取预测变量与目标变量。
- 将数据划分为训练集与测试集。
- 对预测训练集与测试集的SMS列进行向量化,得到CSR(压缩稀疏行)矩阵。
第4步需要更详细的说明。我们会创建一个矩阵对象,用训练集消息中的词汇字典(所有唯一词及其对应频率)进行拟合,然后将预测训练集与测试集转换为矩阵。结果是两个用于预测训练集与测试集的矩阵,其中列对应训练集中所有消息的唯一词,行对应各条消息本身,单元格中的值为每条消息的该词频次。
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
# Encoding labels
sms_data = sms_data.replace('ham', 0).replace('spam', 1)
X = sms_data['SMS'].values
y = sms_data['Label'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# Vectorizing strings from the 'SMS' column
cv = CountVectorizer(max_df=0.95)
cv.fit(X_train)
X_train_csr_matrix = cv.transform(X_train)
X_test_csr_matrix = cv.transform(X_test)
接下来我们用默认参数构建多项式朴素贝叶斯分类器,并检查其准确性:
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, f1_score
clf = MultinomialNB()
clf.fit(X_train_csr_matrix, y_train)
predictions = clf.predict(X_test_csr_matrix)
print(f'Model accuracy:\n'
f'Accuracy score: {accuracy_score(y_test, predictions):.3f}\n'
f'F1-score: {f1_score(y_test, predictions):.3f}\n')
Model accuracy:
Accuracy score: 0.990
F1-score: 0.962
结果表明,我们获得了一个高度准确的垃圾过滤器。
潜在后续方向包括尝试其他训练/测试划分方法;通过调整向量化的诸多参数(例如在垃圾与正常消息中都过于频繁的词的截断阈值)来改进向量化过程;检查极少数被错误分类的消息并尝试理解原因。此外,我们可以在完成数据清洗、去除停用词或低信息量词后,用词云等方法可视化垃圾与正常消息中最常见的词。最后,还可尝试其他机器学习或深度学习算法(支持向量机、决策树、神经网络),并与朴素贝叶斯的结果进行比较。
电信领域其他常见数据科学用例:
- 客户细分
- 产品开发
- 通话详单分析
- 推荐系统
- 客户流失率预测
- 目标营销
- 欺诈检测
- 网络管理与优化
- 提升网络安全
- 价格优化
- 客户终身价值预测
数据科学案例研究:课程推荐
到目前为止,我们已详细探索了数据科学在不同领域的众多应用。如果您现在希望基于真实世界数据集学习更多数据科学用例,并将新获得的知识与技术技能应用到自身领域的实际任务中,以下这些适合初学者的短课程或许会对您有所帮助:
- 案例研究:用Python中的机器学习进行学校预算分析。本课程基于DrivenData的一场机器学习竞赛案例,探讨与学区预算相关的问题,以及如何让学校更轻松、快速地对比自身支出与他人。通过应用一些自然语言技术,您将整理学校预算并构建模型以自动分类预算条目,从简单版本开始,逐步推进到更高级版本。此外,您还可以查看并分析竞赛冠军的解决方案,以及其他参赛者的提交。
- 用pandas分析营销活动。Pandas是Python中最受欢迎的库,熟练掌握其工具集是每位数据科学家的必备技能。在这门高度实践的课程中,您将基于Python与pandas基础(新增列、合并/切分数据集、处理日期列、用matplotlib可视化)展开,使用一个在线订阅业务的虚拟营销数据集。您将练习把典型的营销问题转化为可度量的指标。您将回答的问题包括:“这次活动表现如何?”、“为什么某个渠道表现不佳?”、“哪个渠道带来最多订阅者?”等。
- 用Python分析美国人口普查数据。本课程将教您如何轻松浏览十年一次的人口普查与年度的美国社区调查,并从中提取多种人口与社会经济数据,如家庭收入、通勤、种族与家庭结构。您将使用Python从普查API请求不同地域的数据,并使用pandas对收集到的数据进行处理以获取有意义的洞见。此外,您还将练习使用geopandas进行地图绘制。
- 案例研究:R中的探索性数据分析。如果您已具备R中数据处理与可视化工具的基础知识,这门短课将非常适合您。您将用真实数据集实战,探索联合国大会的历史投票数据。特别是,您将分析各国之间、跨时间以及围绕国际议题的投票趋势。本案例研究将帮助您完成一次从头到尾的探索性数据分析,进一步练习dplyr与ggplot2包,并学习一些新技能。
- 人力资源分析:用R探索员工数据。R以更适合统计分析而闻名。在本课程中,您将利用R的这一优势,围绕一系列人力资源分析用例进行数据处理、可视化与统计检验。数据科学技术在HR领域出现相对较晚。然而,如今这是一个非常有前景的方向,越来越多公司依赖其人力资源部门,利用员工数据库提供可操作的洞见与建议。
- 用SQL进行数据驱动的决策制定。本课程将介绍如何使用SQL支持决策制定并向管理层汇报结果。案例研究聚焦一家在线电影租赁公司,其数据库包含客户数据、电影评分、演员背景信息等。部分任务包括使用SQL查询研究客户偏好、客户参与度与销售发展。您将学习用于联机分析处理的SQL扩展,以从复杂的多维数据中获取关键洞见。
无论您希望成为数据科学的高级专家,还是仅仅想学习有用的编码技能,以在自己的研究领域中提取有价值的数据驱动洞见,上述资源都是很好的起点。
结语
总之,本文从多个角度探讨了什么是数据科学、它与数据分析有何不同、适用哪些领域、什么是数据科学用例,以及成功解决用例的一般路线图。我们讨论了数据科学在一些热门行业的实际任务中究竟如何发挥作用。在概述众多现有与潜在应用的同时,我们聚焦于各热门领域中最常见的用例,并演示了如何使用数据科学与数据分析算法来解决这些问题。如果您想了解其他行业的用例,请查看我们关于银行业、市场营销和销售的用例文章。最后,我们还回顾了若干有助于深入其他数据科学案例研究的在线课程。
最后一个有趣的观察:我们在此讨论的各个行业都不是全新的。其中一些,如医疗与销售,甚至已存在数百年。在其漫长历史中,早在全球数字化时代到来之前,这些行业的数据就以某种形式被收集、记录于书籍与文献中,并存放在档案馆与图书馆。真正随新技术的出现而发生巨大变化的是,对任何数据所蕴藏的巨大潜力的根本性认知,以及对以恰当方式登记、收集与存储数据的至关重要性的理解。付诸这些努力并持续改进数据管理系统,使得各行业都能积累“大数据”,用于后续分析与预测。


