本篇文章主要介绍在学习机器学习中用到的一些方法。

博主博客

NumPy

import numpy
  • numpy.mean 均值
  • numpy.median 中值
  • numpy.std 标准差
  • numpy.var 方差
  • numpy.percentile 百分位数
  • numpy.random.uniform 随机数
  • numpy.random.normal 正态分布数据
  • numpy.poly1d 建立多项式模型
  • numpy.polyfit 返回一个包含系数的数组
  • numpy.linspace 返回指定范围的点
  • map 根据字典转换值

SciPy

from scipy import stats
  • stats.mode 众数

线性回归

scipy.stats.linregress(x, y=None, alternative='two-sided')

参数:

  • x,y 两组测量值
  • alternative
    • two-sided 回归线的斜率非零
    • less 回归线的斜率小于零
    • greater 回归线的斜率大于零

返回值:

  • slope float 回归线的斜率
  • intercept float 回归线的截距
  • r float 皮尔逊相关系数
  • p float 用于假设检验
  • std_err float 在残差正态性假设下, 估计截距的标准误差
slope, intercept, r, p, std_err = stats.linregress(x, y)

def calcY(x):
  return slope * x + intercept
  
  model = list(map(calcY, x))

matplotlib

import matplotlib.pyplot as plt
import matplotlib.image as pltimg
  • plt.hist 绘制直方图
  • plt.show 显示图表
  • plt.scatter 绘制散点图
  • plt.plot 绘制直线
  • pltimg.imread 读取图片数据
  • plt.imshow 设置需要显示的图片数据

sklearn

from sklearn.metrics import r2_score
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
  • r2_score 计算多项式 R-Squared
  • linear_model.LinearRegression 创建一个线性回归对象
  • linear_model.LinearRegression().fit 填充回归对象
  • linear_model.LinearRegression().predict 使用回归对象预测结果
  • StandardScaler 返回一个带有转换数据集方法的 Scaler 对象
  • scale.fit_transform 标准化转换。z = (x - u) / s 其中 z 是新值,x 是原始值, u 是平均值, s 是标准差
  • DecisionTreeClassifier 创建决策树对象
  • DecisionTreeClassifier().fit 填充决策树对象
  • tree.export_graphviz 获取决策树的点数据

pandas

import pandas
  • pandas.read_csv 把 csv 文件读成数组

pydotplus

import pydotplus
  • pydotplus.graph_from_dot_data 从点数据中获取图形
  • pydotplus.graph_from_dot_data().write_png 把图形绘制成 png 图片

R平方(R-Squared)

R方的名字是 coefficient of determination,另一个名字是 Nash–Sutcliffe model efficiency coefficient。给定一系列真值 y_i 和对应的预测值 \hat{y}_i,R 方的定义为

R^2=1-{{\Sigma_i(\hat{y}_i-y_i)^2} \over {\Sigma_i(y_i-\overline{y})^2}}

R 方的含义是,预测值解释了 y_i 变量的方差的多大比例,衡量的是预测值对于真值的拟合好坏程度。通俗理解,假定 y_i 的方差为 1 个单位,则 R 方表示"使用该模型之后, y_i 的残差的方差减少了多少"。比如 R 方等于 0.8,则使用该模型之后残差的方差为原始 y_i 值方差的 20%。

  • R方=1:最理想情况,所有的预测值等于真值。
  • R方=0:一种可能情况是"简单预测所有y值等于y平均值",即所有 \hat{y}_i 都等于 \overline{y} (即真实y值的平均数),但也有其他可能。
  • R方<0:模型预测能力差,比"简单预测所有y值等于y平均值"的效果还差。这表示可能用了错误模型,或者模型假设不合理。
  • R方的最小值没有下限,因为预测可以任意程度的差。因此,R方的范围是 (-\infty,1]
  • 注意:R方并不是某个数的平方,因此可以是负值。

参考文献