自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 3.2 梯度下降法学习——梯度下降法的模拟及问题改进

梯度下降法的过程:随机选择一个初始点theta重复:求损失函数导数决定梯度下降的方向,导数的负方向选择合适的步长(学习率)更新theta值,向损失函数减小方向移动 如果满足条件(到了最小值的点)break跳出具体实现#损失函数def J(theta): return (theta-2.5)**2-1#损失函数的导数计算def dJ(theta): return 2*(thet...

2018-03-13 17:53:59 462

原创 3.1 梯度下降法学习——梯度下降法的原理及分析

梯度下降法:不是一种机器学习的算法,而是一种基于搜索的最优化方法,通过当前点的梯度方向找到新的迭代点,并从当前点移动到新的迭代点继续寻找新的迭代点直到找到最优解,作用是在最小化目标函数。如果是最大化效用函数则使用的是梯度上升法。训练模型的本质其实就是在最小化一个损失函数,而有的模型求不到最优的数学解就需要使用梯度下降法来基于搜索找到最优解。(一维平面中)纵坐标为损失函数,横坐标为参数变化。最小化损...

2018-03-13 15:30:45 1438

原创 2.10 线性回归算法学习——回归模型的可解释性

如图,通过排序和数据对应分析,可以看出每种特征对房价的影响有多大以及正相关还是负相关所以线性规划具有很强的可解释性

2018-03-13 02:27:43 1375

原创 2.9 线性回归算法学习——kNN模型解决回归问题及网格搜索最优参数

模型引入from sklearn.neighbors import KNeighborsRegressor实例化对象knn_reg=KNeighborsRegressor()训练数据集knn_reg.fit(X_train,y_train)查看评估的成绩knn_reg.score(X_test,y_test)运行结果网格搜索参数:from sklearn.model_selection impor...

2018-03-13 02:04:53 2631

原创 2.8 线性回归算法学习——sklearn的回归模型学习

%run ML/KNN/model_selection.py X_train,X_test,y_train,y_test=train_test_split(X,y,seed=666)from sklearn.linear_model import LinearRegressionlin_reg=LinearRegression()lin_reg.fit = (X_train,y_train)l...

2018-03-13 01:54:07 367

原创 2.7 线性回归算法学习——多元线性回归的实现

import numpy as npclass LinearRegression: def __init__(self): """初始化模型""" self.coef_=None self.inter_=None self.__theta=None def fit(self,X_train,y_train): ...

2018-03-13 01:42:15 360

原创 2.6 线性回归算法学习——多元线性回归的原理及推导学习

当不止一个特征时如何分析多个特征与y的关系?当x为一个数时是一个特征,当x成为一个向量时,即多个特征与y的关系目标函数的探索——确定参数化解y的预测值即点成的结果推导结果称为多元线性回归方程解优点与问题:因为对应每个特征都有其系数所以不需要做归一化处理一般将它们分开,系数对应每一个特征,而截距只是一个偏移...

2018-03-12 23:01:36 8432 3

原创 2.5 线性回归算法学习——简单线性回归算法的衡量指标最优方式

线性回归指标看不出是好是坏,对应不同的东西数值不同,所以想比较不同类型的东西的回归算法预测好坏的时候需要换另一个指标映射到0到1之间:意义:分母为最基本的模型不考虑x,错误最大,分子我们自己模型考虑x后产生的错误,,1-我们的模型产生错误/基本模型产生错误,也就是我们的模型拟合住的点的准确率取值范围:相当于将我们模型与基准模型进行对比是怎样的,范围投射到0到1之间代码实现1- mse/np.var...

2018-03-12 22:40:43 525

原创 2.4 线性回归算法学习——简单线性回归算法的衡量指标探索

简单线性回归算法的衡量指标探索分类中使用分类准确度衡量分类的准确度#简单线性回归该如何衡量预测的结果?可以通过测试集中的真实值与预测值进行比较,如上图,比较误差平方#存在的问题:误差与样本的数量有关?改进:除以m,使得结果与m无关#存在问题2:结果为衡量指标值的平方,值较大时平方翻倍了影响较大,与量纲有关?改进:开方后量纲一致,#另一个评测标准:平均绝对误差代码实现RMSE与MAE的比较量纲一样,...

2018-03-12 21:47:04 308

原创 2.3 线性回归算法学习——向量化运算优化回归算法

改进方法在求参时for循环性能很低,如果能将for循环改进为向量之间的运算,性能会快很多将a的分子和分母转换成两个向量的点成,两个一维向量的点成即相乘后相加:代码改进,只需改进for循环变为:num=(x_train-x_mean).dot(y_train-y_mean)d=(x_train-x_mean).dot(x_train-x_mean)运行结果相同:性能测试区别只在于fit函数中是否使...

2018-03-12 19:36:02 504

原创 2.2 线性回归算法学习——简单线性回归算法的实现及封装

算法实现import numpy as npimport matplotlib.pyplot as plt模拟的数据集x=np.array([1.,2.,3.,4.,5.])y=np.array([1.,3.,2.,3.,5.])图形绘制plt.scatter(x,y)plt.axis([0,6,0,6])plt.show()均值x_mean=np.mean(x)y_mean=np.me...

2018-03-12 14:01:17 354

原创 2.1 线性回归算法学习——简单线性回归算法的原理及推导过程

机器学习中的参数模型(线性回归、逻辑回归、SVM、神经网络等)学习过程:通过建模找到一个最大程度拟合数据的模型,通过确定损失函数(或效用函数,统称为目标函数),最优化目标函数来获得机器学习模型的参数。回归分析:利用已知的数据,(线性回归中需要找到一条直线)最大程度的拟合样本与输出标记,即产生拟合方程,从而对未知的数据进行预测。如何判断是否选用线性模型处理问题?使用相关系数r衡量特征与标记之间的相关...

2018-03-12 11:54:03 6262

原创 1.8 KNN算法学习——数据归一化处理解决量纲不同的问题

多个特征时,其中某个特征数量级较大,其他较小时最后的分类结果会被该特征所主导,而弱化了其他特征的影响,这是因为各个特征的量纲不同所致,需要将数据进行归一化解决方案:将所有的数据映射到同一尺度#归一化方式一:最值归一化把所有的数据映射到0~1之间适用于有明显的边界,受outlier极端值影响较大,比如收入的分布#归一化方式二:均值-方差归一化把所有数据归一到均值为0方差为1的分布中归一化实现过程...

2018-03-12 00:01:25 11418

原创 1.7 KNN算法学习——网格搜索超参数

网格搜索参数:定义参数param_grid=[ { 'weights':['uniform'], 'n_neighbors':[i for i in range(1,11)] }, { 'weights':['distance'], 'n_neighbors':[i for i in range(1,11)],...

2018-03-11 22:34:29 1875

原创 1.6 KNN算法学习——KNN算法中超参数的探索

寻找最好的k在KNN算法中,k需要提前指定,那么k取多少为最优值?此处通过for循环创建多个分类器进行比较分类准确率代码搜索:验证的结果为k=4时准确率最高,这个过程即所谓调参的过程,寻找最好的超参数的值注:如果找到的最优值在边界上,很有可能最好值在搜索范围之外,所以应该再往上(下)调整范围以寻找最优的值,因为不同参数决定了不同的准确率,他们之间呈连续型变换的。KNN中其他超参数权重weight(...

2018-03-11 20:55:56 2856

原创 1.5 KNN算法学习——KNN算法分类模型的实现与分类准确度评估

训练集分割成训练集与测试集,代码封装import numpy as npdef train_test_split(X,y,test_ratio=0.2,seed=None): """将数据X与y按照test_ratio分割成X_train,X_test,y_train,y_test""" assert X.shape[0] == y.shape[0], "the size of...

2018-03-11 12:24:37 10249

原创 1.4 KNN算法学习——KNN算法的实现与封装

封装代码实现import numpy as npfrom math import sqrtfrom collections import Counterdef kNN_classfy(k,X_train,y_train,x): assert 1 <= k <=X_train.shape[0],"k must be valid" assert X_train.s...

2018-03-10 21:55:49 368

原创 1.3 KNN算法学习——模型评估与选择

训练得到的模型如果很差在放到真实世界中会造成损失并且真实环境难以拿到真实的label,所以需要测试模型的泛化能力从而进行并进而做出改进。评估方法一 :留出法#训练集与测试集分离分割...

2018-03-09 01:21:14 1841

原创 1.2 KNN算法学习——使用scikit-learn中的KNN模型实现

注:X_train,y_train,x数据同上一篇《KNN学习笔记之KNN算法原理及简单实现》中的训练数据和测试数据值

2018-03-08 23:25:47 602

原创 1.1 KNN算法学习——KNN算法的原理及简单实现

原理:如图已有分类基础上若新来了点该如何分类?根据离得最近的点中找最近的k个点以这几个点的类别(label)进行投票以最后比例确定新的点类别的更大可能性本质:如果两个样本足够的相似的话他们就有更高的可能性属于同一类别实现:例如图示为肿瘤时间与大小对于肿瘤的分类的影响,蓝色为恶性肿瘤,红色为良性肿瘤,当新来一个数据时(绿色数据点)如何判断它的类别?编程实现预测:KNN实现过程#求预测点到最近k个点的...

2018-03-08 22:32:23 647

原创 sklearn 学习之数据的读取与数据的探索

引入库 sklearn from sklearn import datasetsdatasets模块下的很多数据集取出其中一个iris数据集,其中以字典形式存储,查看键值特征描述特征数据特征名称标签及名称数据大小查看取两列数据绘图区分不同类别,分开不同的X绘制matplotlib官网点击打开链接...

2018-03-08 15:10:28 2761

原创 Matplotlib学习笔记之数据可视化

#加载类库(一般只用其中一个子模块)import matplotlib as mplimport matplotlib.pyplot as plt 折线图折线图 matpotlib.pyplot的plot()方法,参数对应的横纵坐标操作完最后展示调用plt.show()方法即可显示#绘制多条折线plot都绘制完,最后再渲染#指定样式color参数指定#修改样式linestyle:     -. ...

2018-03-08 13:45:03 317

原创 Numpy学习笔记之Fancy Indexing

#想返回不等步长的方法比如想返回索引为3,5,8的索引所在的值,不是等步长的值如何处理?#从一位数组中取出构成新的二维数组索引为为二维数组即可#二维矩阵中取点相当于取出(0,1),(1,2),(2,3)点#取感兴趣的行或者列#行、列中也可以传入布尔值#数组比较#二维中也同样适用#多种运算复合比如计数,True当做1,False当做0,计数非0的个数二维数组里#any存在 和all全部沿着行——每一...

2018-03-07 23:15:40 1041

原创 Numpy学习笔记之Numpy中的索引运算

索引找到所找的比如最小值,最大值等等特征值在哪此处argmin方法返回的是索引#排序和使用索引random的shuffle方法可以将数据进行乱序处理#排序sort()方法,np.sort(x)返回结果为将x排好序的结果,但是x本身不变,如果想将x改变需要采用面向对象的形式x.sort()#二维矩阵进行sort后每行排了序,如果想分开则定义第二个参数axis,默认值为1,沿着列排序使每一行都有序ax...

2018-03-07 23:03:15 393

原创 Numpy学习笔记之Numpy中的矩阵运算

原生List不支持乘积运算,而使用for 运算与列表表达式运算效率太低%%timeit(自动循环多次取最快的运算时间取均值)和%%time(只运行一次)可以查看时间效率,%支持单行,%%支持多行numpy支持*运算numpy把一维数组当成向量,把二维数组当成矩阵,支持向量和矩阵的运算,并进行了很好的优化/普通除法,结果为浮点数,//整除,取整数部分#矩阵与矩阵之间的运算(行列对应)乘法特殊矩阵乘法...

2018-03-07 20:29:47 770

原创 Numpy学习笔记之Numpy的聚合操作

聚合操作#向量求和python红可以使用sum()方法,numpy中也提供了sum()求和方法不同的是效率问题#求最值np.min()和np.max()此处支持面向对象的调用方式#二维矩阵全部进行如果只想行或列进行运算,规定第二个参数axis=0,沿着行计算,压缩列;axis=1沿着列计算,压缩行#乘积prod()np.pord(X+1)对X的每个元素加1后进行乘积相当于复合运算#均值mean()...

2018-03-07 00:04:16 3220

原创 Numpy学习笔记之Numpy的合并与分割

合并#concatenate合并一维数组,第一个参数为数组合并矩阵,第二个参数axis默认为0(沿着行的方向),axis=1时沿着列的方向合并,合并后原矩阵A不改变***但是不支持维数不同的数组如A(二维)和z(一维)解决方法(一)将z由向量转换为矩阵解决方法(二)使用vstack和hstack两种方法矩阵都必须对应分割#split,参数一维分割的对象,第二个参数分割点必须是数组,一个分割点也必须...

2018-03-06 13:26:51 1047

原创 Numpy学习笔记之Numpy的基本操作

%run 运行脚本文件可以使用Numpy的原因:Python的列表List灵活允许不同类型,效率低需要检查每种类型,Python的array模块类型唯一但是没有配备相关向量或矩阵相关的运算,而Numpy支持向量和矩阵之间的运算,更支持机器学习。#引入numpy库并起简称别名import numpy as np#查看numpy版本np.__version__#numpy.array初始化方式之从列表...

2018-03-05 23:38:39 665

转载 总结mysql的三种外键约束方式

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL为例,总结一下3种外键约束方式的区别和联系。  这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。  首先创建用户组表

2017-09-20 17:47:13 303

原创 如何让你自己做的网站他人可以访问——外网访问

运行网站需要服务器,IIS 主要用于 Windows 服务器,Apache、Nginx 多用于 Linux 服务器(即 LAMP 和 LNMP)。检查你的系统是否已安装IIS单击:“开始” -> “管理工具”。windows server 2008的IIS版本为7.0或7.5,已经包括fastcgi,安装十分方便。打开:“开始” -> “管理工具”-> “服务器管理

2017-08-03 16:02:54 58262 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除