def plot2list(self, params, params_scores, better_params): pp = MyMatplotlib("myTest/") for name in params.keys(): values = params[name] scores = params_scores[name] better_param = better_params[name] # 这里简单处理了可能存在的嵌套参数的问题 pp.plot_plot(name.replace('base_estimator__', ''), values, scores, name.replace('base_estimator__', ''), 'score', better_param)
def correlationHotMap(self, X, column_names=None, annot=False, change_ticks_fontsize=False, rotation_ticks=False): """ 关联矩阵分析-->热力图 热力图没有label,不分因此只要X不要y :param X: 二维矩阵 :param column_names: 属性的列名,如果没有传入列名的话,自动生成列名 :param annot: 是否在格子里标注数据 :param change_ticks_fontsize: 是否改变ticks的字体大小 :param rotation_ticks: 是否旋转ticks(名字太长了就要这样做) :return: """ func_name = '相关性分析' # 将二维矩阵转化为DataFrame if isinstance(X, pd.DataFrame): df = X else: df = pd.DataFrame(X, columns=column_names) corr_mat = df.corr() # 保存热力图元数据 excel_name = TimeTool().getCurrentTime() + '.xls' file_savePath = os.path.join(self.save_path, excel_name) corr_mat.to_excel(file_savePath) # 绘制热力图 self.fig_path = MyMatplotlib(self.save_path).plot_heatmap( corr_mat, annot, change_ticks_fontsize, rotation_ticks) return None
def correlationPair(self, X, y=None, names=None, hue=False, reg=False, vars=None): """ 所有变量中任意两个变量之间的图形, 用矩阵图探索多维数据不同维度间的相关性 这里由于可以,对不同的类进行分析, 所以可以传入y 实际使用时,可以通过plot_pair函数的传参来设置,仅分析属性,还是连类别也分析 需要根据y是否存在分为监督学习还是非监督学习 :param X: :param y: :param names: 列名,属性名 :param hue: 是否分类 :param reg: :param vars: :return: """ func_name = '特征矩阵图' # 将二维矩阵转化为DataFrame if isinstance(X, pd.DataFrame): df = X else: df = pd.DataFrame(X, columns=names) if hue: labels = [str(i) for i in y] df['label'] = labels # 绘制矩阵图 self.fig_path = MyMatplotlib(self.save_path).plot_pair( df, hue, reg, vars) return None