机器学习笔记
本篇文章主要介绍在学习机器学习中用到的一些方法。
博主博客
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方并不是某个数的平方,因此可以是负值。
评论