你好,我是你们的老朋友,zhenguo!
在机器学习EDA阶段,变量分析及可视化是常做的事情,这篇文章总结变量分析中,最常使用的单变量,双变量分析以及可视化。
单变量分析是指分析单个变量对目标变量的影响。
例如,在预测房屋价格的模型中,单变量分析可以探究房屋面积对价格的影响。
单变量分析中,常用到boxplot图,用来显示一个变量的分布情况,并且常用于离散变量。
import matplotlib.pyplot as plt
# 准备数据
data = [0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5]
# 绘制盒须图
plt.boxplot(data)
plt.show()
双变量分析则是分析两个变量之间的关系。或者,两个变量联合对目标值的影响。
例如,在同样的房屋价格预测模型中,双变量分析可以探究房屋面积和房龄对价格的影响。
常用的分析技巧包括:
散点图: 用来显示两个变量之间的关系,常用于连续变量
回归分析: 用来确定两个变量之间的关系强度以及预测目标变量
分类分析: 用来确定哪些变量最能预测目标变量属于哪一类
下面是一个示例,展示了如何使用 matplotlib 绘制散点图:
import matplotlib.pyplot as plt
# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 5, 7, 9, 11]
# 绘制散点图
plt.scatter(x, y)
plt.show()
这段代码将会绘制一个显示 x 和 y 之间关系的散点图。
回归分析和分类分析可以使用 scikit-learn 库来实现。下面是一个例子,展示了如何使用 scikit-learn 进行线性回归分析:
from sklearn.linear_model import LinearRegression
# 准备数据
X = [[1], [2], [3], [4], [5]]
y = [2, 5, 7, 9, 11]
# 建立模型
model = LinearRegression()
# 训练模型
model.fit(X, y)
# 预测结果
print(model.predict([[6]]))
这段代码将会输出预测 x=6
时 y 的值。
下面是一个示例,展示了如何使用 scikit-learn 进行决策树分类分析
from sklearn.tree import DecisionTreeClassifier
# 准备数据
X = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [0, 0, 1, 1]
# 建立模型
model = DecisionTreeClassifier()
# 训练模型
model.fit(X, y)
# 预测结果
print(model.predict([[2, 3]]))
这段代码将会输出预测 x=[2, 3] 时 y 的类别。
以上就是理解单变量分析、双变量分析以及常用的分析技巧。
一起