zoukankan      html  css  js  c++  java
  • 机器学习——原理篇

    代码实现简单的机器学习

     1 import numpy as np
     2 
     3 # 生成随机权值(无先验经验时一般使用随机权值)
     4 m = np.random.randint(100, size=10)
     5 # 训练数据
     6 x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
     7 # 训练数据对应的期望目标(学习目标) False为奇数,True为偶数
     8 y = np.array([False, True, False, True, False, True, False, True, False, True])
     9 # 阈值(自行设置)
    10 thresh_hold = 52
    11 # 学习率,即变化幅度
    12 alpha = 5
    13 
    14 
    15 #
    16 def active():
    17     print(m)
    18     return m * x
    19 
    20 
    21 def ajust_m(j):
    22     err = 0
    23     right = 0
    24     o_new = active()
    25     o_t = o_new > thresh_hold
    26     for i in range(10):
    27         if o_t[i] != y[i]:
    28             err += 1
    29             if o_t[i]:
    30                 m[i] = m[i] - alpha
    31             else:
    32                 m[i] = m[i] - alpha
    33         else:
    34             right += 1
    35     return right
    36 
    37 
    38 def predict(a):
    39     result = a * m[a - 1]
    40     if result > thresh_hold:
    41         return True
    42     else:
    43         return False
    44 
    45 
    46 for j in range(100):
    47     right = ajust_m(j)
    48     if right == 10:
    49         print('第{}次已经训练成功,停止训练'.format(j + 1))
    50         break
    51     if j == 99 and right != 10:
    52         print('训练了{}次,训练失败!!'.format(j + 1))
    53 
    54 print('', predict(8))

    机器学习简要概念

    A,B表明两个工作地点的收益,A一个小时50¥,B一个小时100¥
    W1,W2是两地工作时间,称为权重,机器学习中要调整的系数,[W1,W2]构成一个二维搜索空间
    T = W1*A + W2*B 是我们的评估函数
    TMax = 650 是期望目标,也是我们的学习目标
    每天工作8小时,每地至少工作1小时,这是学习约束
    
    delta = |T - TMax| 绝对值是我们的评估函数,损失函数(cost,loss)
    delta = 达到什么结果搜索结束,由算法来设计,例如delta=1 搜索结束(搜索结束也称为函数收敛)
    
    在搜索空间中尝试搜索过程中,对W1,W2改变的幅度称为学习率
    

    机器学习词汇

    • 节点
      • predicting a category:预测类别
      • predicting a quantity:预测数值
      • labeled data:是否数据打过标签
    • 回归
      • SGD Regressor:随机梯度下降回归
      • Lasso/ElasticNet Lasso:弹性网络 回归
      • SVR (kernel='linear'):支持向量机回归使用线性函数作为核函数
      • SVR (kernel='rbf'):支持向量机回归使用径向基函数
      • RidgeRegressor:岭回归
    • 分类
      • Linear SVC:线性支持向量机分类
      • Navie Bayes:朴素贝叶斯
      • KNeighbors Classifier:K近邻分类器
      • SVC:支持向量机分类器
      • SGD Classifier:随机梯度下降分类器
      • kernel approximation:核近似方法
    • 聚类
      • MiniBatch KMeans:最小族(束)KMeans
      • KMeans:传统KMeans
      • Spectral Clustering:谱聚类
      • GMM:混合高斯模型
      • VBGMM:VB混合高斯模型
  • 相关阅读:
    [如何构建自己的轮式移动机器人系统·从入门到放弃]机器人底层篇
    Readme.txt
    [MATLAB&SIMULINK] 如何提取并处理Simscape Power System 中powergui的谐波分析数据
    记录2016年12月11日
    [深度强化学习] blog翻译使用Keras与Gym仿真环境进行深度Q学习(DQL)
    使用PARL与Gym仿真环境进行深度Q学习(DQL)
    Telerik控件使用Expression_DarkTheme后引发Combobx下拉问题
    [Win系统][临时方案]系统任务管理器不能使用临时性解决方案
    [Visual Studio]重置开发环境
    WPF中使用DataGrid后,里面的Button的Command不响应的问题
  • 原文地址:https://www.cnblogs.com/siplips/p/9800192.html
Copyright © 2011-2022 走看看