019.(5.16-5.18)机器学习 分类问题实操笔记

机器学习 分类问题实操笔记

数据探索性分析

特征工程

  • 异常值处理的一个解决方法:
    在这里插入图片描述
    为什么要这么写,因为如果像是f1[][]这样会报错!

    修改Dataframe一列的最大值及loc,iloc用法
    Pandas切片操作:很容易忽视的SettingWithCopyWarning
    在这里插入图片描述

  • .value_counts() 可以查看数据分布情况

  • 处理对取值2种类型以上的非数值特征:
    采用 one-hot code,可用pandas.get_dummies()
    在这里插入图片描述

    pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None) 
    

    支持对指定列进行get_dummies
    pandas.get_dummies
    one-hot 编码介绍

  • pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。

  • 在这里插入图片描述

建模调参

  • 训练集数据划分为训练数据和测试数据:

    random.shuffle(a):用于将一个序列中的元素打乱 。

    random.sample的用法,多用于截取列表的指定长度的随机数,但是不会改变列表本身的排序,注意这属于切片
    在这里插入图片描述
    注意区分pandas.sample()
    Python-Pandas 如何shuffle(打乱)数据?
    Pandas简单划分
    此外,
    在这里插入图片描述

  • random.uniform(x, y):随机生成下一个实数,它在 [x, y] 范围内,注意返回的是一个浮点数。

  • 常用K折交叉验证:

    补充:交叉验证主要用于防止模型过于复杂而引起的过拟合,是一种评价训练数据的数据集泛化能力的统计方法。其基本思想是将原始数据进行划分,分成训练集和测试集(也称验证集),训练集用来对模型进行训练,测试(验证集)集用来测试训练得到的模型,以此来作为模型的评价指标。在这里插入图片描述
    k折交叉验证
    基于pandas实现K折交叉验证数据集划分

  • 列表可以相加(拼接),不能相减,但集合满足条件可以相减。
    在这里插入图片描述

  • system函数可以将字符串转化成命令在服务器上运行
    python基础之os.system函数

  • pandas的to_csv()使用方法

  • numpy的mat函数:矩阵操作

    Python中Numpy mat的使用
    1.mat()函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割。而array()函数中数据只能为后者形式。

    2.mat()函数中矩阵的乘积可以使用(星号) * 或 .dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。相比之下,array()函数中矩阵的乘积只能使用 .dot()函数。而星号乘 (*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。

  • numpy累积函数的例子:

     >>> a=np.array([[1,2,3],[4,5,6]])
     >>> np.sum(a,axis=0)
    	 array([5, 7, 9]) # 每行相加,对列求和
     >>> np.sum(a,axis=1)
    	 array([ 6, 15])  # 每列相加,对行求和
    
  • 关于numpy array的迭代修改

    >>> a = np.arange(8)
    >>> a
    array([0, 1, 2, 3, 4, 5, 6, 7])
    >>> for i in a:
    	i= 2
    
    	
    >>> a
    array([0, 1, 2, 3, 4, 5, 6, 7])
    >>> 
    

    在这里插入图片描述

  • Dataframe.insert(loc, column, value, allow_duplicates=False): 在Dataframe的指定列中插入数据。

  • 随机梯度下降法:节省计算量,相比BGD每次只使用一个样本。因为它的特点,未改进的话准确率一般不如BGD。
    在这里插入图片描述
    深度学习必备:随机梯度下降(SGD)优化算法及可视化
    监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)

  • 一个判断优化算法优劣的可靠方法是看它是否收敛,也就是说参数是否达到了稳定值,是否还会不断地变化。

  • 将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法

  • return 1.0/(1+exp(-inX))
    TypeError: only size-1 arrays can be converted to Python scalars
    # 这里是因为inX是一个numpy的矩阵,要调用numpy.exp处理
    # 对numpy矩阵,有的时候调用math.function()也能用,但有的时候用不了(会出现不匹配的问题)
    
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

其他想法

还是基础太薄弱,再加上第一此编写有关、数据分析处理和机器学习的代码,交了不少学费。

此外,注意下最基本的程序结构,尤其是重置值问题,比如循环时中出现的累计运算。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013598957/article/details/106159660