=======机器学习=======
文章平均质量分 86
IvyYin
达则兼济天下
展开
-
MacOS+python2.7搭建tensorflow环境报错问题解决
第一步:安装pip$ sudo easy_install pip第二步:找到合适的安装包url#macOS + python2.7$ export TF_BINARY_URL=http://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl第三步:使用pip安装$ sudo...原创 2018-03-10 10:47:04 · 491 阅读 · 0 评论 -
K近邻法(k-nearest neighbor, KNN)
K近邻法(k-nearest neighbor, KNN)是一种基本分类和回归算法。对于分类问题,其输入为样本的特征向量,输出为样本的类别,可以是多类别;对于回归问题,输出是一个实值。分类时,对于新的无label实例,根据其 k 个最近邻的训练实例的类别,通过多数表决等方式进行预测。k 值的选择、距离度量以及分类决策规则是 k 近邻法的三要素。一、距离度量常用的距离有:欧氏距离:L2(xi,...原创 2018-10-31 11:02:04 · 448 阅读 · 0 评论 -
梯度下降(Gradient Descent)
在求解机器学习模型参数时,即对问题进行优化时,梯度下降是最最常用的方法之一,下面对梯度下降做一个总结。一、梯度在微积分中,对多元函数的变量求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度,比如函数 f(x,y),分别对 x, y 求偏导,得:那么这个梯度组成的向量有什么用呢?从几何意义上讲,就是函数变化增长最快的方向,或者说沿着梯度向量的方向,函数会更快找到最大值,反过来,沿...原创 2018-10-23 21:39:38 · 431 阅读 · 0 评论 -
pandas处理机器学习中的训练数据
1、pandas读取csvneg_data = pd.read_csv('negative.csv')2、查看前10行数据neg_data.head(10)3、查看数据的长度len(neg_data)4、删除某些列,需使用axis=1指定删除的对象是列(axis=0指定的是行),使用inplace = True将删除后的结果替换原来的dataframeneg_d...原创 2018-07-15 11:06:16 · 1080 阅读 · 0 评论 -
使用sklearn训练xgboost模型
xgboost是提升树方法的一种,算法由GBDT改进而来,在计算时也采用并行计算,速度更快。sklearn中提供分类和回归的xgboost模型,本文对二分类问题采用xgboost进行训练。一、数据准备1、样本正样本:1.5W负样本:10W5个特征2、分训练集和测试集import pandas as pdfrom sklearn.model_selection im...原创 2018-07-17 23:28:54 · 19328 阅读 · 6 评论 -
机器学习算法常用评估指标
在认识机器学习算法的常用评估指标之前,先明确一下几个概念的定义:TP(True Positive):正样本,预测为正样本FP(False Positive):正样本,预测为负样本TN(True Negative):负样本,预测为负样本FN(False Negative):负样本,预测为正样本如果觉得不好理解,请注意其英文翻译,应该更容易理解。那么下面介绍我们常用的几个指标。一...原创 2018-05-27 21:21:55 · 3401 阅读 · 0 评论 -
t-SNE算法
t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffrey Hinton在 08 年提出来。t-SNE 是一种非线性降维算法,非常适用于高维数据降维到 2 维或者 3 维,进行可视化。在实际应用中,t-SNE很少用于降维,主要用于可视化,可能的原因有以下几...原创 2018-05-13 14:27:54 · 31163 阅读 · 8 评论 -
机器学习中的常见问题
1、过拟合的解决方法更多的训练集;加入正则化2、L1正则化和L2正则化的区别L1是取向量每个原色的绝对值和,L2是取向量每个元素的平方和的平方根;L1正则化是截断效应,它可以使一些特征的系数变小,甚至可以让一些绝对值较小的系数直接变成0;L2正则化在不抛弃人任何一个特征的情况下,缩小特征的系数,使得模型相对比较稳定,L2正则化会保留更多的特征3、SVM为什么引入对偶问...原创 2018-04-26 22:03:37 · 283 阅读 · 0 评论 -
机器学习实战之使用 scikit-learn 库实现 svm
有关 svm 的理论知识,在博客支持向量机(SVM)入门理解与推导中已有详细介绍,svm的特性:训练好的模型的算法复杂度由支持向量的个数决定,而不是由数据的维度决定,所以 svm 算法不太容易产生 overfitting;svm 训练出来的模型完全依赖于支持向量,即使训练集中所有的非支持向量都被去除,重复训练过程,结果仍然是一样的模型;一个 svm 如果训练得出的支持向量比较少,那么模...原创 2018-04-04 11:53:03 · 4265 阅读 · 0 评论 -
机器学习实战之线性回归算法
#!/bin/python#coding=utf-8# 实现线性回归import numpy as npimport random#自动生成数据集,numPoints是行数#x是测试数据集,2维的向量,y是labeldef genData(numPoints,bias,variance): x = np.zeros(shape=(numPoints,2)) y =...原创 2018-04-11 10:01:34 · 324 阅读 · 0 评论 -
支持向量机(SVM)入门理解与推导
一、简介支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;当训练样本线性不可分时,通过核技巧和软间隔...原创 2018-03-28 17:03:05 · 182976 阅读 · 48 评论 -
机器学习实战之神经网络用于手写数字识别
有关神经网络(NeuralNetwork)的理论介绍,将在后续章节中进行整理,为了对神经网络有一个直观的理解,本篇博文使用神经网络实现手写数字识别项目,使用 logistic 函数作为激活函数,代码如下,注释比较清楚,不再赘述:#!/bin/python#coding=utf-8# 实现神经网络import numpy as npfrom sklearn.datasets impo...原创 2018-04-10 17:34:50 · 497 阅读 · 0 评论 -
机器学习实战之使用 scikit-learn 库实现 knn
KNN 全称为 k nearest neighbors,是一个分类算法,无需训练,简单易于理解,但需要遍历整个数据集,需要大量的空间,计算量大。其思想如下:对未知类别的数据依次执行以下操作:计算已知类别数据集中的点与当前点之间的距离(一般采用欧式距离);将距离按照递增顺序排序;选取距离最小的前 k 个点;计算这 k 个点所属类别的出现概率;将概率最大的类别作为当前点的类别;...原创 2018-04-03 11:31:45 · 422 阅读 · 0 评论 -
机器学习实战之使用 scikit-learn 库实现决策树
数据如图所示: 1、数值转换:构造决策树之前,需要将数据转化成数值形式,对了类别 label,yes 和 no 分别为 1, 0;对了样本数据,比如第一行属性 age,它有 youth middle_aged 和 senior 三类,那么我们可以把 youth 写成 [1,0,0],middle_aged 写成 [0,1,0]的向量形式。python 提供了专门转换属性值为数值向量的方法...原创 2018-04-03 10:27:25 · 686 阅读 · 0 评论 -
机器学习实战之决策树算法
决策树算法目前最流行的有ID3, C4.5, CART三种,其中C4.5是由ID3改进而来,用信息增益比代替ID3中的信息增益,ID3算法不能直接处理连续型数据,事先要把数据转换成离散型才可以操作,C4.5算法可以处理非离散型数据,而且可以处理不完整数据。CART算法使用基尼指数用于特征选择,并在树构造过程中进行剪枝。在构造决策树的时候,那些挂着几个元素的节点,不考虑最好,不然容易导致overfi...原创 2018-03-27 09:53:54 · 312 阅读 · 0 评论 -
决策树
一、简介决策树是一种基本的分类与回归方法,其主要优点是模型具有可读性,分类速度快。决策树的学习通常包括三个步骤:特征选择、决策树生成和决策树剪枝,常用的决策树算法有ID3, C4.5 和 CART,下面一一介绍。二、ID3算法1、特征选择特征选择在于选取对训练数据具有分类能力的特征,直观地讲,特征选择的目的是确定训练数据集中哪一个特征作为当前构造决策树的内部节点,ID3 算法用...原创 2018-03-30 11:59:03 · 303 阅读 · 0 评论 -
机器学习实战之k-近邻算法
简介: k-近邻算法是一种分类算法,无需训练算法思想:对未知类别的数据集合中的每一个点执行以下操作:计算已知类别数据集(训练集)中的点与当前点的距离;将距离按照递增顺序排列;选取距离最小的k个点;确定这k个点的所属类别,计算各类别出现的概率;将概率最大的类别作为当前点的类别;原始kNN的python实现:def KNN(inX, dataSet, labels, k...原创 2018-03-23 15:32:55 · 342 阅读 · 0 评论 -
逻辑回归(Logistic Regression)入门理解与推导
逻辑回归(LR)是一个分类算法,它可以处理二元分类问题和多元分类问题。在介绍LR之前,先回顾一下线性回归(Liner Regression)。一、线性回归线性回归是一个回归模型,给定数据集 D={(x1,y1),(x2,y2),...,(xm,ym)}D = \{ ({x_1},{y_1}),({x_2},{y_2}),...,({x_m},{y_m})\}D={(x1,y1),(x2,...原创 2018-10-30 11:46:33 · 986 阅读 · 0 评论