机器学习——原理篇
代码实现简单的机器学习
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混合高斯模型
更多精彩