Tagged in

机器学习

Mathematica入门

  • Mathematica中的基本函数可以通过“面板”->数学助手查看
  • Mathematica中,内置函数,使用大写字母表示,如Sin,Cos,如果其中有数值,则用中括号写入如Sin[30 Deg]
  • //有特殊含义,表示对前面所有的数字进行运算,如//Log,表示将前面所有的数字运算完成之后取对数
  • 定义自己的函数
    • 单个参数: f[x_] := x^2
    • 多个参数: g[x_, y_] := (x - y)^2/y

列表

  • 列表用{}描述如{1,2,4,8},也可以表示一个向量
  • 取列表第i个值可以用Part[列表,i]或者列表[[i]]获得
  • 列表生成可以用 …

机器学习数学基础-优化-5

机器学习数学基础-概率论-4【待续】

机器学习数学基础-微积分-3

机器学习数学基础-微积分-2

机器学习数学基础-线性代数-1

《线性代数的本质》学习笔记

开始机器学习 - 监督学习 (5)

模型调参以及评估

模型参数

  • 模型自身参数:通过样本学习得到的参数,如逻辑回归中的权重
  • 超参数(模型框架中的参数,不能通过学习得到的参数): 如kmeans中的k,神经网络的网络层数等。SVM中的c或者kernel都是超参数。一般学习的就是如何调整超参数

调整参数

  • 交叉验证(cross validation):如,要做5折的交叉验证,那么就分成五等分,然后将五个等分每一个等分都做验证集,剩下四个做训练集,来做验证。
  • 网格搜索:在不同的参数调整中,通过循环遍历尝试每一种可能性。
    • sklearn.model_selection.GridSearchCV()这个方法来帮助我们进行网格搜索
    • GridSearchCV默认在最后会重新训练一遍所有的样本,方便我们直接拿到训练好的model
parameters = {'max_depth':[3, 5, 7, 9], 'min_samples_leaf': [1, 2, 3, 4]}
clf = GridSearchCV(DecisionTreeClassifier(), parameters, cv=5, scoring='accuracy …

开始机器学习 - 监督学习 (4)

机器学习问题的分类

  • 监督学习:
    • 分类问题(Classification): 每一个样本预测出样本的类别。相当于学习出来一条线,将样本可以分类出来。
    • 回归问题(Regression): 根据特征来进行预测。但是预测的结果是一个值。分类中的标签是离散的,但是回归为连续的。
  • 无监督学习:
    • 聚类问题(Clustering): 样本都是一个点,是没有标签的。根据样本来划分成几个类或者“簇(cluster)”。要求是每个分组中,这些样本是相似的,但是不同分组中,区别是比较大的。
    • 时序问题: 在时间轴上进行预测。一般可以放到分类或者回归中预测的。只不过之前分类回归是没有顺序的,但是时序问题中,是有顺序的。
  • 强化学习(Reinforcement learning)

机器学习基本步骤

  • Representation:特征表示:获取,特征提取
  • Evaluation:评估

KNN (近朱者赤)

  • 基于样本、实例的方法
  • 无参模型 训练无法训练出他的参数
  • 可以用于分类和回归
  • 步骤:
    • 计算测试样本和所有训练样本的距离 …

开始机器学习 - 数据分析/数据处理 (3)

jupyter中的timeit

  • 在jupyter的 cell行首输入%%timeit可以查看当前cell执行的总时间花费
  • pandas处理csv比import csv处理快很多
def read_csv(file_name):
    with open(file_name, 'r') as f:
        reader = csv.DictReader(f)
        return list(reader)

def read_pd(file_name):
    df = pd.read_csv(file_name)

numpy

ndarray 和 list

  • ndarray的类型必须相同,否则numpy会自动做类型转换
  • ndarray有mean/std等内置函数(std为标准差也就是平均方差standard deviation)
  • ndarray可以用dtype来标志类型
  • ndarray用argmax来获取当前array的最大值

  • np.array([1, 2 …