机器学习入门笔记


一、数据处理

缺失值判断:

  1. pd.isnull(movie) 如果是缺失值返回true;

    返回结果是一张表,表里填满 true和false;

  2. 判断整张表是否有缺失值:

    np.any(pd.isnull(movie))

    反三:any-all isnull-notnull

    返回结果为一个值:true/false

缺失值删除和替换

  1. movie(“列变量名”).fillna(value=movie["列变量名"].mean(), inplace=True)

    替换变量函数:fillna( )

    .mean():用该列平均值替换NaN值

    inplace=Ture: 不创建新的对象,直接对原始对象进行修改;

    inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。

  2. 替换所有缺失值:

    for i in movie.columns:    #遍历列
      if np.any(pd.isnull(movie[i])) == True:  #如果此列有NaN值
            movie[i].fillna(value=movie[i].mean(), inplace=True)
    np.any(pd.isnull(movie))  #检测是否替换完成
    
  3. 删除缺失值(整张表中)

    data = movie.dropna()

  4. 缺失值不是NaN的处理情况

    如将 “?”替换成np.nan

    wis = wis.replace(to_replace='?',value=np.NaN)

数据离散化

pd.qcut(data,q)

数据合并

pd.concat({data, data_dummies}, axis=1) axis参数表作用方向:此句中的axis=1表示两张表按行(水平方向)拼接

pd.merge(left, right, how="inner", left_on=None,right_on=None)

数据可视化

seaborn库介绍

  • seaborn.implot() 可以再绘制二维散点图时自动完成回归拟合
  • data= :关联数据集
  • hue=“

matplotlin库介绍

绘制柱状图:

柱状图

数据归一化

from sklearn.preprocessing import MinMaxScaler

数据归一化

归一化实力

数据标准化

数据标准化AIP

实例:修改归一化实例图中的transfer = StandardScaler 即可

线性回归

API:sklearn.linear_model.LinearRegression()

属性:LinearRegression.coef_:回归系数

线性回归

优化算法:

  • 正规方程(直接矩阵运算求w权重,如果特征多求解速度慢,只能在线性回归总运用),
  • 梯度下降(沿着切线向下的方向,递归迭代计算权重,广泛使用):找到当误差最小时,最优自变量|权重|参数
  • 性能评估:使用均方误差;
    适用场景:
  • 小规模数据建议LinearRegression(不能解决过拟合问题)和岭回归;
  • 大规模用SGDRegressor:随机梯度下降

梯度下降

目的:求出当误差最小时,最优自变量|权重|参数

sklearn.linear_model.SGDRegression()

  • 包:from sklearn.linear_model import SGDRegressor
  • 支持loss函数(损失类型),和正则化惩罚项来拟合线性回归模型
  • loss=‘squared_loss’:默认普通最小二乘法
  • 可以用网络搜索算法来优化学习率和梯度迭代次数
  • fit_intercept=True :是否计算偏置
  • learning_rate=‘invscaling’:学习率
  • ‘invscaling’:学习率算法 包含 “comstant”,“optimal”,‘invscaling’,

对于常数值的学习率可以使用“comstant”==0

max_iter=None,梯度迭代次数
SGDRegressor.coef_:查看回归系数函数

数据处理

梯度下降常用常数

learning_rate = "constant" 指学习率为常数,但是一般常数学习率效果不好,需要使用动态变化的学习率(invscaling)

eta0:一般取值 0.01 ~ 0.001 为宜

神经网络

思想:输入最原始、最基本的数据,通过模型来进行特征工程,进行更高级的特征学习(多个特征值聚合成一个特征值),然后通过传入的数据来确定合适的参数,让模型更好的拟合数据。

激活函数:

  • 作用:增加模型的非线性分割能力,提供鲁棒性(健壮性),缓解梯度消失,加速模型收敛
  • 常用sigmoid:(0-1)、tanh

损失函数:

学习率(leaning rate):

  • 当学习率设置过小时,收敛过程变得十分缓慢。

  • 当学习率设置过大时,梯度可能会在最小值来回震荡,跳过最小值,甚至无法收敛。

参数axis:

  • 表示操作抽
  • axis = 0 :表纵向
  • axis = 1 :表横向

文章作者: Yuukyou
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Yuukyou !
评论
  目录