예제 #1
0
    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)
예제 #2
0
    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
예제 #3
0
    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