数据挖掘目标(客户价值分析)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

In [2]:

data=pd.read_csv(r'../教师文件/air_data.csv')

In [3]:

data.head()

Out[3]:

Start_timeEnd_timeFareCityAgeFlight_countAvg_discountFlight_mileage
02011/08/182014/03/315860.0.35.0100.97312912560
12011/01/132014/03/315561.0佛山35.0120.57590621223
22012/08/152014/03/311089.0北京33.090.63502519246
32012/10/172014/03/319626.0绍兴县53.070.86857114070
42011/09/042014/03/314473.0上海34.0130.70341917373

In [4]:

data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 15000 entries, 0 to 14999
Data columns (total 8 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   Start_time      15000 non-null  object 
 1   End_time        15000 non-null  object 
 2   Fare            14989 non-null  float64
 3   City            14490 non-null  object 
 4   Age             14907 non-null  float64
 5   Flight_count    15000 non-null  int64  
 6   Avg_discount    15000 non-null  float64
 7   Flight_mileage  15000 non-null  int64  
dtypes: float64(3), int64(2), object(3)
memory usage: 937.6+ KB

In [5]:

data.describe()

Out[5]:

FareAgeFlight_countAvg_discountFlight_mileage
count14989.00000014907.00000015000.00000015000.00000015000.000000
mean3761.74381242.5695319.0576000.72839112395.706800
std2720.2065799.8073853.9463380.1635503588.357291
min0.00000016.0000002.0000000.1360174040.000000
25%1709.00000035.0000006.0000000.6255259747.000000
50%3580.00000041.0000008.0000000.71332211986.500000
75%5452.00000048.00000011.0000000.80384014654.000000
max36602.000000110.00000047.0000001.50000050758.000000

In [6]:

data=data[data.Fare.notnull()]

In [7]:

data=data[data.Fare!=0]

In [8]:

for index,item in data.iterrows():
    s_year,s_month=item['Start_time'].split('/')[:2]
    e_year,e_month=item['End_time'].split('/')[:2]
    data.loc[index,'Months']=(int(e_year)-int(s_year))*12+(int(e_month)-int(s_month))
data=data.drop(['Start_time','End_time'],axis=1)

In [9]:

data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 13279 entries, 0 to 14998
Data columns (total 7 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   Fare            13279 non-null  float64
 1   City            12809 non-null  object 
 2   Age             13199 non-null  float64
 3   Flight_count    13279 non-null  int64  
 4   Avg_discount    13279 non-null  float64
 5   Flight_mileage  13279 non-null  int64  
 6   Months          13279 non-null  float64
dtypes: float64(4), int64(2), object(1)
memory usage: 1.3+ MB

In [10]:

data=data.drop(['City'],axis=1)
data=(data-data.mean(axis=0))/data.std(axis=0)

In [11]:

data.head()

Out[11]:

FareAgeFlight_countAvg_discountFlight_mileageMonths
00.643204-0.7819590.1917521.5394250.019051-0.616333
10.524036-0.7819590.700041-0.9356252.427818-0.357005
2-1.258303-0.985351-0.062393-0.5672611.878109-1.060895
32.1441621.048561-0.5706810.8879390.438910-1.134989
40.090408-0.8836550.954185-0.1411051.357317-0.653379

In [12]:

plt.figure(figsize=(10,10))
plt.title("Pearson Correlation of Features",y=1.05,size=15)
sns.heatmap(data.astype(float).corr(),linewidths=0.1,vmax=1,square=True,cmap=plt.cm.viridis,linecolor='white',annot=True)

Out[12]:

<AxesSubplot:title={'center':'Pearson Correlation of Features'}>

In [13]:

data=data.drop(['Fare','Age'],axis=1)

In [14]:

from sklearn.cluster import KMeans

In [15]:

kmeans=KMeans(n_clusters=3).fit(data)

In [16]:

kmeans.cluster_centers_

Out[16]:

array([[-0.56475974,  0.54131875, -0.70701626, -0.56628176],
       [-0.06513412, -0.03376272, -0.10437466,  1.24214471],
       [ 0.75090493, -0.63663316,  0.95977635, -0.37662422]])

In [17]:

kmeans.labels_

Out[17]:

array([0, 2, 2, ..., 0, 0, 0])

In [18]:

from collections import defaultdict

In [28]:

label_dict=defaultdict(int)

In [29]:

for label in kmeans.labels_:
    label_dict[label] += 1

In [30]:

label_dict

Out[30]:

defaultdict(int, {0: 5287, 2: 4287, 1: 3705})

In [31]:

kmeans.cluster_centers_

Out[31]:

array([[-0.56475974,  0.54131875, -0.70701626, -0.56628176],
       [-0.06513412, -0.03376272, -0.10437466,  1.24214471],
       [ 0.75090493, -0.63663316,  0.95977635, -0.37662422]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/249270.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络入门---守护进程

目录标题 什么是守护进程会话的理解setsid函数daemonSelf函数模拟实现测试 什么是守护进程 在前面的学习过程中我们知道了如何使用TCP协议和UDP协议来实现通信&#xff0c;比如说登录xshell运行了服务端&#xff1a; 然后再登录一个xshell运行客户端并向服务端发送信息&#…

笔记本电脑如何安装openwrt

环境&#xff1a; 联想E14笔记本 装机U盘 DiskImage v1.6 刷写工具 immortalwrt镜像 问题描述&#xff1a; 笔记本电脑如何安装openwrt 解决方案&#xff1a; 一、官方版 1.官网下载固件 2.BIOS关闭安全启动改为引导 3.用U盘启动进入PE系统后&#xff0c;需要先用PE系…

国产浪潮服务器:风扇免手动调节脚本

简介&#xff1a;浪潮集团&#xff0c;是中国本土顶尖的大型IT企业之一&#xff0c;中国领先的云计算、大数据服务商。浪潮集团旗下拥有浪潮信息、浪潮软件、浪潮国际&#xff0c;业务涵盖云计算、大数据、工业互联网等新一代信息技术产业领域&#xff0c;为全球120多个国家和地…

JNA实现JAVA调用C/C++动态库

1.JNA JNA全称Java Native Access&#xff0c;是一个建立在经典的JNI技术之上的Java开源框架&#xff08;https://github.com/twall/jna&#xff09;。JNA提供一组Java工具类用于在运行期动态访问系统本地库&#xff08;native library&#xff1a;如Window的dll&#xff09;而…

计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)

目录 回退N帧协议GBN 介绍 无差错情况 累积确认 有差错情况 发送窗口尺寸 小结 练习 解析 示意图 上篇中所介绍的停止-等待协议的信道利用率很低&#xff1b;若出现超时重传&#xff0c;则信道利用率更低。 如果发送方在收到接收方的确认分组之前可以连续发送多个数…

Leetcode—2413.最小偶倍数【简单】

2023每日刷题&#xff08;六十&#xff09; Leetcode—2413.最小偶倍数 class Solution { public:int smallestEvenMultiple(int n) {return (n % 2 1) * n;} };运行结果 之后我会持续更新&#xff0c;如果喜欢我的文章&#xff0c;请记得一键三连哦&#xff0c;点赞关注收藏…

局域网环境下的ntp对时

服务端&#xff1a; 此处为v4-sp4服务器 安装ntp&#xff0c;apt-get install ntp -y ,若为离线环境&#xff0c;则安装ntp和libopts25两个包。 配置&#xff1a; 在/etc/ntp.conf的配置文件里 加入 restrict default nomodify notrap noquery restrict 127.0.0.1 rest…

libxlsxwriter - 编译

文章目录 libxlsxwriter - 编译概述笔记编译环境编译思路编译安装组件写个测试程序, 看看编译的组件是否好使END libxlsxwriter - 编译 概述 想换一个新版的libxlsxwriter, 自己编译一个出来. libxlsxwriter依赖zlib, 前面已经成功编译了zlib(zlib - 编译). 笔记 libxlsxwr…

大模型Transformer 推理 :kvCache原理浅析

大模型Transformer 推理 :kvCache原理浅析 kvCache 原理 在采样时,Transformer模型会以给定的提示/上下文作为初始输入进行推理(可以并行处理),然后逐一生成额外的标记来继续完善生成的序列(体现了模型的自回归性质)。在采样过程中,Transformer会执行自注意力操作,为…

若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码

目录 0. 前言0.1 说明 1. 后端部分1.1 添加依赖1.2. 修改 application.yml1.3. 新增 CaptchaRedisService 类1.4. 添加必须文件1.5. 移除不需要的类1.6. 修改登录方法1.7. 新增验证码开关获取接口1.8. 允许匿名访问 2. 前端部分&#xff08;Vue3&#xff09;2.1. 新增依赖 cryp…

C++中STL的概念——零基础/小白向,适合竞赛,初学C++者使用

目录 1.STL的诞生 2. STL的基本概念 3. STL六大组件 4. STL容器&#xff0c;算法&#xff0c;迭代器 容器&#xff1a;存放数据的地方 算法&#xff1a;解决问题的方法 迭代器&#xff1a;容器和算法之间的桥梁 5. STL初始&#xff1a;打印0 ~ 9 的数字 这篇文章是一篇…

day34算法训练|贪心算法

1005.K次取反后最大化的数组和 两次贪心算法思路 1. 数组中有负数时&#xff0c;把绝对值最大的负数取反 2. 数组全为非负数时&#xff0c;一直取反最小的那个数 步骤&#xff1a; 第一步&#xff1a;将数组按照绝对值大小从大到小排序&#xff0c;注意要按照绝对值的大小…

云仓酒庄为您甄选西班牙葡萄酒

西班牙是一个拥有悠久葡萄酒酿造与饮用历史的国家&#xff0c;其葡萄酒产量位居世界第三位。云仓酒庄的品牌雷盛红酒分享翻开西班产区地图&#xff0c;不少葡萄酒刚入门的朋友会感到头疼&#xff0c;众多产区、分级制度、陈年标准&#xff0c;想要短时间内搞懂实在不容易。不用…

案例069:基于微信小程序的计算机实验室排课与查询系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

设计模式-状态(State)模式

目录 开发过程中的一些场景 状态模式的简单介绍 状态模式UML类图 类图讲解 适用场景 Java中的例子 案例讲解 什么是状态机 如何实现状态机 SpringBoot状态自动机 优点 缺点 与其他模式的区别 小结 开发过程中的一些场景 我们在平时的开发过程中&#xff0c;经常会…

【C语言(十五)】

动态内存管理 一、为什么要有动态内存分配? 我们已经掌握的内存开辟方式有&#xff1a; int val 20 ; // 在栈空间上开辟四个字节 char arr[ 10 ] { 0 }; // 在栈空间上开辟 10 个字节的连续空间 但是上述的开辟空间的方式有两个特点&#xff1a; • 空间开辟大小是固…

leetcode LCR 173. 点名

代码&#xff1a; class Solution {public int takeAttendance(int[] records) {int left0,rightrecords.length-1;while (left<right){int midleft(right-left)/2;if(midrecords[mid]){leftmid1;}else {rightmid;}}if(leftrecords[left]){return left1;}else {return left…

北斗三号短报文+4G的低功耗太阳能船载报位监控方案

国内海洋船舶群体长期在海上航行&#xff0c;多数海员由于海面无信号覆盖、个人卫星通信费用昂贵、无法自由使用船载公用卫星通信设备等原因&#xff0c;无法与家人和朋友保持联系&#xff0c;甚至在遇到危险的时候也无法及时向外界发出求救信号&#xff0c;管理单位难以掌握船…

新钛云服助力爱达邮轮·魔都号首航,保驾护航,共创辉煌

随着2024年1月1日的临近&#xff0c;中国首艘国产大型邮轮——爱达邮轮魔都号即将迎来激动人心的首航时刻。作为爱达邮轮的IT系统运维和安全服务伙伴&#xff0c;新钛云服有幸提前登船体验&#xff0c;并为魔都号即将到来的航行提供全面的技术支持与保障。 爱达魔都号&#xff…

微积分-三角函数2

三角函数 在上一节中&#xff0c;讨论了如何在直角三角形中定义三角函数&#xff0c;限制让我们扩展三角函数的定义域。 事实上我们可以取任意角的正弦和余弦&#xff0c;而不只是局限于 0 0 0~ π 2 \frac{\pi}{2} 2π​当中。 当然需要注意的是&#xff0c;正切函数对不是对…