蓝螃蟹Karry0921

导航

数据挖掘作业(第二周)

 

 

 

 

 

# -*- coding: utf-8 -*-
"""
Created on Wed Mar  1 13:42:18 2023

@author: 86138
"""


# 代码6-1

import numpy as np
import pandas as pd

inputfile = r'C:\Users\86138\Downloads\data\数据挖掘与分析\data.csv' # 输入的数据文件
data = pd.read_csv(inputfile) # 读取数据

# 描述性统计分析
description = [data.min(), data.max(), data.mean(), data.std()]  # 依次计算最小值、最大值、均值、标准差
description = pd.DataFrame(description, index = ['Min', 'Max', 'Mean', 'STD']).T  # 将结果存入数据框
print('描述性统计结果:\n',np.round(description, 2))  # 保留两位小数



# 代码6-2

# 相关性分析
corr = data.corr(method = 'pearson')  # 计算相关系数矩阵
print('相关系数矩阵为:\n',np.round(corr, 2))  # 保留两位小数



# 代码6-3

# 绘制热力图
import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题

plt.subplots(figsize=(10, 10)) # 设置画面大小 
sns.heatmap(corr, annot=True, vmax=1, square=True, cmap="Blues") 
plt.title('相关性热力图-3039')
plt.show()
plt.close
相关热力图如下:

 半边相关性热力图:

 

 

# 代码6-4

import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso

inputfile = r'C:\Users\86138\Downloads\data\数据挖掘与分析\data.csv'  # 输入的数据文件
data = pd.read_csv(inputfile)  # 读取数据
lasso = Lasso(1000)  # 调用Lasso()函数,设置λ的值为1000
lasso.fit(data.iloc[:,0:13],data['y'])
print('相关系数为:',np.round(lasso.coef_,5))  # 输出结果,保留五位小数

print('相关系数非零个数为:',np.sum(lasso.coef_ != 0))  # 计算相关系数非零的个数

mask = lasso.coef_ != 0  # 返回一个相关系数是否为零的布尔数组
print('相关系数是否为零:',mask)

outputfile =r'C:\Users\86138\Downloads\data\数据挖掘与分析\new_reg_data.csv'  # 输出的数据文件
mask=np.append(mask,True)
new_reg_data = data.iloc[:, mask]  # 返回相关系数非零的数据
new_reg_data.to_csv(outputfile)  # 存储数据
print('输出数据的维度为:',new_reg_data.shape)  # 查看输出数据的维度

 

posted on 2023-03-05 19:47  蓝螃蟹Karry0921  阅读(15)  评论(0编辑  收藏  举报