python数据分析与应用笔记

7218761-d42f7c11dd54b94e.jpg

使用sklearn构建模型

1.使用sklearn转换器处理数据

import numpy as np

from sklearn.datasets import load_breast_cancer

from sklearn.preprocessing import MinMaxScaler #该函数时对数据做标准化处理

from sklearn.decomposition import PCA #该函数时对数据进行降维处理

from sklearn.model_selection import train_test_split #该函数是对数据做训练集和测试集的划分

cancer = load_breast_cancer() #将数据集赋值给cancer变量

cancer_data = cancer['data'] #提取数据集中的数据

cancer_target = cancer['target'] #提取数据集中的标签

cancer_names = cancer['feature_names'] #查看特征数目

cancer_desc = cancer['DESCR']

#划分训练集和测试集,其中20%的作为测试集

cancer_train_data,cancer_test_data,cancer_train_target,cancer_test_target = train_test_split(cancer_data,cancer_target,test_size = 0.2,random_state = 42)

scaler = MinMaxScaler().fit(cancer_train_data) #生成规则

# 将规则应用于训练集和测试集

cancer_trainScaler = scaler.transform(cancer_train_data)

cancer_testScaler = scaler.transform(cancer_test_data)

#构建pca降维模型

pca_model = PCA(n_components = 10).fit(cancer_trainScaler)

#将降维模型应用于标准化之后的训练数据和测试数据

cancer_trainPca = pca_model.transform(cancer_trainScaler)

cancer_testPca = pca_model.transform(cancer_testScaler)

print('降维前训练数据的形状:',cancer_trainScaler.shape)

print('降维后训练数据的形状:',cancer_trainPca.shape)

print('降维前测试数据的形状:',cancer_testScaler.shape)

print('降维后测试数据的形状:',cancer_testPca.shape)

降维前训练数据的形状: (455, 30)

降维后训练数据的形状: (455, 10)

降维前测试数据的形状: (114, 30)

降维后测试数据的形状: (114, 10)

任务:使用sklearn实现数据处理和降维操作

from sklearn.datasets import load_boston

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

from sklearn.decomposition import PCA

boston = load_boston()

boston_data = boston['data']

boston_target = boston['target']

boston_names = boston['feature_names']

boston_train_data,boston_test_data,boston_train_target,boston_test_target = train_test_split(boston_data,boston_target,test_size = 0.2,random_state = 42)

stdScale = StandardScaler().fit(boston_train_data)

boston_trainScaler = stdScale.transform(boston_train_data)

boston_testScaler = stdScale.transform(boston_test_data)

pca_model = PCA(n_components = 5).fit(boston_trainScaler)

boston_trainPca = pca_model.transform(boston_trainScaler)

boston_testPca = pca_model.transform(boston_testScaler)

2.构建并评价聚类模型

常用的聚类算法如表所示:

7218761-e9c18dd8f574cc6a.jpg

sklearn常用的聚类算法模块cluster提供的聚类算法及其适用范围如图:

7218761-a0abcf09a15b5699.jpg

import pandas as pd

from sklearn.manifold import TSNE #TSNE函数可实现多维数据的可视化展现

import matplotlib.pyplot as plt

from sklearn.datasets import load_iris

from sklearn.preprocessing import MinMaxScaler

from sklearn.cluster import KMeans

iris = load_iris()

iris_data = iris['data']

iris_target = iris['target']

iris_names = iris['feature_names']

scale = MinMaxScaler().fit(iris_data) #构建规则

iris_dataScale = scale.transform(iris_data) #将规则应用于数据

kmeans = KMeans(n_clusters = 3,random_state = 123).fit(iris_dataScale) #构建并训练聚类模型

result = kmeans.predict([[1.5,1.5,1.5,1.5]]) #用模型进行预测

tsne = TSNE(n_components = 2,init = 'random',random_state=177).fit(iris_data) #使用TSNE对数据进行降维,降成两维

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]

fig = plt.figure(figsize=(9,6))

plt.plot(df1[0],df1[1],'bo',df2[0],df2[1],'r*',df3[0],df3[1],'gD')

#plt.axis([-60,60,-80,80])

plt.savefig('聚类结果.png')

plt.show()

# print(df)

# print(df1)

# print(kmeans.labels_)

print(iris_names)

['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

评价聚类模型

标准是:组内相似性越大,组间差别越大,其聚类效果越好

sklearn 的metrics模块提供的聚类模型评价指标有:

7218761-b00fc36386436b54.jpg

使用FMI评级法去评价K-Means聚类模型

from sklearn.metrics import fowlkes_mallows_score

for i in range(2,7):

kmeans = KMeans(n_clusters = i,random_state = 123).fit(iris_data)

score = fowlkes_mallows_score(iris_target,kmeans.labels_)

print('iris数据聚%d类FMI评价分值为:%f'%(i,score))

iris数据聚2类FMI评价分值为:0.750473

iris数据聚3类FMI评价分值为:0.820808

iris数据聚4类FMI评价分值为:0.753970

iris数据聚5类FMI评价分值为:0.725483

iris数据聚6类FMI评价分值为:0.600691

使用轮廓系数评价法

from sklearn.metrics import silhouette_score

import matplotlib.pyplot as plt

silhouettteScore = []

for i in range(2,15):

kmeans = KMeans(n_clusters = i,random_state = 123).fit(iris_data)

score = silhouette_score(iris_data,kmeans.labels_)

silhouettteScore.append(score)

plt.figure(figsize=(10,6))

plt.plot(range(2,15),silhouettteScore,linewidth = 1.5,linestyle = '-')

plt.show()

使用Calinski-Harabasz指数评价K-Means聚类模型

from sklearn.metrics import calinski_harabaz_score

for i in range(2,7):

kmeans = KMeans(n_clusters = i,random_state = 123).fit(iris_data)

score = calinski_harabaz_score(iris_data,kmeans.labels_)

print('iris数据聚%d类calinski_harabaz指数为:%f'%(i,score))

iris数据聚2类calinski_harabaz指数为:513.303843

iris数据聚3类calinski_harabaz指数为:560.399924

iris数据聚4类calinski_harabaz指数为:529.120719

iris数据聚5类calinski_harabaz指数为:494.094382

iris数据聚6类calinski_harabaz指数为:474.753604

python数据分析与应用课后实训_python数据分析与应用相关推荐

  1. Python 数据挖掘与机器学习进阶实训-3-韦玮-专题视频课程

    Python 数据挖掘与机器学习进阶实训-3-106人已学习 课程介绍         Python 数据挖掘与机器学习进阶实训-3 课程收益     培养Python全栈工程师 讲师介绍     韦 ...

  2. Python 数据挖掘与机器学习进阶实训-2-韦玮-专题视频课程

    Python 数据挖掘与机器学习进阶实训-2-39人已学习 课程介绍         Python 数据挖掘与机器学习进阶实训-2 课程收益     培养Python全栈工程师 讲师介绍     韦玮 ...

  3. Python 数据挖掘与机器学习进阶实训-1-韦玮-专题视频课程

    Python 数据挖掘与机器学习进阶实训-1-262人已学习 课程介绍         Python 数据挖掘与机器学习进阶实训-1 课程收益     培养Python全栈工程师 讲师介绍     韦 ...

  4. Python 数据挖掘与机器学习进阶实训-5-韦玮-专题视频课程

    Python 数据挖掘与机器学习进阶实训-5-141人已学习 课程介绍         Python 数据挖掘与机器学习进阶实训-5 课程收益     Python全栈工程师培养 讲师介绍     韦 ...

  5. 做python的心得体会_实训python的心得体会

    如何学习Python的一些总结 C++.Java乃至C#都可以看做是同一类型的语言:C++还算灵活,但纷繁复杂的语法使得生产效率低下,Java提高了生产效率,却损失了灵活性;C#算是在生产效率和灵活性 ...

  6. python数据分析实战 fabio nelli百度云_Python数据分析实战 内利(Fabio Nelli),杜春晓 9787115432209...

    商品描述: 基本信息 书名:Python数据分析实战 定**价:59.00元 作者: 内利(Fabio Nelli) 著,杜春晓 译 出版社:人民邮电出版社 出版日期:2016-08-01 ISBN: ...

  7. python标题行_添加标题行_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

  8. python描述性统计命令_描述性统计_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

  9. 应用数据分析第三周 实训1 分析1996~2015年人口数据特征间的关系

    文章目录 前言 一.#实训1分析1996年~2015年人口数据特征的关系 实验结果如图所示

最新文章

  1. 將軍苑 - 收藏集 - 掘金
  2. python中与时间有关的对象-datetime、time、date
  3. Markdown中数学公式练习(2)
  4. 新款苹果手机_苹果宣布新系统 性能依旧“压制quot;安卓
  5. 检索数据_14_返回不重复的记录
  6. 【Linux】一步一步学Linux——traceroute命令(167)
  7. Delphi7的控件安装与删除
  8. get_metrology_object_measures获取测量区域和计量模型的计量对象的边缘位置结果
  9. python ftp上传_Python FTP传输的简单示例
  10. 计算树结点路径的一种Javascript的实现
  11. mysql安装显示挂起_安装Sql Server 2000时提示“安装Sql挂起”的解决方案
  12. 【408考研笔记】操作系统完整知识点
  13. leetcode:448. Find All Numbers Disappeared in an Array找到所有数组中消失的数字(C++)
  14. 关于心理学书籍的一份书目
  15. 完全卸载 HP 打印机
  16. 使用uniapp绘制一个折线图(uCharts)
  17. idea 手动导入 jar 包
  18. html期末作业代码网页设计——简洁日式料理餐饮(4页) HTML+CSS+JavaScript 父亲美食HTM5网页设计作业成品
  19. 男人的责任--Cinderella Man
  20. 大数据-Zookeeper:对大数据平台中的各个模块进行集中配置和调度【原理与搭建】

热门文章

  1. 羊皮卷的故事-第四章
  2. 如何成为一名真正的程序员
  3. STM32+ESP-01对接阿里飞燕平台
  4. Xcode4.6发布了
  5. Matlab mfcc函数参数详解(英文附例)
  6. 服务器监控 微信发送,python3.8 微信发送服务器监控报警消息代码实现
  7. 第一个STM32CubeIDE项目
  8. html视频教程全套
  9. android中车牌识别技术
  10. 谷歌收购摩托罗拉,这消息太重磅了