少女祈祷中...

技术栈和工具分析

对于python技术栈的我们来说,走数据分析与数据挖掘是一条不错的路。

虽然也可以走前后端,但是目前的市场份额,Java和PHP仍然是主流,对于大厂而言,正在从Java到Golang过渡,所以python做前后端是有点尴尬的。

数据分析与数据挖掘常见的技术栈除了python之外,还有R、SQL、Hadoop、Spark、Hive、SPSS、SAS、Weka、Scikit-learn、TensorFlow、Keras等。

其中拉姆目前所接触的只有python、r、spss、Scikit-learn、TensorFlow、Keras

比较熟悉的只有python的一些库,Pandas、NumPy就不用说了,Scikit-learn、TensorFlow、Keras则是在机器学习和深度学习里的一点东西(其实也是python的库),大学里开设了相关的专业课与实验课。

R语言则是最近学习了解的。

SPSS、SAS、Weka是经典的数据挖掘和统计分析工具,使用起来并不是说很困难,可以尝试进行学习。

其实除了上面的之外,还有spssproFineBI等,都是要比那种纯粹的工具更好用的。

数据分析与数据挖掘的联系

数据分析主要是指使用统计学、数学和计算机科学的方法来处理和分析数据,以提取有用的信息和洞察,帮助做出决策。

数据分析可以包括描述性分析(如计算平均值、中位数、标准差等)、诊断性分析(分析数据变化的原因)、预测性分析(使用历史数据预测未来趋势)和规范性分析(基于预测结果提出行动建议)。

数据分析通常侧重于已知模式的识别和验证,以及对数据的解释和报告。

数据挖掘则是一种更深层次的数据分析方法,它侧重于从大量数据中发现未知的、潜在有用的模式和关系。

数据挖掘通常涉及复杂的算法和技术,如聚类分析、关联规则学习、分类、回归和异常检测等。

数据挖掘的目的是发现数据中的隐藏模式,这些模式可能对业务决策、市场分析、风险管理等领域有重要价值。

两者都需要对数据进行预处理,比如清理缺失值、检查异常值、去除噪声什么的。

食用指南1

1.因为版本等各种因故,导致一些代码在运行的时候会有各种各样的警告,我们可以使用下面的代码进行忽略警告

1
2
import warnings
warnings.filterwarnings('ignore')

2.绘图的时候因为字体因故加载不出来中文字体,可以用下面代码:

1
2
3
4
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

3.读取数据:

1
2
import pandas as pd #数据导入 
data = pd.read_csv('data.csv')

4.数据探索:

1
2
3
print(data.head()) # 查看数据前几行
print(data.describe())# 查看数据统计摘要
print(data.columns)# 查看数据列名

5.数据处理的时候难免会遇到缺失值,这个时候我们可以进行之间删除,或者用均值进行填充:

1
2
3
4
# 处理缺失值
data = data.dropna() # 删除含有缺失值的行
# 或者
data = data.fillna(data.mean()) # 用特定值(这里是均值)填充缺失值

6.在数据分析之中,绘图matplotlib是最为常见的一个库,可以绘画各种图像进行数据可视化帮助我们理解:

1
2
3
4
5
import matplotlib.pyplot as plt
data['column_name'].hist()
plt.show() # 绘制直方图
plt.scatter(data['column_name1'], data['column_name2'])
plt.show()# 绘制散点图

7.我们在处理一些数据的时候需要进行标准化,为什么呢,因为可以帮助不同的特征具有相似的尺度,提高模型的收敛速度,使特征更符合标准的正态分布,提高模型的准确性和可解释性:

1
2
3
4
5
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)# 数据标准化
# 将标准化后的数据转换为DataFrame
scaled_data = pd.DataFrame(scaled_data, columns=data.columns)

8.进行特征选择在数据挖掘和机器学习中是非常必要的,它有助于去除无关或冗余的特征,提升模型性能,并减少计算成本,而且过多的特征可能导致维度灾难,增加模型复杂度,引发过拟合,并增加时间成本:

1
2
3
4
5
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# 使用卡方检验选择特征选择排名前 10 的特征
selector = SelectKBest(score_func=chi2, k=10)
selected_features = selector.fit_transform(data, target)

9.建模更不用说了,是数据挖掘之中必不可少的组成部分:

1
2
3
4
5
from sklearn.linear_model import LinearRegression
# 线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

10.建模之后,还需要对模型进行评估,这样可以帮助我们优化模型参数,提高模型性能,选择最佳模型等:

1
2
3
4
from sklearn.metrics import mean_squared_error
# 计算均方误差
mse = mean_squared_error(y_test, predictions)
print("MSE:", mse))

11.聚类分析是一种无监督学习方法,通过聚类,我们可以发现数据中相似的群组或簇,更好地理解数据之间的关系,还可以检测出异常值、噪声、离群点等:

1
2
3
4
5
from sklearn.cluster import KMeans
# KMeans聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(data)
labels = kmeans.labels_

12.分类任务常见的有随机森林决策树逻辑回归朴素贝叶斯支持向量机等,我们来简单介绍一下最常见的SVM,SVM适用于线性和非线性分类问题,还可以高效处理高维数据集,在多类别分类时具有独特的优势:

1
2
3
4
5
from sklearn.svm import SVC
# 支持向量机分类
svm = SVC()
svm.fit(X_train, y_train)
predictions = svm.predict(X_test)

这篇博文先写这些,后面有机会再拓展聊一下,下次见~

本文作者:戴诺斯·拉姆 @ 拉姆的小树屋

本文链接:https://sherry14love.github.io/2024/05/19/learn/data1/

本文版权:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

留言