![](https://img-blog.csdnimg.cn/20210827024415138.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
机器学习
初步学习,涉及的文档请在我的上传资源查找
侬本多情。
数据科学与大数据技术专业在读生,请大家多指教。
展开
-
卷神经初步
import tensorflow.compat.v1 as tf# import tensorflow as tftf.compat.v1.disable_eager_execution()import numpy as npimport matplotlib.pyplot as plt # 生成-0.5到0.5间均匀发布的200个点,将数据变为二维,200行一列的数据x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 生成一些噪音原创 2021-09-12 12:14:41 · 120 阅读 · 0 评论 -
SVM非线性分类案例
import numpy as npimport matplotlib.pyplot as plt#读取数据dataSet = np.genfromtxt('ex2data2.txt',delimiter=',')# print(dataSet)# x1 = dataSet[:,2]x_data = dataSet[:,:-1]y_data = dataSet[:,-1]def plot(): plt.scatter(x_data[y_data==0,0],x_data[y_data原创 2021-09-12 12:13:24 · 515 阅读 · 0 评论 -
支持向量机(SVM)
SVM,中文名叫支持向量机。在深度学习出现以前,它是数据挖掘的宠儿,SVM被认为机器学习近十几年最成功,表现最好的算法;SVM具有十分完整的数据理论证明,但同时理论也相当复杂。SVM既可以用于回归也可以用于分类问题。SVM的英文全称是Support Vector Machines,我们叫它支持向量机。支持向量机是我们用于分类的一种算法。让我们以一个小故事的形式,开启我们的SVM之旅吧。在很久以前的情人节,一位大侠要去救他的爱人,但天空中的魔鬼和他玩了一个游戏。魔鬼在桌子上似乎有规律放了两种颜色的球原创 2021-09-12 11:31:33 · 9327 阅读 · 4 评论 -
主成分分析案例
利用 PCA 对半导体制造数据降维数据集secom.data是半导体数据集,该数据集总共590个特征,要求利用pca算法对数据(1)对数据清洗,清洗的方法就是将每个特征里取值为null值的用该特征的平均值代替。(2)对清洗后的数据利用pca降维,只保留20个主成分。得到降维后的数据,以及前20个主成分对应的方差占总方差的百分比并画出示意图。注:请使用sklearn中的pca进行降维import numpy as npnp.set_printoptions(suppress=True)data原创 2021-09-12 11:08:34 · 833 阅读 · 0 评论 -
主成分分析(PCA)
文章目录1. PCA降维原理协方差协方差矩阵数据预处理降维PCA处理步骤2.降维数据恢复3.案例Sklearn中PCA的使用方法在数据分析研究中,人们为了尽可能完整地搜集信息,对于每个样本往往要观测它的很多项指标,少者四、五项,多则几十项,这些指标之间通常不是相互独立而是相关的。因此,从统计分析或推断的角度来说,人们总是希望能把大量的原始指标组合成较少的几个综合指标,从而使分析简化。例如,一个人的身材需要用好多项指标才能完整地描述,诸如身高、臂长、腿长、肩宽、胸围、腰围、臀围等,但人们购买衣服时一般只用原创 2021-09-12 11:06:19 · 5142 阅读 · 0 评论 -
DBSCAN算法案例2
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.cluster import DBSCANdataS = np.genfromtxt('testSet.txt')plt.scatter(dataS[:,0],dataS[:,1])plt.show()#建立模型,其中eps代表距离阀值,min_samples代表核心对象在eps领域的样本数阀值#dbscan = DBSCAN(eps=1,min_samples=4)原创 2021-09-12 10:47:36 · 1248 阅读 · 1 评论 -
DBSCAN算法案例1
案例:第一步:使用sklearn的make_moons生成如下数据,要求使用合适的聚类算法DBSCAN算法进行聚类分类,选择合适的参数eps,min_samples,得到比较好的聚类效果,并进行可视化。第二步:用K-means算法对上述的数据集再做聚类分析,并进行可视化(每个聚类的质心也要画出来),并对比两种聚类算法的效果。注:make_moons是用于生成两个交错半圆from sklearn.datasets import make_moonsimport matplotlib.pypl原创 2021-09-12 10:46:23 · 408 阅读 · 0 评论 -
DBSCAN算法
1.DBSCAN1.基于密度的聚类算法-DBSCAN如下的样本点,由样本点的分布可知,理想状态下,是把这些样本点分成四个聚类(四簇),即下图所示:但是例子中的样本点,如果采用K-means算法进行聚类分析,得到的聚类结果如左图所示(右图是使用DBSACAN算法得到的结果):K-means算法:例子中的问题,我们发现使用K-Means算法已经不再适用,因为K-means算法是基于距离度量的一种算法,K-means的理想状态就是聚完类后,每个点都能离所属簇的质心距离最近。(如果去掉外面的圈圈,这原创 2021-09-12 10:41:23 · 288 阅读 · 0 评论 -
岭回归(Ridge Regression)和Lasso回归
1、岭回归(Ridge Regression)标准线性回归(简单线性回归)中:如果想用这个式子得到回归系数,就要保证(X^TX)是一个可逆矩阵。下面的情景:如果特征的数据比样本点还要多,数据特征n,样本个数m,如果n>m,则计算(XTX)−1会出错。因为(X^TX)不是满秩矩阵(行数小于列数),所有不可逆。为了解决这个问题,统计学家引入了岭回归的概念:λ为岭系数, I为单位矩阵(对角线上全为1,其他元素为0)。单位矩阵为满秩矩阵,乘以λ仍然为满秩矩阵。岭回归的代价函数:附:正则化原创 2021-09-11 09:54:45 · 26730 阅读 · 0 评论 -
欠拟合、过拟合以及正则化
欠拟合、过拟合1.欠拟合、过拟合下面通过图示,来形象的解释欠拟合、过拟合的概念:(1)第一种模型过于简单,没有很好的扑捉到数据的特征。(2)第二种模型就比较好,能够扑捉到数据的特征(3)第三种模型过于复杂,降低泛化能力形象的解释一下:你想讨好某个人,太不用心(很多事都没有关心到),肯定讨好不了,所以这时候要多下功夫啦,但是有时候太用心啦,他的喜好你都了如指掌,讨好成功。你根据自己讨好这个人的经验去讨好其他人,结果可能适得其反,因为你原先了解的这个人的喜好,并不适用其他人。欠拟合:首先欠拟合原创 2021-09-11 09:38:04 · 640 阅读 · 0 评论 -
聚类分类案例
01.根据数据集testSet2.txt,利用sklearn里的Kmeans算法完成聚类分类,并画出图形。import numpy as npfrom sklearn.cluster import KMeansimport matplotlib.pyplot as plt#载入数据dataSet=np.genfromtxt('testSet2.txt')plt.scatter(dataSet[:,0],dataSet[:,1],c='r')#建立模型KM=KMeans(n_cluster原创 2021-09-09 22:20:55 · 584 阅读 · 0 评论 -
聚类算法初步
无监督学习(也有人叫非监督学习,反正都差不多)则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本(训练集),而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)无监督学习里典型的例子就是聚类了。聚类的目原创 2021-09-09 22:18:36 · 237 阅读 · 0 评论 -
三种回归算法对模型训练测试
数据集abalone.txt,记录了鲍鱼(一种介壳类水生动物)的年龄,鲍鱼年龄可以从鲍鱼壳的层数推算得到。前几列是样本点的特征数据,最后一列是鲍鱼的年龄。请分别使用标准线性回归(最小二乘)、岭回归和lasso回归对模型训练,并求出三种模型的分值(分值即????^????(决定系数))import numpy as npimport matplotlib.pyplot as pltfrom sklearn import linear_modelfrom sklearn.model_selecti原创 2021-09-09 21:58:55 · 495 阅读 · 0 评论 -
线性回归拟合案例
01.根据数据集ex0.txt,画出样本点。并根据线性回归画出拟合直线。注:可以采用sklearn里面的线性回归算法也可以自己写线性回归算法import numpy as npimport matplotlib.pyplot as pltdataSet=np.genfromtxt('ex0.txt')x_data=dataSet[:,:-1]#最后一列是因变量y的真实值y=theta∧Tx(x称为自变量)y_data=dataSet[:,-1]def plot(): plt.scat原创 2021-09-09 21:52:06 · 902 阅读 · 0 评论 -
Logistic回归案例代码展示2
01.数据集ex2data1.txt,前两列是两个特征(第一列成绩1,第二列成绩2),最后一列是类别(0代表不被录取,1代表被录取),利用线性逻辑回归算法训练数据集,画出决策边界.注:逻辑回归算法也可以直接调用sklearn里的逻辑回归算法。import numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import原创 2021-09-08 21:09:33 · 174 阅读 · 0 评论 -
Logistic回归案例代码展示
01.由数据集testSet.txt,求出回归方程????=????^????????,画出决策边界。02.由上述训练集确定回归方程参数,预测新的样本点;现在给定一个新的样本点,特征为(0.516704,5.920334),根据Logistic回归分类预测该样本点的类别;(注:预测函数不知道怎么定义的请参照课本p86的函数classifyVector)附:如果想要核对分类结果的同学可以在画出决策边界的图里画出这个点,看看这个点是在决策边界的上面(类别1)还是下面(类别0)。import num原创 2021-09-08 21:07:20 · 476 阅读 · 0 评论 -
Logistic回归案例
案例1现在有100个样本点,部分数据截图如下:该数据前两列为特征数据,最后一列为标签因为只有两个特征,我以第一个特征作为横坐标的值,以第二个特征作为纵坐标的值。图像如下:现在我要找到决策边界(找到最佳的θ)对未知样本点进行预测分类案例1-线性逻辑斯蒂回归分类线性逻辑斯蒂-易错点的强调(1)数据的预处理-添加偏置项为每一个样本点添加一个偏置项,即添加1;(2)利用梯度下降法求解最优的回归参数numpy中数组和矩阵的区别numpy中数组和矩阵的区别:matrix是array的分支原创 2021-09-08 21:02:00 · 1930 阅读 · 0 评论 -
Logistic回归-分类
机器学习中常用的导公式和迹公式sigmoid函数Sigmoid/Logistic Function:分类思想决策边界-线性决策边界(decision boundary),所谓决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)决策边界-非线性Logistic回归logistict回归分类采用的是最优化算法.其做法就是通过迭代的方法不断调整原创 2021-09-08 20:52:30 · 510 阅读 · 0 评论 -
TF-IDF简单预处理数据
计算词汇的TF-IDF的方法:(1)第一种方法是在用CountVectorizer类向量化之后再调用TfidTransformer类进行预处理(2)第二种方法是直接用TfidfVectorizer完成向量化与TF-IDF预处理from sklearn.feature_extraction.text import TfidfVectorizer#特征值提取text = ["You may be out of my sight, but never out of my mind.", "L原创 2021-09-04 10:42:33 · 339 阅读 · 0 评论 -
初步TF-IDF算法
TF-IDF算法在自然语言处理中非常重要的算法,用于计算一个词汇在文本中的重要性。TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency,简写为TF),IDF意思是逆文本频率指数(Inverse Document Frequency),它与一个词的常见程度成反比。注:TF-IDF是一种统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。TF原创 2021-09-04 09:59:39 · 243 阅读 · 1 评论 -
sklearn中的朴素贝叶斯
import numpy as npfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import classification_report,confusion_matrix#性能指标(Metrics)是衡量一个模型好坏的关键#sklearn中的classification_report函数用于显示主要分类指标的文本报告from sklearn原创 2021-09-03 18:58:40 · 158 阅读 · 0 评论 -
机器学习模型评估指标
机器学习最常见的模型评估指标,其中包括:Precision(精确度)Recall(召回率)F1-score(F1值)PRC曲线ROC和AUCAccuracy(精度、准确率)和Error Rate(错误率)是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。对于分类模型f和大小为n的测试集D,Accuracy(精度)的定义为:Accuracy = 分对的样本点个数/总的测试的样本个数混淆矩阵(confusion matrix)对于大部分二分类问题,尤其是不平衡数原创 2021-09-03 18:52:52 · 906 阅读 · 0 评论 -
贝叶斯分类器以及交叉法的运用
利用贝叶斯分类器对模型进行垃圾邮件分类(email文件)以及利用简单交叉法计算模型的错误率(划分数据集时20%作为测试集)import numpy as npdef createVocabList(dataSet): vocabSet=set([]) for document in dataSet: vocabSet=vocabSet|set(document) return list(vocabSet)#myvocabList=createVocabList原创 2021-09-03 18:12:02 · 179 阅读 · 0 评论 -
基于朴素贝叶斯分类的恶意言论分类简单测试
若结果有误,请指出噢#1找到所有特征import numpy as np#from numpy import *def loadDataSet(): postingList=[['my','dog','has','flea','problems','help','please'], ['maybe','not','take','him','to','dog','park','stupid'], ['my','dalmatio原创 2021-08-31 22:31:25 · 298 阅读 · 0 评论 -
决策树cart算法实战
1、使用决策树预测隐形眼镜类型,隐形眼镜数据集(lenses.csv)是非常著名的数据集,它包含很多患者眼部状况的观察条件以及医生推荐的隐形眼镜类型。隐形眼镜类型包括硬材质、软材质以及不适合佩戴隐形眼镜。要求:读取lenses.csv中的隐形眼镜数据集,构造决策树和画出决策树.(采用cart算法构造决策树)预测[‘young’,‘hyper’,‘no’,‘normal’]适合戴那种隐形眼镜from sklearn import treeimport csvfrom sklearn.feature原创 2021-08-29 22:46:08 · 1320 阅读 · 1 评论 -
决策树cart算法
ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益。(条件熵越小,信息增益越大)C4.5中是用信息增益比率(gain ratio)来作为选择分支的准则。信息增益比率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的Feature。除此之外,C4.5还弥补了ID3中不能处理特征属性值连续的问题。但是,对连续属性值需要扫描排序,会使C4.5性能下降(1)信息增益率(2)连续值属性(3)原创 2021-08-29 15:28:53 · 948 阅读 · 0 评论 -
sklearn实现决策树实战
读取文件swimming.csv中的数据,作为训练集,使用sklearn中的决策树模型(参数选为criterion=‘entropy’),训练模型并画出决策时from sklearn import tree#调用sklearn决策树import csvfrom sklearn.feature_extraction import DictVectorizer#这个类将字符串转化为数据from sklearn import preprocessingfeatureList=[]#存放特征属性值la原创 2021-08-27 02:36:43 · 376 阅读 · 0 评论 -
sklearn实现决策树
构造决策树及决策树的可视化使用ID3算法画出的决策树ID3算法在进行特征划分时会优先选择信息增益最大的特征进行划分。一旦按某特征切分后,该特征在之后的算法执行中,将不再起作用(即不再考虑这个特征)。在这个特征划分后的样本中选择信息增益最大的其他特征,这样一步步划分下去。决策树算法的核心是要解决两个问题:1)如何从数据表中找出最佳节点和最佳分枝?2)如何让决策树停止生长,防止过拟合。(预剪枝和后剪枝)Sklearn中的分类决策树Sklearn中的分类回归树的调用如下:from sklearn原创 2021-08-27 02:17:47 · 1546 阅读 · 0 评论 -
计算香农熵练习
读取play.csv文件中的内容,并计算数据集play.csv(未考虑任何特征前)的熵值。注:1、即使用熵值的公式2、在play.csv文件中outlook(天气),TEMPERATURE(温度)、HUMIDITY(湿度)、WINDY(风)代表四个特征。最后一类代表类别,即是否出去打球from math import logdef calcShannonEnt(dataSet): numEntries=len(dataSet) labelCounts={} for fea原创 2021-08-27 01:59:45 · 171 阅读 · 0 评论 -
决策树原理剖析
ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益(信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大).为了避免这个不足C4.5中是用信息增益比率(gain ratio)来作为选择分支的准则。离散型数据(特征、属性):取值可以具有有限个或无限可数个值,这个值可以用来定性描述属性的汉字、单词;构造决策树的基本思想是随着树的深度加深,节点的熵值迅速的降低。原创 2021-08-26 18:23:37 · 1238 阅读 · 0 评论 -
信息熵计算
原创 2021-08-26 17:21:05 · 225 阅读 · 0 评论 -
knn算法测试手写识别系统准确率
手写识别系统,KNN算法实现手写识别系统的准确率(准确率=测试分对的样本数/总的样本数)import numpy as npfrom itertools import chainfrom os import listdir#返回给定目录下的文件名,返回的是一个字符串列表import operator#想使用KNN算法,训练集以及训练集的标签,找到训练集以及训练集的标签#KNN算法,每一次对一个点进行分组def classify0(inx,dataset,labels,k):原创 2021-08-26 16:51:35 · 932 阅读 · 0 评论 -
knn算法学习记录3
1、feature.txt是关于性别预测的数据,第一列为身高,第二列为体重,第三列为鞋码(鞋子尺码),第四列为性别(标签列).请根据feature.txt的数据预测[155,48,36](即身高为155,体重为48,鞋码为36)的人的性别;import numpy as np#from sklearn import neighbors#from sklearn.model_selection import train_test_splitfrom sklearn.neighbors import原创 2021-08-26 16:00:35 · 247 阅读 · 0 评论 -
归一化处理
1.将distance.txt里面的数据进行归一化处理,转化为[-1,1]之间import numpy as npa=np.genfromtxt("distance.txt",delimiter=",")np.set_printoptions(suppress=True)#print(array(a))def autoNorm(dataSet): minVals=dataSet.min(0) maxVals=dataSet.max(0) ranges=maxVals-mi原创 2021-08-26 14:47:40 · 573 阅读 · 0 评论 -
knn算法学习记录2
import matplotlib.pyplot as pltimport numpy as npx1=[3,2,1]y1=[104,100,81]x2=[101,99,98]y2=[10,5,2]plt.scatter(x1,y1,c='y',label="Romance")plt.scatter(x2,y2,c="black",label="Action")plt.legend(loc="best")plt.show()import numpy as np;#1、KNN算法第.原创 2021-08-26 14:37:36 · 129 阅读 · 0 评论 -
sorted函数学习记录
1、函数介绍sorted(iterable, cmp=None, key=None, reverse=False)sorted(iterable, key=None, reverse=False)iterable:适合迭代的对象,实际上,任何具有__iter__()或__getitem__()方法的对象,Python就认为它是一个iterable。Python里有大量内置的iterable类型,如: list,str,tuple,dict,file,xrange等。python3取消了sorte原创 2021-08-26 11:40:14 · 136 阅读 · 0 评论 -
最近邻(knn)算法的学习记录
KNN算法介绍(1)为了判断未知实例的类别,以所有已知类别的实例作为参照。(2)选择合适的K(参数)值(3)计算未知类别到已知类别点的距离,选择最近K个已知实例(4)根据少数服从多数的投票法则(majority-voting),让未知类别归类为K个最近邻样本中最多数的类别。1、(1)回顾Python当中获取字典中的值的三种方法,并比较三种方法的异同,注1.key-value2.get()3.setdefaul(2)回顾python中如何向字典里面添加元素#设字典a={"学生号":1234;原创 2021-08-26 11:14:25 · 130 阅读 · 2 评论