机器学习
淮南草
这个作者很懒,什么都没留下…
展开
-
SVM
svm对手写识别的一个分类程序手写识别训练中,只训练和识别了数字1 和数字9import numpy as npdef loadDataSet(fileName): dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr = line...原创 2018-07-30 14:52:10 · 208 阅读 · 0 评论 -
利用K-means聚类算法对未标注数据分组
k-均值算法的工作流程: 首先,随机确定k个初始点作为质心;接着,将数据集中的每个点分配到一个簇中,即为每个点找到距离其最近的质心,并将其分配给该质心所对应的簇;然后,每个簇的质心更新为该簇所有点的平均值。再次重新分配数据集中所有的点,如果所有的点被分配的簇和之前一样,即簇的质心不会再改变,则此时的k个簇就是我们所需要的;如果某个点被分配的簇改变了,则分配完所有的点之后重新更新每...原创 2018-08-03 09:56:44 · 854 阅读 · 1 评论 -
SVD(奇异值分解)简化数据
SVD优点:简化数据、去除噪声、提高算法的结果SVD是一个强大的降维工具,我们可以利用SVD来逼近矩阵并从中提取重要特征。通过保留矩阵80%~90%的能量,就可以得到重要的特征并去掉噪声。其中一个重要应用案例就是推荐引擎。协同过滤的核心式相似度计算方法,有很多相似度计算方法都可以用于计算物品和用户之间的相似度。3. 原理——矩阵分解将原始的数据集矩阵data(m*n)分解成三个矩阵...原创 2018-08-01 20:22:12 · 1472 阅读 · 0 评论 -
PCA主成分分析法 简化数据
通过pca可以查看出每个特征的重要性,通过比较可以去除重要性低的特征,减少收集数据的成本示例:该示例可以将数据中的590个特征缩减为6个。pca.py'''Created on 2018年8月1日@author: hcl'''from numpy import *import matplotlib.pyplot as plt# 加载数据def loadDataSet...原创 2018-08-01 20:04:48 · 356 阅读 · 0 评论 -
案例:利用保存svm训练模型 用pickle或者joblib
pickle版本from sklearn import svmfrom sklearn.datasets import samples_generatorfrom sklearn.feature_selection import SelectKBest, f_regressionfrom sklearn.pipeline import make_pipelinefrom sklea...原创 2018-08-06 15:53:27 · 2988 阅读 · 0 评论 -
逻辑回归
学习了机器学习实战和skicit learn上的的逻辑回归算法logistic.py'''Created on 2018年7月28日@author: hcl'''import numpy as npimport timedef loadDataSet(): dataMat = []; labelMat = [] fr = open('testSet.tx...原创 2018-07-28 11:14:05 · 384 阅读 · 0 评论 -
朴素贝叶斯
在调试过程中发现,朴素贝叶斯算法对于训练数据是比较敏感的,个人理解,基本上是通过输入的词条向量乘以类别向量并请求和,与词条向量乘以其他类别的词条向量并求和 之间一个概率值大小的比较。实现的功能1、对词条进行侮辱性留言检测2、实现垃圾邮件的判断navieBray.pyfrom numpy import *import feedparserclass naviebray(...原创 2018-07-27 21:42:29 · 196 阅读 · 0 评论 -
回归大杂烩
输入:import numpy as npimport matplotlib.pyplot as pltfrom sklearn import linear_model,tree,svm,neighbors,ensembledef f(x1, x2): y = 0.5 * np.sin(x1) + 0.5 * np.cos(x2) + 3 + 0.1 * x1 ret...原创 2018-07-27 17:33:23 · 184 阅读 · 0 评论 -
树回归
主要内容:CART算法、回归与模型树、树减枝算法并在最后进行了 回归树、模型树以及标准回归之间的比较CART算法:CART_regression.py'''Created on 2018年8月1日@author: hcl'''from numpy import *def loadDataSet(fileName): ''' 读取一个一tab键为分隔符...原创 2018-07-31 13:18:56 · 239 阅读 · 0 评论 -
分类大杂烩
'''Created on 2018年7月27日@author: hcl'''from sklearn.datasets import load_irisiris = load_iris()def shuffle_in_unison(a, b): assert len(a) == len(b) import numpy shuffled_a = nump...原创 2018-07-27 17:12:50 · 162 阅读 · 0 评论 -
决策树分类算法-ID3
实现的功能: 1、对数值型数据和标称型数据 进行分类 2、可将决策树pickle于txt文件中但是本人在scikit_learn包中 暂时没成功处理标称型数据trees.py'''Created on 2018年7月27日@author: hcl'''from math import logimport operatorimport numpy as np...原创 2018-07-27 16:19:48 · 387 阅读 · 0 评论 -
线性回归
主要内容:线性回归、局部加权线性回归、岭回归和逐步线性回归、预测乐高价格岭回归和逐步线性回归可用于分析数据特征的重要性1、普通线性回归-最小二乘法linear_regression.py'''Created on 2018年7月30日@author: hcl'''from numpy import *def loadDataSet(fileName): ''...原创 2018-07-30 21:27:19 · 336 阅读 · 0 评论 -
分类器性能的度量指标
1、通常我们把分类错误的样本数占样本总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m;相应的,1-a/m称为“精度”(accuracy),即“精度=1一错误率” 2、正确率 = TP/(TP+FP) 召回率 = TP/(TP+FN) 假阳率 = FP/(FP+TN)例如:ROC与AUCRO...原创 2018-07-30 21:07:32 · 1460 阅读 · 0 评论 -
AdaBoost
Adaboost的大概运作流程1:选取某一列中的某一个阈值,作为分类点,并判断分类错误情况2:通过对错分的样本增加权重,对错分样本减少权重3:不断迭代到 最大跌打次数或者误差值为0,保存 最小错误率的单层决策树4:通过最小单层决策树对新样本进行预测分类adaboost.pyimport numpy as npdef buildStump(dataArr,classLa...原创 2018-07-30 20:24:52 · 157 阅读 · 0 评论 -
使用FP-growth算法高效发现频繁项集
基本内容:发现事务数据中的公共模式、FP-growth算法、发现Twitter源中的共现词fp_growth.py'''Created on 2018年8月3日@author: hcl'''class treeNode: #name存放节点名称 #count存放计数值 #nodeLink链接相似元素 #parent存放父节点 #child...原创 2018-08-03 18:01:38 · 442 阅读 · 0 评论 -
KNN分类算法
1:使用机器学习实战中的knn算法对 普通样本进行了分类2:分别使用该算法与scikit_learning中的knn 进行了手写数字的对比,发现scikit_learning分类贼慢实现的功能: 1、对样本特征为[x1,x2,.....,xn-1,y],其中共有n-1个特征,1个y标签 进行knn样本分类部分数据截图:knn.pyimport numpy...原创 2020-02-18 07:48:55 · 351 阅读 · 0 评论 -
使用Apriori算法进行关联分析
主要内容:Apriori算法、频繁项集生成、关联规则生成、投票中的关联规则发现缺点:是在大数据集上可能较慢。当寻找频繁项集时,有两个概念比较重要:支持度和可信度。表1 一个来自Hole Foods天食品店的简单交易清单 交易号码 商品 0 豆奶, 莴苣 1 莴苣,尿布,葡萄酒,甜菜 2 莴苣,尿布,葡萄酒,橙汁 3 莴苣,豆奶,尿布,葡萄...原创 2018-08-03 15:14:19 · 1854 阅读 · 1 评论