在这个数字化时代,数据分析和机器学习已经成为解决复杂问题的强大工具。在本文中,我们将探讨如何使用Python中的`pandas`和`sklearn`库来分析衣服尺码数据,并使用逻辑回归和决策树分类模型两种不同的机器学习模型来完成预测衣服尺码这个任务
数据准备
首先,我们需要读取包含衣服尺码数据的数据集。这个数据集是一个CSV文件,我们使用`pandas`库来读取它。
import pandas as pd
读取数据集
df = pd.read_csv(r'../dataset/衣服尺码数据.csv', encoding='gbk')
如图:
接下来,我们对数据进行检查,看看是否有缺失值。如果有,我们需要处理这些缺失值,因为它们可能会影响模型的性能。
检查缺失值
df.isnull().sum()
df[df.isnull()] # 查看缺失值
如图:
删除缺失值
df2 = df.dropna().reset_index(drop=True)
df2.isnull().sum()
如图:
数据可视化
在删除缺失值之后,我们可以使用`matplotlib`库来可视化数据。这将帮助我们更好地理解数据分布和特征之间的关系。
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
plt.scatter(
df2['height'],
df2['weight'],
c=df2['size'].map({'XL': 'r', 'L': 'b', 'M': 'g', 'S': 'y'})
)
plt.show()
如图:
从散点图中,我们可以看到不同尺码的衣服在身高和体重上的分布情况。
模型训练
现在,我们可以开始训练我们的机器学习模型了。首先,我们需要将数据分为特征(X)和目标(y)变量。
x = df2[['weight', 'height']]
y = df2['size']
如图:
然后,我们将数据集分为训练集和测试集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
如图:
接下来,我们使用`sklearn`库中的`LogisticRegression`类来创建一个逻辑回归模型,并用训练集来训练它
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(x_train, y_train)
如图:
我们还可以使用决策树分类器来进行比较。
from sklearn.tree import DecisionTreeClassifier
model2 = DecisionTreeClassifier()
model2.fit(x_train, y_train)
如图:
模型评估
训练完成后,我们需要评估模型的性能。我们可以使用`score`方法来计算模型在测试集上的准确率。
逻辑回归模型评估
print(model.score(x_test, y_test))
如图:
决策树模型评估
print(model2.score(x_test, y_test))
如图:
预测新数据
最后,我们可以使用训练好的模型来预测新数据的衣服尺码。
# 使用决策树模型进行预测
print(model2.predict([[40, 150], [60, 170], [80, 190]]))
如图:
在本文中,我们介绍了如何使用Python进行逻辑回归和决策树分类分析。我们首先读取并处理了数据集,然后使用`matplotlib`库进行了数据可视化。接着,我们使用`sklearn`库中的`LogisticRegression`和`DecisionTreeClassifier`类来训练模型,并评估了模型的性能。最后,我们使用训练好的模型来预测新的数据点。
希望这篇文章能够帮助您更好地理解如何使用Python进行机器学习分析。如果您有任何问题或建议,请随时在评论区留言。