没有合适的资源?快使用搜索试试~ 我知道了~
这是一位不知名的大二学生整理的学习笔记,如有需要自取
资源推荐
资源详情
资源评论
智能2101张世博(markdown笔记导出无法显示运行结果)
第一章 机器学习概述
机器学习的基本概念
机器学习:机器学习是一种计算机程序,它可以让系统在未经人为编辑的情况下,具有经验(数
据)中自动学习并自我改进的能力
ps:机器学习是人工智能的一个子分类
相关知识
监督学习和无(非)监督学习
监督学习是通过现有训练数据集(以下简称训练集)进行建模,再用模型对新的数据样本进行分类
或者回归分析的机器学习算法。
无监督学习则是在没有训练集的情况下,对没有标签的数据进行分析并建立合适的模型,以便给出
问题解决方案的方法。
分类和回归
分类( classification )和回归( regression )都是监督学习中的概念。分类预测样本属于哪个
类别,而回归预测样本目标字段的数值。
数据集和特征
数据集( dataset )是预测系统的原材料,用于训练机器学习模型的历史数据,数据集由若干条数
据组成,而每条数据又包含若干个特征( feature )。特征是描述数据集中每个样本的属性,有的
时候也袯称为“字段”。
特征工程
特征工程是创建预测模型之前的过程,在这个过程中我们将对数据的特征进行分析清理和结构化。
过拟合和欠拟合
当学习器把训练样本学的“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在
样本都会具有的一般性质,这样就会导致泛化性能下降,这种现象称为过拟合。
欠拟合是指对训练样本的一般性质尚未学好。在训练集及测试集上的表现都不好。
第二章 机器学习工具的安装和使用
略(pandas见笔记pandas)
第?章(讲的太乱了跟着记)
K最近邻算法:
原理:
k最近邻 (k-Nearest Neighboor,kNN) 学习是一种常用的监督学习方法。其原理非常简单: 对于
给定测试样本,基于指定的距离度量找出训练集中与其最近的k个样本,然后基于这k个“邻居“的信
息来进行预测。通常,在分类任务中用的是“投票法”,即选择k个“邻居”中出现最多的类别标记作为
预测结果,在回归任务中使用“平均法”,即取k个邻居的实值输出标记的平均值作为预测结果;还可
根据距离远近进行加权投票或加权平均,距离越近的样本权重越大。
思想:
是寻找与待分类的样本在特征空间中距离最近的K个已标记样本(即K个近邻),以这些样本的标记为
参考通过投票等方式,将占比例最高的类别标记赋给待标记样本.
通俗易懂注释:
就是给一个测试样本,训练完后随意选择一个点,然后会向最近的(一定距离内或一定数量内)的
点进行统计,选择频率最高的类型标记给样本。
K最近邻:
#导入必要的库
from sklearn.datasets import make blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
#生成一个数据集
data = make_blobs(n samples=100, centers =2,random state=9)
#将特征和标签赋值给X和y
X,y = data
#使用散点图进行可视化
plt.scatter(X[y==1,0],X[y==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(X[y==0,0], X[y==0.1],cmap=plt.cm.spring, edgecolor='k',marker='o')
#显示图像plt.show0)
KNN:
朴素贝叶斯:
英国学者贝叶斯1763年提出贝叶斯定理,是关在于随机事件A和B的条件概率P(A)和P(B)的一则定
理。其中P(A|B)是在B发生的情况下A发生的可能性,P(BA)是在A发生的情况下B发生的可能性。
1、朴素贝叶斯算法是基于贝叶斯定理,在假设“所有特征都互相独立”的情况下,根据先验概率和
修正因子对后验概率进行估计的一种算法
2、朴素贝叶斯算法的特点是: 原理简单、易于实现、分类过程中效率高、时间花费少
3、常见的朴素贝叶斯算法有3种,具体包含: (1)伯努利朴素贝叶斯,它适合特征符合伯努利分布的
数据集。 (2)高斯朴素贝叶斯,它适合特征大致符合高斯分布(或可以转换为高斯分布)的数据集,
同时在样本数量较大的数据集中表现相对更好 (3)多项式朴素贝叶斯,它适合特征符合多项式分布
(或可以转换为多项式分布)的数据集目小样本的数据集中表现也不差
公式
给定某系统的若干样本X,计算该系统的参数,即:
#导入make_regression数据集生成器
from sklearn.datasets import make regression
#生成特征数量为1,噪音为40的数据集
X,y = make_regression(n_features=l,n _informative=l,noise=30,random_state=5)
#用散点图将数据点进行可视化
# plt.scatter(X,y, c='b',edgecolor='k')
# plt. show()
#导入用于回归分析的KNN模型
from sklearn.neighbors import KNeighborsRegressor
reg = KNeighborsRegressor()
#用KNN模型拟合数据
reg.fit(X,y)
#把预测结果用图像进行可视化
z = np.linspace(-2.5,2.5,200).reshape(-1,1)
plt.scatter(X,y, c='b', edgecolor='k')
plt.plot(z,reg.predict(z),c='r',linewidth=3)
#向图像添加标题
plt.title('KNN Regressor')
plt. show()
P(θ):没有数据支持下,日发生的概率:先验概率。 P(θ|x): 在数据X的支持下,日发生的概率:后验概
率。 P(x|θ): 给定某参数日的概率分布:似然函数。
PS:给定A和B是两个事件,若有P(AB)= P(A)P(B)则称事件A和B相互独立。 A和B独立,则
P(A|B)= P(A)
代码:
整理:
核心:
模型得分:
#导入pandas
import pandas as pd
#读取保存好的csv文件,路径和文件名换成你自己的
data = pd.read csv( '水果.csv',encoding = 'gbk')
#查看是否读取成功
data
data['大小']=data['大小'].replace({'大':1,'小':0})
data['颜色']=data['颜色'].replace({'红色':1,'青色':0))
data['形状']=data['形状'].replace({'圆形':1,'非规则':0})
data['好果']=data['好果'].replace({'是':1,'否':0))
data
#导入伯努利朴素贝叶斯
from sklearn.naive_bayes import BernoulliNB
#定义好样本特征x和分类标签y
X= data.drop(['好果'],axis = 1)
y = data['好果']
#创建一个伯努利朴素贝叶斯分类器
clf = BernoulliNB()
#由于样本数量很少,这里不拆分为训练集和验证集
#使用x和y训练分类器
clf.fit(X,y)
#验证分类器的准确率
clf.score(X,y)
#导入数据集生成工具
from sklearn.datasets import make_blobs
#导入数据集拆分工具
from sklearn.model_selection import train_test_split
剩余17页未读,继续阅读
资源评论
hello__D
- 粉丝: 8
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功