![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python机器学习
范德彪陕西分彪
Chosen one
展开
-
Python机器学习:决策树003使用信息熵寻找最优划分
#使用信息熵寻找最优划分import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsiris = datasets.load_iris()X = iris.data[:,2:]y = iris.targety.shapefrom sklearn.tree import DecisionTreeClassifierdt_clf = DecisionTreeClassifier(max_dept原创 2020-12-30 10:25:50 · 197 阅读 · 0 评论 -
Python机器学习:决策树002信息熵
#信息熵#假如系统中只有两类··import numpy as npimport matplotlib.pyplot as pltdef entropy(p): return -p * np.log(p) - (1 - p) * np.log(1 - p)x = np.linspace(0.01,0.99,200)plt.plot(x,entropy(x))原创 2020-12-28 21:43:33 · 145 阅读 · 0 评论 -
Python机器学习:决策树001什么是决策树
import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsiris = datasets.load_iris()X = iris.data[:,2:]y = iris.targetfrom sklearn.tree import DecisionTreeClassifierdt_clf = DecisionTreeClassifier(max_depth = 2,criterion =...原创 2020-12-24 15:53:51 · 198 阅读 · 0 评论 -
Python机器学习:SVM008SVM思想解决回归问题
怎么定义拟合比如线性,MSE值最小SVM margin包含样本数量越多越好~取中间的直线为结果引入超参数ε#SVM思想解决回归问题import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsdata = datasets.load_boston()data.keys()X = data.datay = data.targetfrom sklearn.model_selectio.原创 2020-12-24 14:43:53 · 265 阅读 · 1 评论 -
Python机器学习:SVM008scikit-learn中的高斯核函数
gamma值时在调整模型复杂度越大越倾向于过拟合越小越倾向于欠拟合import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsX,y = datasets.make_moons(noise = 0.15,random_state = 666)plt.scatter(X[y == 0,0],X[y == 0,1])plt.scatter(X[y == 1,0],X[y == 1,1])..原创 2020-12-23 20:35:48 · 1327 阅读 · 0 评论 -
Python机器学习:SVM007高斯核函数
径向基/RBF/高斯核 都是这种形式为了感性理解,模拟一下。。。过程高斯核本质l1 l2 两个地标显然这样就线性可分了我们只去了地标点l1 l2高斯核去了len(x)个地标点本质是将原本数据,映射到一个无穷维空间(样本理论上有无穷多个) 计算开销特别大~~~~~~ 有些应用适合 初始样本数据样本维度高 数量却不多 m < n 通常 就是自然语言处理领域 构建高维特征空间,然而样本的数量不多。遗留问题γ作用是什么?通过代码直观理解#直观理解高斯核函数import .原创 2020-12-23 18:14:11 · 2412 阅读 · 0 评论 -
Python机器学习:SVM006什么是核函数?
多项式核函数原创 2020-12-22 18:47:42 · 121 阅读 · 0 评论 -
Python机器学习:SVM005SVM使用多项式特征
#SVM使用多项式特征import numpy as npimport matplotlib.pyplot as plt使用datasets生成数据from sklearn import datasets#使用datasets生成数据X,y = datasets.make_moons()加噪音X,y = datasets.make_moons(noise=0.15,random_state=666)#加点噪音plt.scatter(X[y == 0,0],X[y == 0,1])p原创 2020-12-22 15:18:58 · 468 阅读 · 0 评论 -
Python机器学习:SVM004Scikit-learn中的SVM
纵向值很大数据尺度归一化#SCikit-learn中的SVNimport numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasets#鸢尾花数据集iris = datasets.load_iris()X = iris.datay = iris.targetX = X[y < 2,:2]y = y[y < 2]plt.scatter(X[y == 0,0],X[y == 0,1])原创 2020-12-21 22:08:52 · 1033 阅读 · 0 评论 -
Python机器学习:SVM002最大化margin
整理完成把两个式子写在一起目标最大化:d最优化问题。原创 2020-12-21 17:47:04 · 561 阅读 · 0 评论 -
Python机器学习:SVM001什么是支撑向量机
可以解决分类,回归问题。。。。。。。。。。。。。。。。。。。。。。。。。逻辑回归解决分类问题思路定义一个概率函数进行建模,建立损失函数最小化损失函数决策边界的泛化效果不好。。。。决策边界离红色点太近了这个决策边界比较好,期望决策边界离红色和蓝色的点都比较远,而且能够分辨这两种点。、这样未来泛化能力比较好。(没有寄希望于正则化,数据预处理)而是直接对泛化能力的考量直接放在算法的内部。。决策边界离数据都比较远。(直观理解)Hard margin SvmSoft Margin Sv.原创 2020-12-21 16:58:58 · 151 阅读 · 0 评论 -
Python机器学习:评价分类结果008ROC曲线
真正例率 TPR = TP / (TP + FN)表示,预测为正例且真实情况为正例的,占所有真实情况中正例的比率。假正例率 FPR = FP / (TN + FP)表示的,预测为正例但真实情况为反例的,占所有真实情况中反例的比率。CODE依然使用前面的极度有偏数字数据集def TPR(y_ture,y_predict): tp = TP(y_ture,y_predict) fn = FN(y_ture,y_predict) try: ret.原创 2020-12-20 17:29:19 · 208 阅读 · 1 评论 -
Python机器学习:评价分类结果007TPR和FPR之间的关系
TPR和FPR之间的关系原创 2020-12-20 16:15:37 · 1301 阅读 · 1 评论 -
Python机器学习:评价分类结果006precisoion-Recall曲线绘制
code#实现混淆矩阵,精准率和召回率import numpy as npfrom sklearn import datasetsdigits = datasets.load_digits()X = digits.datay = digits.target.copy()y[digits.target == 9] = 1y[digits.target != 9] = 0from sklearn.model_selection import train_test_splitX_train,X原创 2020-12-18 17:17:06 · 300 阅读 · 1 评论 -
Python机器学习:评价分类结果005precisoion-Recall的平衡
五角星是我们关注的精准率和召回率相互矛盾相互牵制。代码接03如何调整分类阈值log_reg.decision_function(X_test)log_reg.decision_function(X_test)[:10]array([-21.45600241, -32.94974484, -16.40358049, -79.91453954, -48.16618205, -24.21675714, -44.76256848, -24.22873941, ...原创 2020-12-17 22:38:32 · 148 阅读 · 0 评论 -
Python机器学习:评价分类结果004F1score
同时表征precison和recallimport numpy as npdef f1_score(precision,recall): try: return 2 * precision * recall / (precision + recall) except: return 0.0f1_score(0.5,0.5)0.5使用scikit-learn中的f1score使用的是003的数据传入的参数和我们自己定义的函数不一样。。...原创 2020-12-17 15:27:28 · 280 阅读 · 0 评论 -
Python机器学习:评价分类结果003实现混淆矩阵,精准率和召回率
#实现混淆矩阵,精准率和召回率import numpy as npfrom sklearn import datasetsdigits = datasets.load_digits()X = digits.datay = digits.target.copy()使数据偏斜y[digits.target == 9] = 1y[digits.target != 9] = 0from sklearn.model_selection import train_test_splitX_tra原创 2020-12-16 20:35:42 · 388 阅读 · 0 评论 -
Python机器学习:评价分类结果002精准率和召回率
原创 2020-12-16 15:48:17 · 288 阅读 · 0 评论 -
Python机器学习:评价分类结果001准确度和混淆矩阵
极度偏斜数据集原创 2020-12-16 15:35:43 · 462 阅读 · 0 评论 -
Python机器学习:逻辑回归008OvR与OvO
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split为了可视化方便只使用两个特征iris = load_iris()X = iris.data[:,:2]y ...原创 2020-12-16 11:25:57 · 1156 阅读 · 1 评论 -
Python机器学习:逻辑回归007scikit-learn中的逻辑回归
Scikt-learn中使用的正则化import numpy as npimport matplotlib.pyplot as pltnp.random.seed(666)#生成数据np.random.seed(666)X = np.random.normal(0,1,size = (200,2))y = np.array(X[:,0] ** 2 + X[:,1] < 1.5, dtype='int')#给数据加上标签了。。#添加一些噪音for _ in range(20):原创 2020-12-15 23:04:00 · 181 阅读 · 0 评论 -
Python机器学习:逻辑回归006逻辑回归中添加多项式特征
import numpy as npimport matplotlib.pyplot as plt生成数据并给数据分类。。第一次看到这个技巧#生成数据np.random.seed(666)X = np.random.normal(0,1,size = (200,2))y = np.array(X[:,0] ** 2 + X[:,1] ** 2 < 1.5, dtype='int')#给数据加上标签了。。print(y)plt.scatter(X[y==0,0],X[y==0,1],原创 2020-12-15 15:21:20 · 505 阅读 · 0 评论 -
Python机器学习:逻辑回归005决策边界
#实现逻辑回归import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsiris = datasets.load_iris()X = iris.datay = iris.targetX = X[y<2,:2]y = y[y<2]plt.scatter(X[y==0,0],X[y==0,1],color = 'red')plt.scatter(X[y==1,0],X[y==1,原创 2020-12-14 22:34:55 · 911 阅读 · 0 评论 -
Python机器学习:逻辑回归003逻辑回归的损失函数的梯度
原创 2020-12-14 18:16:32 · 196 阅读 · 0 评论 -
Python机器学习:逻辑回归002逻辑回归的损失函数
原创 2020-12-14 17:49:29 · 711 阅读 · 0 评论 -
Python机器学习:逻辑回归001什么是逻辑回归
原创 2020-12-14 16:53:43 · 75 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化010L1L2和弹性网络
原创 2020-12-14 16:29:57 · 174 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化009LASSO回归
代码接着008Lasso#LASSOfrom sklearn.linear_model import Lassodef LassoRegression(degree,alpha): return Pipeline([('poly',PolynomialFeatures(degree=degree)), ('std_scaler',StandardScaler()), ('lasso_reg',Lasso(al原创 2020-12-14 16:07:35 · 220 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化008模型泛化与岭回归
岭回归数据#数据import numpy as npimport matplotlib.pyplot as pltnp.random.seed(42)x = np.random.uniform(-3,3,size=100)#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。X = x.reshape(-1,1)y = 0.5 * x + 3 +np.random.normal(0,1,size=100)plt.scatter(x,y)#非线性关系#使原创 2020-12-14 10:57:40 · 175 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化007偏差方差平衡
的原创 2020-12-13 11:42:43 · 138 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化006验证数据集与交叉验证
交叉验证引入数据集并且train_test_split#交叉验证import numpy as npfrom sklearn import datasetsdigits = datasets.load_digits()X = digits.datay = digits.targetfrom sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test = train_test_split(X,y原创 2020-12-11 17:30:22 · 198 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化005学习曲线
KNN和多项式回归不适合上面这样绘制这样,决策树适合绘制学习曲线原创 2020-12-11 15:28:54 · 214 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化004为什么需要训练数据集和测试数据集
泛化能力:由此及彼能力遇见新的拟合能力差数据#数据import numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(-3,3,size=100)#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。X = x.reshape(-1,1)y = 0.5 * x ** 2 + x + 2 +np.random.normal(0,1,size=100)plt.scatter(x,y)#非原创 2020-12-10 14:42:57 · 382 阅读 · 0 评论 -
Python机器学习:多项式回归与模型泛化003过拟合与欠拟合
过拟合欠拟合#过拟合和欠拟合import numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(-3,3,size=100)#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。X = x.reshape(-1,1)y = 0.5 * x ** 2 + x + 2 +np.random.normal(0,1,size=100)plt.scatter(x,y)#非线性关系#print(X原创 2020-12-10 14:31:57 · 239 阅读 · 0 评论 -
Python机器学习:多项式回归002scikit中的多项式回归与pipeline(管道)
直接看代码import numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(-3,3,size=100)#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。X = x.reshape(-1,1)y = 0.5 * x ** 2 + x + 2 +np.random.normal(0,1,size=100)使用多项式特征添加#数据归一化也在这个包from sklearn.prep原创 2020-12-10 10:04:22 · 322 阅读 · 0 评论 -
Python机器学习:多项式回归001什么是多项式回归
理解:两个特征 x , x **2.增加了一些特征这些特征是原来特征的多项式项目原创 2020-12-10 09:45:52 · 144 阅读 · 0 评论 -
Python机器学习:PCA与梯度上升:009人脸识别与特征脸(lfw_people数据集)
将w的每一行想成一个样本,则第一行是最重要的样本。。第二行次重要。。(Wk特征engen face)CODE我们使用lfw_people数据集#人脸识别与特征脸import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import fetch_lfw_people这个数据集很大有200多m直接用fetch命令下载却失败了,手动下载数据链接:https://pan.baidu.com/s/11ebeCTH7.原创 2020-12-09 14:58:02 · 754 阅读 · 0 评论 -
Python机器学习:PCA与梯度上升:008使用PCA对数据进行降噪
PCA还可以对数据进行降噪首先引入相关包import numpy as npimport matplotlib.pyplot as pltX = np.empty((100,2))X[:,0] = np.random.uniform(0,100,size=100)#产生实数X[:,1] = 0.75 * X[:,0] + 3. +np.random.normal(0,10,size=100)plt.scatter(X[:,0],X[:,1])降噪去抖动(降维,然后复原)#降噪,去抖原创 2020-12-08 17:45:42 · 557 阅读 · 0 评论 -
Python机器学习:PCA与梯度上升:007试手MNIST数据集
数据集加载,本来想使用sklearn中的 fetch_openml函数直接从网站下载数据集,然而现在这条命令不行(似乎是网站问题),因此,尝试用使用本地加载首先在链接:https://pan.baidu.com/s/163MTS_89EKpJZsO6da5J3w 提取码:it3v 复制这段内容后打开百度网盘手机App,操作更方便哦下载MNIST文件,里面一共有7w个手写数字样本数据,每个数据有28*28=784维。import numpy as npfrom sklearn.datasets原创 2020-12-07 17:14:41 · 226 阅读 · 0 评论 -
Python机器学习:PCA与梯度上升:06scikit中的PCA
首先引入相关的包,并且声称两个维度的向量,他们具有一定的关系from sklearn.decomposition import PCAimport numpy as npX = np.empty((100,2))X[:,0] = np.random.uniform(0,100,size=100)#产生实数X[:,1] = 0.75 * X[:,0] + 3. +np.random.normal(0,10,size=100)把二维向量降到一维pca = PCA(n_components=1)原创 2020-12-06 23:13:26 · 181 阅读 · 0 评论