数据挖掘作业(第二周)
# -*- 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) 编辑 收藏 举报