python与机器学习
把小兔打哭
这个作者很懒,什么都没留下…
展开
-
python和机器学习 第六章 梯度下降法(一)
dJ/d(theta)导数代表theta单位变化时,J相应的变化导数可以代表方向,对应J增大的方向太小,减慢收敛学习的速度太大,甚至会导致不收敛并不是所有函数都有唯一的极值点解决方法:多次运行线性回归法的损失函数具有唯一的最优解...原创 2019-07-13 11:54:38 · 220 阅读 · 0 评论 -
python和机器学习 第八章 多项式回归与模型泛化(二)scikit-learn中的多项式回归和Pipeline
数据集只有一个特征构造数据In [92]: import numpy as np ...: import matplotlib.pyplot as plt In [93]: x = np.random.uniform(-3,3,size=100) ...: X = x.reshape(-1,1) ...: y = 0.5 * x**2 + x + 2 + n...原创 2019-07-16 16:36:12 · 306 阅读 · 0 评论 -
python和机器学习 第五章 线性回归 (二) 衡量线性回归模型的标准
评测线性回归模型的指标1/m 是为了使衡量结果与样本数量无关衡量指标有三个MSE、RMSE、MAE使用简单线性回归法1、使用波士顿数据集In [474]: from sklearn import datasetsIn [476]: boston = datasets.load_boston()#取出第五个属性,即只使用房间数量这个特征x=boston.data[:,5]In ...原创 2019-07-12 14:10:06 · 489 阅读 · 0 评论 -
python和机器学习 第八章 多项式回归与模型泛化(三)过拟合和欠拟合
过拟合和欠拟合欠拟合underfitting算法所训练的模型不能完整的表述数据关系高偏差,低方差过拟合算法所训练的模型过多地表达了数据间地噪音关系低偏差,高方差。模型的泛化能力预测新的样本点的能力测试模型的泛化能力,使用测试数据集红线表明了,随着模型复杂度的提高,会出现由欠拟合到过拟合的变化学习曲线随着训练样本的逐渐增多,算法训练出的模型的表现能力构造数据In [...原创 2019-07-16 19:26:33 · 581 阅读 · 0 评论 -
python和机器学习 第五章 线性回归 (三)多元线性回归
y = a0 + a1x1 + a2x2 + … + anxny^(i) = a0 + a1x1(i) + a2x2(i) + … + anxn(i)(i表示第i个样本)目标:使下式尽可能小a = (a0, a1, a2, … ,an)Ty^(i) = a0x0(i) + a1x1(i) + a2x2(i) + … + anxn(i) , x0(i) =1x = (x0, x1, ...原创 2019-07-12 16:08:34 · 259 阅读 · 0 评论 -
python和机器学习 第八章 多项式回归与模型泛化(四)验证数据集与交叉验证
通过测试数据集判断模型好坏,由于测试数据集也是已知的,可能导致针对特定测试数据集过拟合这一问题。解决办法将数据集分为训练数据(训练)、验证数据(评判)、测试数据验证数据集——调整超参数使用的数据集测试数据集——作为衡量最终模型性能的数据集为了解决只有一个验证数据集导致的训练出的模型不准确的问题——交叉验证交叉验证In [127]: import numpy as np ...原创 2019-07-17 10:26:04 · 531 阅读 · 0 评论 -
python和机器学习 第十一章 支撑向量机SVM
决策边界不一定的问题——不适定问题解决办法逻辑回归:损失函数SVM:寻找一个最优的决策边界距离两个类别的最近的样本最远一、Hard Margin SVM最大化margin就是求一个最大的d值样本真实的特征用wT表示=====>=====>=====>上面两个式子可以合为一个最大化d就是======>最终目标:======>...原创 2019-07-24 10:59:18 · 186 阅读 · 0 评论 -
python和机器学习 第八章 多项式回归与模型泛化(五)偏差方差平衡;模型正则化之岭回归、LASSO
模型误差 = 偏差(Bias) + 方差(Variance) + 不可避免地误差方差偏差数据的一点点扰动都会较大地影响模型–导致原因:使用的模型过于复杂导致原因:对问题本身的假设不正确如:使用高阶多项式回归如:非线性数据使用线性回归过拟合欠拟合非参数学习通常都是高方差算法。如:KNN参数学习通常都是高偏差算法。如:线性回归解决高方差的通...原创 2019-07-17 13:39:28 · 619 阅读 · 0 评论 -
python和机器学习 第九章 逻辑回归 (一)什么是逻辑回归及逻辑回归的损失函数
什么是逻辑回归1、解决分类问题2、将样本的特征和样本发生的概率联系起来(概率是个数,所以称为回归问题)3、既可以看作回归算法,也可以看作分类算法。通常作为分类算法用,只解决二分类问题。sigmoid函数对于给定的样本数据X,y,如何找到参数theta,使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y逻辑回归的损失函数没有公式解,只能使用梯度下降法求解...原创 2019-07-17 14:57:48 · 325 阅读 · 0 评论 -
python和机器学习 第九章 逻辑回归 (二)决策边界、逻辑回归中的多项式特征、scikit-learn中的逻辑回归、多分类
决策边界1、来了一个新的样本点,样本点的特征值于theta相乘。>0,则分类为1;<0,则分类为0。2、绘制决策边界In [13]: def x2(x1): ...: return (-log_reg.coef_[0] * x1 - log_reg.intercept_) / log_reg.coef[1]In [14]: x1_plot = np....原创 2019-07-17 16:59:59 · 623 阅读 · 0 评论 -
python和机器学习 第十章 分类算法的评价——混淆矩阵、精准率、召回率、F1 Score
分类算法的评价1、分类准确度对于极度偏斜的数据,只使用分类准确度是远远不够的2、混淆矩阵1、二分类问题2、精准率预测为1的事件,预测成功的概率3、召回率对于实际发生的事件1,预测成功的概率4、精准率和召回率的意义jkl...原创 2019-07-17 19:07:55 · 1197 阅读 · 0 评论 -
python和机器学习 第十二章 决策树
一、什么是决策树非参数学习算法解决二分类问题天然解决多分类问题也能解决回归问题(将叶子节点中所有样本的平均值作为预测值)二、信息熵熵越大,数据越不稳定熵越小,数据越稳定pi表示这群样本中第i类样本所占的比例例如:{1,0,0}H = - 1 * log(1) = 0(最稳定,一定会取1)from sklearn.tree import DecisionTreeCl...原创 2019-07-22 16:17:04 · 272 阅读 · 0 评论 -
python和机器学习 第八章 多项式回归与模型泛化(一)什么是多项式回归
In [79]: import numpy as np ...: import matplotlib.pyplot as pltIn [80]: x = np.random.uniform(-3,3,size=100) ...: X = x.reshape(-1,1)In [81]: y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,...原创 2019-07-16 15:54:57 · 258 阅读 · 0 评论 -
python和机器学习 第五章 线性回归(一)简单线性回归
简单线性回归简单线性回归:样本的特征只有一个最佳拟合的直线方程:y = ax + b对于每个样本点x(i),由直线方程可以得到预测值为:y^(i)= ax(i) + b真值为:y(i)我们希望y(i) 和 y^(i) 的差距尽量小,目标:使得下列式子尽可能小即:找到a和b,使得下式 J(a,b) 最小一类机器学习问题的基本思路通过分析问题,确定损失函数或者效用函数;最优...原创 2019-07-12 11:24:56 · 245 阅读 · 0 评论 -
python和机器学习 第七章 PCA和梯度上升法 (五)使用PCA进行降噪和人脸识别特征脸
In [50]: import numpy as npIn [51]: import matplotlib.pyplot as pltIn [52]: X = np.empty((100,2)) ...: X[:,0] = np.random.uniform(0.,100.,size=100) ...: X[:,1] = 0.75 * X[:,0] + 3. + np.rand...原创 2019-07-16 15:06:14 · 372 阅读 · 0 评论 -
python和机器学习 第六章 梯度下降法(二)随机梯度下降法
随机梯度下降法批量:每次看所有的样本。稳定。一定是朝着下降最快的方向下降的随机:每次只看一个样本。速度快,跳出了局部最优解。但不稳定,梯度下降的方向是不确定的小批量梯度下降法随着循环次数的增加,学习率eta减少:eta = 1 / i_iters为缓减在初始时eta变化太大,eta = (1+a) /(i_iters + b){一般a=5,b=50}scikit-learn中的随机梯...原创 2019-07-15 14:53:49 · 479 阅读 · 0 评论 -
python和机器学习 第七章 PCA和梯度上升法(一)
PCA:主成分分析法一个非监督的机器学习算法主要用于数据的降维通过降维,可以发现更便于人类理解的特征其他应用:可视化、去噪使用方差来定义样本间间距。目标:找到一个轴,使得样本空间所有点映射到这个轴后,方差最大。步骤:将样例的均值归为0求一个轴的方向w = (w1, w2),使所有点映射到w轴后,下式值最大下图是求x_project(蓝线)的过程综上,最终目标为...原创 2019-07-15 15:20:26 · 258 阅读 · 0 评论 -
python和机器学习 第七章 PCA和梯度上升法 (二)梯度上升法解决PCA问题
目标函数:求导并进行向量化:编程实现生成具有两个特征的测试用例#生成具有两个特征的测试用例In [87]: import numpy as np ...: import matplotlib.pyplot as pltIn [88]: X = np.empty((100,2)) ...: X[:,0] = np.random.uniform(0., 100., s...原创 2019-07-15 16:32:28 · 179 阅读 · 0 评论 -
python和机器学习 第四章 (三)超参数
超参数超参数:算法运行前需要决定的参数,如前文中的k值模型参数:算法过程中学习的参数,KNN算法没有模型参数1、怎么找出最好的k值In [345]: best_score = 0.0In [346]: best_k = -1In [347]: for k in range(1,11): ...: knn_clf = KNeighborsClassifier(n_nei...原创 2019-07-11 15:46:00 · 567 阅读 · 0 评论 -
python和机器学习 第四章 KNN算法(二)
训练数据集、测试数据集sklearn中的数据集划分In [282]: from sklearn.model_selection import train_test_splitIn [285]: X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)In [286]: X_tes...原创 2019-07-11 14:22:58 · 224 阅读 · 0 评论 -
python和机器学习 第七章 PCA和梯度上升法(三)求数据的前n个主成分
1得到x‘的代码如下In [8]: X2 = X - X.dot(w).reshape(-1,1) *w引入库和数据定义In [3]: import numpy as np ...: import matplotlib.pyplot as pltIn [5]: X = np.empty((100,2)) ...: X[:,0] = np.random.uniform(0...原创 2019-07-15 19:56:27 · 278 阅读 · 0 评论 -
pythony和机器学习 第四章(四)网格搜索与K近邻算法中的更多超参数
定义要搜索的参数In [365]: param_grid = [ ...: { ...: 'weights':['uniform'], ...: 'n_neighbors': [i for i in range(1,11)] ...: }, ...: { ...: ...原创 2019-07-11 16:13:15 · 311 阅读 · 0 评论 -
python和机器学习 第四章(五)数据归一化
数据归一化数据归一化:即特征值的缩放解决方法:将所有的数据映射到同一尺度矩阵按照列进行归一化最值归一化normalization:将所有的数据映射到0~1之间适应于数据有明显边界的情况,受outlier影响较大x_scale = (x - x_min)/(x_max - x_min)均值方差归一化standardization:把所有数据归一到均值为0方差为1的分布中适用于数据...原创 2019-07-11 19:41:11 · 993 阅读 · 1 评论 -
python和机器学习 第七章 PCA和梯度上升法 (四)高维数据映射为低维数据
高维数据映射为低维数据降维函数def transform(self, X): """将给定的X,映射到各个主成分分量中""" assert X.shape[1] == self.components_.shape[1] return X.dot(self.components_.T)将降维后的数据恢复成高维def inverse_transf...原创 2019-07-16 10:45:00 · 417 阅读 · 0 评论 -
scikit-learn使用fetch_mldata无法下载MNIST数据集解决办法
1. 直接使用fetch_mldata下载报错In [31]: import numpy as np ...: from sklearn.datasets import fetch_mldataIn [32]: mnist = fetch_mldata("MNIST original")2. 解决办法直接下载数据集https://github.com/amplab/datasci...原创 2019-07-16 13:26:48 · 1164 阅读 · 0 评论 -
python和机器学习 第七章 PCA和梯度上升法 (五)MNIST数据集
1. 载入MNIST数据集In [31]: import numpy as np ...: from sklearn.datasets import fetch_mldataIn [35]: mnist = fetch_mldata("MNIST original") In [37]: X,y = mnist['data'],mnist['target'] 2. 数据集...原创 2019-07-16 14:14:54 · 239 阅读 · 0 评论 -
python和机器学习 第十三章 集成学习和随机森林
一、什么是集成学习voting classifier由多种算法共同来解决一个问题,最终进行投票得出结果y_predict1 = log_clf.predict(X_test)y_predict2 = svm_clf.predict(X_test)y_predict3 = dt_clf.predict(X_test)y_predict = np.array((y_predict1 + y...原创 2019-07-22 18:14:01 · 371 阅读 · 0 评论