• python进行数据挖掘中的常见问题及经验


    在数据分析程序中需要引入的包及设置

    用python进行数据分析的时候,需要在文件开头导入一下包

    import numpy as np # linear algebra 引入线性代数包numpy
    import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
    
    #%matplotlib inline
    import matplotlib.pyplot as plt  # Matlab-style plotting 画图工具包
    import seaborn as sns # 画图美化工具包
    color = sns.color_palette()
    sns.set_style('darkgrid')
    
    import warnings
    def ignore_warn(*args, **kwargs):
        pass
    warnings.warn = ignore_warn #ignore annoying warning (from sklearn and seaborn)
    
    from scipy import stats
    from scipy.stats import norm, skew #for some statistics
    
    pd.set_option('display.float_format', lambda x: '{:.3f}'.format(x)) #Limiting floats output to 3 decimal points 设置在pd中只显示3位小数
    

    画数据分布图

    使用seaborn包进行画图,其中数据分布图为distplot,fit参数表示需要拟合的分布类型,norm表示拟合正态分布,正态分布的参数可以由norm.fit来获得

    sns.distplot(data_train['SalePrice'],fit=norm)
    (mu, sigma) = norm.fit(data_train['SalePrice'])
    plt.legend(['norm distribution with $mu$={:.2f},$sigma$={:.2f}'.format(mu,sigma)])
    

    将分类描述变量转换为数值类型

    有两种方式可以进行转换:

    1. pd.get_dummies(train):直接传入一个DataFrame,就可以得到改变之后的结果

    2. from sklean.preprocessing import LabelEncoder
      for label in train.index:
      	encoder = LabelEncoder()
          train[label] = labencoder.fit_transform(train[encoder])
      

    矩阵相乘

    对应元素相乘:np.multiply(A,B)或者是直接用*

    矩阵乘法:np.dot(A,B)

    参数axis

    • axis=0时表示按照行来求值,比如在max函数中,原始数据是一个(40000 imes785)的矩阵,那么data.max(axis=0)得到一个(1 imes785)行向量结果,按行就是在行的维度上求最大值
    • axis=1时,同理可以得到结果是(785 imes1)列向量数据,按列求值就是在列的维度上进行求值
  • 相关阅读:
    基于密度的dbScan轨迹聚类
    更新yum 源
    搭建git linux 服务器
    富文本编辑器
    轨迹聚类分析问题
    hdu3078(lca / RMQ在线)
    zoj3195(lca / RMQ在线)
    hdu2874(lca / tarjan离线 + RMQ在线)
    hdu2586(lca模板 / tarjan离线 + RMQ在线)
    高斯消元求解方程组(模板)
  • 原文地址:https://www.cnblogs.com/drawon/p/8520708.html
Copyright © 2020-2023  润新知