机器学习基本概念与知识
本文主要介绍机器学习的基本概念与知识,文字比较简洁内容并不长,主要用于记录学习内容,方便之后复习
主要任务
分类(classification): 将实例数据划分到合适的类别中。
应用实例: 判断网站是否被黑客入侵(二分类 ),手写数字的自动识别(多分类)
回归(regression): 主要用于预测数值型数据。
应用实例: 股票价格波动的预测,房屋价格的预测等。
监督学习(supervised learning)
特点:训练样本同时具有特征与目标变量的机器学习算法。
特征通常是训练样本集的列,它们是独立测量得到的。
目标变量: 目标变量是机器学习预测算法的测试结果。
监督学习需要注意的问题:
偏置方差权衡
功能的复杂性和数量的训练数据
输入空间的维数
噪声中的输出值
非监督学习(unsupervised learning)
特点:训练样本没有目标变量,即是指在没有类别信息情况下,通过对所研究对象的大量样本的数据分析实现对样本分类的一种数据处理方法。
非监督学习包括的类型:
聚类: 在无监督学习中,将数据集分成由类似的对象组成多个类的过程称为聚类。
密度估计: ...
使用numpy实现k-means聚类算法
k-means 算法基础原理
本文注重对 k-means 算法的实现作出分析,基础原理不作赘述。
k-means 算法的特点1. k-means 算法的基本概念:
k 代表分为几个簇
means 表示寻求新质心点的时候采用求均值的方法
2. k-means 算法的特点:
k-means 算法与 knn 算法类似,都是需要“聚类”
k-means 算法是无监督学习算法的一种
k-means 算法的实现步骤:
随机选取 K 个对象,并以它们为质心;
计算数据集样本点到质心的距离;
根据样本点距离质心的距离将其分簇(类),距离哪个近,划分到哪个簇(类);
以簇内所有样本点的均值重新计算质心,,然后重复第二步,直到划分的簇(类)不在变化后停止。
k-means 算法代码实现模块的导入与 K 均值聚类算法类的定义123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import random
import numpy as np
from matplotlib i ...
使用Numpy实现k-Nearest-Neighbor算法
KNN 算法基本原理kNN 算法的核心思想是用距离最近的 k 个样本数据的分类来代表目标数据的分类。 用俗话来说就是 “近朱者赤,近墨者黑”,采用距离最近的 k 个样本中占比最高的类别来代表测试数据的类别。
注意 KNN 算法仍然是有监督学习算法的一种
KNN 算法的特点
优点:
监督学习:可以看到,kNN 算法首先需要一个训练样本集,这个集合中含有分类信息,因此它属于监督学习。
通过计算距离来衡量样本之间相似度,算法简单,易于理解和实现。
对异常值不敏感
缺点:
需要设定 k 值,结果会受到 k 值的影响,不同的 k 值,最后得到的分类结果不尽相同。k 一般不超过 20。
计算量大,需要计算样本集中每个样本的距离,才能得到 k 个最近的数据样本。
训练样本集不平衡导致结果不准确问题。当样本集中主要是某个分类,该分类数量太大,导致近邻的 k 个样本总是该类,而不接近目标分类。
KNN 算法的流程
一般情况下,kNN 有如下流程:
收集数据:确定训练样本集合测试数据;
计算测试数据和训练样本集中每个样本数据的距离;
常用的距离计算公式:
欧式距离计算公式:d(x, ...
Python实现决策树(Decision Tree)算法
决策树算法基础原理分析信息的不纯度(决定决策树分支的指标)
不纯度是在决策树中衡量特征分裂优异性的最主要的指标,用于衡量样本在根据某一特征的分类标准分裂后,样本是否被正确分类的准确程度。
主要有 3 种计算方式,分别对应了 3 类决策树:
决策树类别
不纯度计算方式
ID3
信息增益(Information Gain)
C4.5
信息增益率(Information Gain Ratio)
CART
基尼系数(Gini index)
信息熵的计算信息熵的计算公式为: $ H(D)=-\displaystyle\sum_{i=1}^n p_i log_2 p_i $ 其中$ n $为样本D的类别数,$ p_i $为该样本所占样本总数的比例
信息增益的计算信息增益的计算公式:$ g(D,A)=H(D)-H(D|A) $ 其中,$ H(D|A) $代表在以$ A $为标准分类后的所有样本的信息熵之和
信息增益率信息增益率的计算公式: $$ IGR=\frac{g(D,A)}{H(A)} $$ 其中 $ H(A) $代表 $ A $
基尼系数基尼 ...
Numpy实现逻辑回归(Logistic Regression)算法
前言:本文旨在对如何使用 numpy 实现逻辑回归拟合的过程做具体分析,有关逻辑回归原理部分不做过多论述。
数据集准备准备用于二分类的数据集,可直接复制到对应的 txt 文件-0.017612 14.053064 0
-1.395634 4.662541 1
-0.752157 6.538620 0
-1.322371 7.152853 0
0.423363 11.054677 0
0.406704 7.067335 1
0.667394 12.741452 0
-2.460150 6.866805 1
0.569411 9.548755 0
-0.026632 10.427743 0
0.850433 6.920334 1
1.347183 13.175500 0
1.1 ...
线性回归 (Linear Regression)
利用 Numpy 实现简单的机器学习算法
线性回归(Linear Regression) 可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。
前言
线性回归作为高中数学统计题比较重要的内容,先对其原理与推导过程不做详细讨论,重点通过代码来运用 python 模块实现线性回归算法。
线性回归算法的简单介绍线性模型:给定由 d 个属性描述的示例,线性模型试图学得一个通过属性的线性组合来进行预测的函数。
线性回归试图学得一个线性模型以尽可能准确的预测实值输出标记,公式: $ f(x) = w^Tx+b $$ f(x_i) = wx_i + b $,使得 $ f(x_i) ≈ y_i $
实现线性回归算法的目标与方法我们的任务就是求出 w 和 b,可用均方误差最小化的方法,基于均方误差最小化来进行模型求解的方法称为最小二乘法,在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本数据点到达直线的欧氏距离最小。总距离是所有数据点的垂直距离的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。
代码具体实现过程定义线性回归函数
np. ...
关于cloudflare对网站搭建的使用
为 hexo 博客添加自定义域名
域名注册方面不做赘述,下面详细讲述利用 cloudflare 中 DNS 解析域名至 hexo 博客站的过程
cloudflare 中域名的解析
注册 cloudflare 账号(过程比较简单就不放图了,推荐使用 gmail 或者 outlook 邮箱)
cloudflare 中添加站点
注意此处添加的站点为你所购买的域名
添加站点
注意你需要在域名管理网站中设置好对应的 nameserver, 每个人分配的服务器都不一样,记得到注册域名的网站修改为对应的 nameserver!!!
填写 DNS 解析域名的地址
将域名添加到 github 中
进入到 github 项目中的 settings 中的 pages 中
此时项目 main 分支里会出现 CNAME 文件,内容为你的域名(如 xxx.com)
最后在本地的博客文件夹中hexo/source文件夹下新建 CNAME 文件,内容也为你所拥有的域名、
最后输入域名博客站就可以正常访问啦!