sklearn进行数据处理

该博客主要围绕wine和wine_quality数据集展开实训。实训1使用sklearn处理数据集,包括读取、拆分数据与标签、划分训练集和测试集、标准化及PCA降维。实训2基于处理后的wine数据集构建K-Means聚类模型,通过多种方法确定最优聚类数目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实训1 使用sklearn处理wine 和wine_quality数据集

1. 训练要点

  • 掌握sklearn转换器的用法。

  • 掌握训练集、测试集划分的方法。

  • 掌握使用sklearn进行PCA降维的方法。

2.需求说明

wine数据集和wine_quality数据集是两份和酒有关的数据集。wine数据集包含3种不同起源的葡萄酒的记录,共178条。其中,每个特征对应葡萄酒的每种化学成分,并且都属于连续型数据。通过化学分析可以推断葡萄酒的起源。 wine_quality数据集共有4898个观察值, 11个输入特征和一个标签。其中,不同类的观察值数量不等,所有特征为连续型数据。通过酒的各类化学成分,预测该葡萄酒的评分。

3.实现思路及步骤

(1)使用pandas库分别读取wine数据集和win_quality数据集。

(2)将wine数据集和wine_quality数据集的数据和标签拆分开。

(3)将wine_quality数据集划分为训练集和测试集。

(4)标准化wine数据集和wine_quality数据集。

(5)对wine数据集和wine_quality数据集进行PCA降维。

实验

使用pandas库分别读取wine数据集和win_quality数据集。
wine = pd.read_csv('./第6章/wine.csv')
wine

wine_quality = pd.read_csv('./第6章/winequality.csv', dtype=str)
wine_quality

将wine数据集和wine_quality数据集的数据和标签拆分开。
# wine数据集标签
wine_target = wine['Class']
wine_target

# wine数据集数据
wine_data = wine[wine.columns[1: ]]
wine_data

将winequality数据集格式化

# 将wine_quality数据集格式化
columnsName = list(wine_quality.columns.values)[0].split(';')  # 将列名分割
columnsName = [name.replace('\"', '') for name in columnsName]  # 把列名中的双引号去掉
wine_quality = wine_quality[wine_quality.columns[0]].str.split(';', expand=True)  # 将winequalit数据集数据按分号分割并组成新的数据集
wine_quality.columns = columnsName
wine_quality

# wine_quality数据集的标签
wine_quality_target = wine_quality['quality']
wine_quality_target

# wine_quality数据集的数据
wine_quality_data = wine_quality[wine_quality.columns[0: 11]]
wine_quality_data

将wine_quality数据集划分为训练集和测试集。
# 将wine_qualit数据集划分成训练集和测试集,比例为7:3
wine_quality_data_train, wine_quality_data_test, wine_quality_target_train, wine_quality_target_test = train_test_split(wine_quality_data, wine_quality_target, test_size=0.3)
wine_quality_data_train
wine_quality_data_test
wine_quality_target_train
wine_quality_target_test

标准化wine数据集和wine_quality数据集。
Scaler = preprocessing.MinMaxScaler().fit(wine_data_train)
wine_trainScaler = Scaler.transform(wine_data_train)
wine_testScaler = Scaler.transform(wine_data_test)
wine_trainScaler
wine_testScaler

Scaler = preprocessing.MinMaxScaler().fit(wine_quality_data_train)
wine_quality_trainScaler = Scaler.transform(wine_quality_data_train)
wine_quality_testScaler = Scaler.transform(wine_quality_data_test)
wine_quality_trainScaler
wine_quality_testScaler

对wine数据集和wine_quality数据集进行PCA降维。
# wine数据集进行PCA降维
pca_model = PCA(n_components=10).fit(wine_trainScaler)
wine_trainPCA = pca_model.transform(wine_trainScaler)
wine_testPCA = pca_model.transform(wine_testScaler)
wine_trainPCA
wine_testPCA

# wine_quality数据集进行PCA降维
pca_model = PCA(n_components=10).fit(wine_quality_trainScaler)
wine_quality_trainPCA = pca_model.transform(wine_quality_trainScaler)
wine_quality_testPCA = pca_model.transform(wine_quality_testScaler)

实训2 构建基于wine数据集的K-Means聚类模型

1.训练要点

  • 了解sklearn估计器的用法。

  • 掌握聚类模型的构建方法。

  • 掌握聚类模型的评价方法。

2.需求说明

wine数据集的葡萄酒总共分为3种,通过将wine数据集的数据进行聚类,聚集为3 个簇,能够实现葡萄酒的类别划分。

3.实现思路及步骤

(1)根据实训1的wine数据集处理的结果,构建聚类数目为3的K-Means模型。

(2)对比真实标签和聚类标签求取FMI。

(3)在聚类数目为2~10类时,确定最优聚类数目。

(4)求取模型的轮廓系数,绘制轮廓系数折线图,确定最优聚类数目。

(5)求取Calinski-Harabasz指数,确定最优聚类数目。

实验

根据实训1的wine数据集处理的结果,构建聚类数目为3的K-Means模型
kmeans = KMeans(n_clusters=3, random_state=123).fit(wine_trainScaler)
对比真实标签和聚类标签求取FMI
from sklearn.metrics import fowlkes_mallows_score
score = fowlkes_mallows_score(wine_target_train, kmeans.labels_)
score

在聚类数目为2~10类时,确定最优聚类数目
for i in range(2, 11):
    kmeans = KMeans(n_clusters=i, random_state=123).fit(wine_trainScaler)
    score = fowlkes_mallows_score(wine_target_train, kmeans.labels_)
    print('wine数据聚%d类FMI评价分值为:%f' %(i,score))

求取模型的轮廓系数,绘制轮廓系数折线图,确定最优聚类数目
silhouettteScore = []
for i in range(2, 11):
    kmeans = KMeans(n_clusters=i, random_state=123).fit(wine_trainScaler)
    score = silhouette_score(wine_trainScaler, kmeans.labels_)
    silhouettteScore.append(score)
plt.figure(figsize=(10, 6))
plt.plot(range(2, 11), silhouettteScore, linewidth=1.5, linestyle='-')
plt.show()

求取Calinski-Harabasz指数,确定最优聚类数目
for i in range(2,10):
    ##构建并训练模型
    kmeans = KMeans(n_clusters = i,random_state=123).fit(wine_trainScaler)
    score = calinski_harabasz_score(wine_trainScaler,kmeans.labels_)
    print('iris数据聚%d类calinski_harabaz指数为:%f'%(i,score))

参考资源链接:[Python数据分析与应用:课程进度与考核详解](https://wenku.csdn.net/doc/7ma6cvyei9?utm_source=wenku_answer2doc_content) 在Python数据分析的学习过程中,理解并熟练运用pandas和sklearn是至关重要的。为了高效整合这两个库以进行数据处理和模型构建,你可以参考《Python数据分析与应用:课程进度与考核详解》中的教学计划。以下是具体的学习方法和案例: 首先,课程进度表中前半部分重点介绍了Python基础和pandas库的使用。在学习pandas时,你需要掌握如何使用DataFrame进行数据的加载、清洗和预处理。例如,在第一阶段,你可以通过完成有关数据导入、缺失值处理和数据转换的任务来打下坚实的基础。 接下来,在掌握了pandas的基础操作之后,课程将引导你学习sklearn库中的模型构建。在第二阶段,你可以通过案例学习如何使用sklearn进行数据的分割、特征选择、模型训练和验证。例如,利用sklearn中的`train_test_split`函数对数据集进行分割,使用`SelectKBest`进行特征选择,并构建一个简单的线性回归模型。 此外,课程进度表中的第三阶段将结合pandas和sklearn进行综合案例分析。你可以选择一个企业案例,按照以下步骤进行实战演练: 1. 使用pandas读取企业提供的数据集,并进行初步的数据探索分析。 2. 清洗数据,处理缺失值和异常值,进行数据转换,如编码分类变量、标准化等。 3. 使用sklearn进行数据分割,为后续的模型训练做准备。 4. 利用sklearn的特征选择方法来确定对模型预测能力影响最大的特征。 5. 基于选定的特征训练机器学习模型,例如决策树、随机森林或支持向量机,并进行模型评估。 6. 最后,根据模型评估结果调整模型参数,优化模型性能。 通过以上步骤,你可以将理论知识与实际案例相结合,实现从数据处理到模型构建的完整流程。过程中,《Python数据分析与应用:课程进度与考核详解》提供的教材和案例可以作为很好的参考资源。同时,课程进度表的安排可以帮助你合理分配学习时间,确保在课程结束时达到预期的学习目标。 在完成课程后,为了进一步提升技能和加深理解,建议参阅《Python数据分析与应用》教材。该教材详细介绍了数据分析的各个方面,并包含丰富的示例和练习题,有助于巩固和拓展你在课程中学到的知识。 总之,通过理论学习、实践操作和案例分析,你可以有效提升使用pandas和sklearn进行数据分析和模型构建的能力。希望你在掌握这两项关键技术的同时,也能够享受数据分析带来的乐趣和成就感。 参考资源链接:[Python数据分析与应用:课程进度与考核详解](https://wenku.csdn.net/doc/7ma6cvyei9?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值