首页
关于
推荐
百度一下
腾讯视频
Search
1
你要的草莓熊来啦!——郑科院
1,258 阅读
2
郑州科技学院2023-2024学年第一学期期末统一考试 Python程序设计
1,181 阅读
3
第4章 实训2 删除年龄异常数据
1,014 阅读
4
Python程序设计教学大纲(董付国老师版)
979 阅读
5
郑州科技学院2022-2023年第二学期期末统一考试 管理学 课程试题
917 阅读
默认分类
登录
/
注册
Search
庞立智
累计撰写
71
篇文章
累计收到
289
条评论
首页
栏目
默认分类
页面
关于
推荐
百度一下
腾讯视频
搜索到
52
篇与
的结果
2023-11-20
第6章 任务6.2 构建并评价聚类模型(物以类聚,人以群分)
聚类分析是在没有给定分类的情况下,根据数据的 相似度 进行样本分组的和种方法。是一种非监督学习方法。构建聚类模型并对聚类结果进行可视化# 代码6-6 导入库 import pandas as pd from sklearn.manifold import TSNE import matplotlib.pyplot as plt # 读取数据集 customer = pd.read_csv('../data/customer.csv', encoding='gbk') customer_data = customer.iloc[:, :-1] customer_target = customer.iloc[:, -1] # Kmeans聚类 from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=4, random_state=6).fit(customer_data) # 使用TSNE进行数据降维,降成两维 tsne = TSNE(n_components=2, init='random', random_state=2). fit(customer_data) df = pd.DataFrame(tsne.embedding_) # 将原始数据转换为DataFrame df['labels'] = kmeans.labels_ # 将聚类结果存储进df数据表 # 提取不同标签的数据 df1 = df[df['labels'] == 0] df2 = df[df['labels'] == 1] df3 = df[df['labels'] == 2] df4 = df[df['labels'] == 3] # 绘制图形 fig = plt.figure(figsize=(9, 6)) # 设定空白画布,并制定大小 # 用不同的颜色表示不同数据 plt.plot(df1[0], df1[1], 'bo', df2[0], df2[1], 'r*', df3[0], df3[1], 'gD', df4[0], df4[1], 'kD') plt.savefig('../tmp/聚类结果.jpg', dpi=1080) plt.show() # 显示图片代码6-7 组内相似度越大,组间差别越大,聚类效果越好使用FMI评价法评价K-means聚类模型from sklearn.metrics import fowlkes_mallows_score for i in range(1, 7): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=6).fit(customer_data) score = fowlkes_mallows_score(customer_target, kmeans.labels_) print('customer数据聚%d类FMI评价分值为:%f' % (i, score)) 代码6-8 使用轮廓系数评价法评价K-Means聚类模型from sklearn.metrics import silhouette_score silhouettteScore = [] for i in range(2, 10): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=6).fit(customer_data) score = silhouette_score(customer_data, kmeans.labels_) silhouettteScore.append(score) plt.figure(figsize=(10, 6)) plt.plot(range(2, 10), silhouettteScore, linewidth=1.5, linestyle='-') plt.savefig('../tmp/轮廓系数.jpg', dpi=1080) plt.show() 代码6-9 使用Calinski-Harabasz指数评价法评价K-Means聚类模型from sklearn.metrics import calinski_harabasz_score for i in range(2, 5): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=2).fit(customer_data) score = calinski_harabasz_score(customer_data, kmeans.labels_) print('customer数据聚%d类calinski_harabaz指数为:%f' % (i, score))
2023年11月20日
134 阅读
0 评论
2 点赞
2023-11-13
第6章 任务6.1 使用sklearn转换器处理数据
代码6-1 加载diabetes数据集from sklearn.datasets import load_diabetes diabetes = load_diabetes() # 将数据集赋值给diabetes变量 print('diabetes数据集的长度为:', len(diabetes)) print('diabetes数据集的类型为:', type(diabetes))代码6-2 获取sklearn自然数据集的内部信息diabetes_data = diabetes['data'] print('diabetes数据集的数据为:','\n', diabetes_data) diabetes_target = diabetes['target'] # 取出数据集的标签 print('diabetes数据集的标签为:\n', diabetes_target) diabetes_names = diabetes['feature_names'] # 取出数据集的特征名 print('diabetes数据集的特征名为:\n', diabetes_names) diabetes_desc = diabetes['DESCR'] # 取出数据集的描述信息 print('diabetes数据集的描述信息为:\n', diabetes_desc)代码6-3 使用train_test_split函数划分数据集print('原始数据集数据的形状为:', diabetes_data.shape) print('原始数据集标签的形状为:', diabetes_target.shape) from sklearn.model_selection import train_test_split diabetes_data_train, diabetes_data_test, \ diabetes_target_train, diabetes_target_test = \ train_test_split(diabetes_data, diabetes_target, \ test_size=0.2, random_state=42) print('训练集数据的形状为:', diabetes_data_train.shape) print('训练集标签的形状为:', diabetes_target_train.shape) print('测试集数据的形状为:', diabetes_data_test.shape) print('测试集标签的形状为:', diabetes_target_test.shape)代码6-4 离差标准化数据import numpy as np from sklearn.preprocessing import MinMaxScaler Scaler = MinMaxScaler().fit(diabetes_data_train) # 生成规则 # 将规则应用于训练集 diabetes_trainScaler = Scaler.transform(diabetes_data_train) # 将规则应用于测试集 diabetes_testScaler = Scaler.transform(diabetes_data_test) print('离差标准化前训练集数据的最小值为:', np.min(diabetes_data_train)) print('离差标准化后训练集数据的最小值为:', np.min(diabetes_trainScaler)) print('离差标准化前训练集数据的最大值为:', np.max(diabetes_data_train)) print('离差标准化后训练集数据的最大值为:', np.max(diabetes_trainScaler)) print('离差标准化前测试集数据的最小值为:', np.min(diabetes_data_test)) print('离差标准化后测试集数据的最小值为:', np.min(diabetes_testScaler)) print('离差标准化前测试集数据的最大值为:', np.max(diabetes_data_test)) print('离差标准化后测试集数据的最大值为:', np.max(diabetes_testScaler)) 代码6-5 对diabetes数据集进行PCA降维from sklearn.decomposition import PCA pca_model = PCA(n_components=8).fit(diabetes_trainScaler) # 将规则应用于训练集 diabetes_trainPca = pca_model.transform(diabetes_trainScaler) # 将规则应用于测试集 diabetes_testPca = pca_model.transform(diabetes_testScaler) print('PCA降维前训练集数据的形状为:', diabetes_trainScaler.shape) print('PCA降维后训练集数据的形状为:', diabetes_trainPca.shape) print('PCA降维前测试集数据的形状为:', diabetes_testScaler.shape) print('PCA降维后测试集数据的形状为:', diabetes_testPca.shape)
2023年11月13日
176 阅读
0 评论
3 点赞
2023-11-13
第6章 使用scikit-learn 构建模型
课程名称:Python数据分析与应用课程类别:必修适用专业:金融科技专业总学时:48学时(其中理论16学时,实验32学时)总学分:2.5学分本章学时:10学时一、 材料清单(1) 《Python数据分析与应用(第2版)(微课版)》教材。(2) 配套PPT。(3) 数据。(4) 代码。(5) 引导性提问。(6) 探究性问题。(7) 拓展性问题。二、 教学目标与基本要求教学目标重点介绍 聚类 、 分类 和 回归 三类sklearn数据分析技术的基本任务对应的数据分析建模方法及实现过程。同时,每一类又有对应的多种评估方法,能够评价所构建模型的性能优劣。通过这一章的学习,基本能够掌握常用的模型构建与评估方法,可在以后的数据分析过程中采用适当的算法并按所介绍的步骤实现综合应用。基本要求(1) 掌握sklearn转换器、评估器的使用。(2) 掌握sklearn数据标准化与数据划分。(3) 掌握sklearn中聚类、分类、回归模型的构建。(4) 掌握sklearn中聚类、分类、回归模型的评价。三、 问题引导性提问引导性提问需要教师根据教材内容和学生实际水平,提出问题,启发引导学生去解决问题,提问,从而达到理解、掌握知识,发展各种能力和提高思想觉悟的目的。(1) 常见的模型算法使用场景有哪些?(2) 不同的场景之间有什么区别?(3) scikit-learn名字的由来?探究性问题探究性问题需要教师深入钻研教材的基础上精心设计,提问的角度或者在引导性提问的基础上,从重点、难点问题切入,进行插入式提问。或者是对引导式提问中尚未涉及但在课文中又是重要的问题加以设问。(1) scikit-learn的标准化和第5章的有何不同?(2) 聚类和分类的区别是什么?(3) 回归和分类的区别又是什么?拓展性问题拓展性问题需要教师深刻理解教材的意义,学生的学习动态后,根据学生学习层次,提出切实可行的关乎实际的可操作问题。亦可以提供拓展资料供学生研习探讨,完成拓展性问题。(1) 不同的算法,可解释性不同,能否挑选一种可解释性强的算法对算法结果进行解释?(2) 除了PCA降维以外,可以使用RandomForest模型进行特征的筛选,该如何做?四、 主要知识点、重点与难点主要知识点(1) sklearn转换器、评估器的使用。(2) sklearn数据标准化与数据划分。(3) sklearn中聚类、分类、回归模型的构建。(4) sklearn中聚类、分类、回归模型的评价。重点(1) sklearn转换器的使用方法。(2) sklearn估计器的使用方法。(3) 聚类模型的构建与评价。(4) 分类模型的构建与评价。(5) 回归模型的构建与评价。难点(1) sklearn转换器的使用。(2) sklearn估计器的使用。(3) 分类模型构建。(4) 回归模型构建。五、 教学过程设计理论教学过程(1) 加载datasets模块中的数据集。(2) 将数据集划分为训练集和测试集。(3) 使用sklearn转换器进行数据预处理与降维。(4) 使用sklearn估计器构建聚类模型。(5) 评价聚类模型。(6) 使用sklearn估计器构建分类模型。(7) 评价分类模型。(8) 使用sklearn估计器构建回归模型。(9) 评价回归模型。实验教学过程(1) 加载datasets模块自带数据集。(2) 划分数据集。(3) 使用sklearn转换器进行数据预处理与降维。(4) 构建与评价聚类模型。(5) 构建与评价分类模型。(6) 构建与评价回归模型。六、 教材与参考资料教材曾文权,张良均.Python数据分析与应用(第2版)(微课版)[M].北京:人民邮电出版社.2022.参考资料[1] 黄红梅,张良均.Python数据分析与应用[M].北京:人民邮电出版社.2018.[2] 张良均,谭立云.Python数据分析与挖掘实战(第2版)[M].北京:机械工业出版社.2019.[3] 张健,张良均.Python编程基础[M].北京:人民邮电出版社.2018.
2023年11月13日
133 阅读
0 评论
1 点赞
2023-11-08
第6章 集合
本章教学目标:理解集合元素 无序 、 不重复 (后面的数据分析要用到此特性)的特点;熟练掌握创建集合的不同形式;理解并熟练掌握集合常见运算;熟练掌握集合对象的常用方法;熟练掌握集合对运算符和内置函数的支持;够使用集合解决实际问题。6.1 基本概念教学内容:集合对象的概念与特点。习题:1、2、3、4、56.2 集合创建与删除教学内容:使用大括号创建集合,使用set()把其他可迭代对象转换为集合。data = {}这种方式 创建的为空字典,非空集合。教学重点:集合中的元素不会重复。习题:6、76.3 集合常用方法教学内容:原地增加/删除集合元素,计算交集/并集/差集/对称差集返回新集合,集合测试。教学重点:集合运算。习题:8、9、10实验项目4:蒙蒂·霍尔悖论游戏
2023年11月08日
137 阅读
0 评论
1 点赞
2023-11-06
第4章 实训3 离散化年龄特征
利用分类算法预测患者是否中风时,算法模型要求数据是离散的。 在实训2中巳对年龄特征异常值进行了处理, 现需要将连续型数据变换为 离散型数据 ,使用 等宽法 对年龄特征进行离散化。 实现思路及步骤 (1)获取年龄特征。 (2)使用等宽法离散化对年龄特征进行离散化。上代码:import pandas as pd import numpy as np stroke_info = pd.read_excel('../data/healthcare-dataset-stroke.xlsx') age_abs = pd.read_excel('../data/healthcare-dataset-age_abs.xlsx') link_outer = pd.merge(stroke_info, age_abs, how='outer', left_on='编号', right_on='编号') link_outer.head() age = link_outer['年龄'] age_nomal = [] for i in age: if i > 0.0: age_nomal.append(i) # 使用等宽法离散化函数 age_cut = pd.cut(age_nomal, 5) print('离散化后5条记录年龄分布为:\n', age_cut.value_counts())
2023年11月06日
248 阅读
0 评论
1 点赞
1
...
5
6
7
...
11