zoukankan      html  css  js  c++  java
  • 机器学习经常用到的函数(特征工程,参数选择,评估值等)

    1. 我草泥马!!!!!loc取值的时候行索引从0开始,代表第一行, iloc取值行索引也从0开始,还有
    2. 一定要记得记得记得记得每次清洗完数据之后用data.rest_index(inplate=True)重置索引

    一:生成数据

    1. make_blobs(from sklearn.datasets.samples_generator import make_blobs): 

      用于生成训练样本https://www.jianshu.com/p/069d8841bd8e

    2.make_circles(from sklearn.datasets.samples_generator import make_circles):

      生成圆形样本,其中factor参数为内圆与外圆的半径之比。

    2. contour:画等高线(在matplotlib中)

    3. meshgrid(在numpy):生成坐标网格。

    4. 用以下的方法可以画3维图形

    from mpl_toolkits import mplot3d
    r = np.exp(-(X**2).sum(1))
    def plot3d(X, y):
        ax = plt.subplot(projection='3d')
        ax.scatter3D(X[:, 0], X[:, 1], r, c=y)
        ax.set_xlabel("x")
        ax.set_ylabel("y")
        ax.set_zlabel("z")
    plot3d(X, y)

    5. format格式化字符串https://www.runoob.com/python/att-string-format.html

     6.使用matplotlib.cm.rainbow(np.linespace(0, 1, len))可以生成数量为len的颜色用于画图来区分不同类

     

    二:好玩的数据集

    1. 一些有名字的人脸数据:from sklearn.datasets import fetch_lfw_people

       faces = fetch.lfw.people(min_faces_per_person=60) 选出用60个脸图的人。

      faces有target属性,target[i]是第i张脸的名字的索引

      target_name属性,存放人名。例如target_name[target[i]]就是第i张脸的名字

      images属性,images是一个列表,每个元素是一个图像,也就是一个矩阵。可以用imshow(images[i])显示的i张脸的图像。这里images的shape为(1348, 62, 47)的,说明有1348张图,每张图是62*43的矩阵

      data属性:就是把images属性的每个矩阵变成一行数据,用于训练。所以data属性的shape是(1348, 2914)

    三:参数的选择

    1.GridSearchCV:用法如下,用于参数的选择

    from sklearn.model_selection import GridSearchCV
    param_grid = {'svc__C': [1, 5, 10],
                  'svc__gamma': [0.0001, 0.0005, 0.001]}
    grid = GridSearchCV(model, param_grid)
    
    grid.fit(Xtrain, ytrain)
    print(grid.best_params_)

      属性best_params_: 最好的参数

      属性best_estimator:最好的参数对应的训练模型。

    2.pandas的notnull函数可以找到特定特征非空的样本,例如data是一个数据表,column是某一列, data_new = data [ pd.notnull ( data [ column] ) ] 将筛选出所有的column不为空的样本并形成新数据表

    四:评估值

    1.混淆矩阵

    from sklearn.metrics import confusion_matrix
    from seaborn import heatmap
    c = confusion_matrix(y_test, y_predict)
    heatmap(data=c, annot=True, xticklabels=target_names, yticklabels=target_names)
    ax2.set_xlabel("predict")
    ax2.set_ylabel("true")
    plt.show()

     2.平均绝对误差, 均方绝对误差

    五:特征工程

    设data是DataFrame类型, feature是Series类型

    1. data.info可以显示数据集信息,特征类型

    2. data.select_dtypes(include=['object'])可以选出相应类型为‘object'的特征,返回值是DataFram类型

      data.select_dtypes(exclude=['object'])选出类型不为’object'的特征。

     3. feature.skew()和feature.kurt()可分别计算特征的偏度和峰度

    4.对特征取对数可以减小数据的偏度。

    5. data[column_name].hist()可以画出每个特征的直方图分布,这里特征由column_name指定。

    6. data[column_name].corr()加上sns.heatmap()可以以热度图的形式画出特征之间的相关性

    7. feature.astype('category').cat.codes可以将object类型的特征编码为数值类型

    8.如果你想去掉指定时间的行可以如下:先将形如‘2013-01-01’,类型为object的列转换成datetme类型,然后再比较。

    注意这里使用了异或去掉指定行。

      

    data['order_pay_date'] = pd.to_datetime(data['order_pay_date'])
    data2 = data[(True^data['order_pay_date'].isin(['2013-11-11']))]
  • 相关阅读:
    Asp.Net图片上传
    JQuery实现CheckBox全选全不选
    DES加密解密公用方法(详细注释)
    sysobjects
    window.onload和$(document).ready()区别
    Ajaxpro2 实现三级联动
    idea Mac版过期处理方法.适用于JetBrains全家桶
    rabbitmq报错Failed to start RabbitMQ broker
    pip install image 失败,加上国内源
    关于系统程序员的一些感悟
  • 原文地址:https://www.cnblogs.com/loubin/p/11575689.html
Copyright © 2011-2022 走看看