- 博客(27)
- 收藏
- 关注
原创 python学习d9-模块和包
当一个python模块或者包被导入时,被导入模块的__name__会被设置为模块的名称,通常这是python文件本身的名称去掉.py,主文件里的__name__会被设置为__main__在模块中运用代码来避免运行主文件时调用了模块中的测试代码,因为在主文件中调用模块时,模块的__name__被设置为模块的模块名而非__main__使用__all__可以控制其他文件import *时哪些内容(函数)可以被导入,但是用import模块方式,不受模块中__all__限制。
2024-03-01 17:44:59
425
原创 python bug分析
ValueError: Classification metrics can‘t handle a mix of binary and continuous targets问题分析源代码import numpy as npimport matplotlib.pyplot as plt#%%import pandas as pdfrom sklearn.preprocessing import LabelEncoder,OneHotEncoderfrom sklearn.compose imp
2022-02-08 22:47:17
293
原创 美赛python学习d15--人工神经网络ANN
神经元输入信号:X1,X2,...XmX_1,X_2,...X_mX1,X2,...Xm权重:W1,W2,...WmW_1,W_2,...W_mW1,W2,...Wm也是神经网络训练的对象激活函数:φφφ隐藏神经元:激活函数读取神经元所有输入的和,再将其转化成输出阈值函数sigmoid函数线性整流函数ReLU双曲正切函数神经网络如何训练损失函数:实际值与预测值的欧式距离正向传播:根据权重预测输出值反向更新:根据损失函数调节每个权重梯度下降随机梯度
2022-02-08 21:30:37
1330
原创 美赛python学习d14--自然语言处理nlp
自然语言处理的应用文本的分类,文本的翻译实例根据用户的评价和是否喜欢某商品训练模型,根据新用户的评价判断是否喜欢某商品文本的清理:将所有评论看成一个稀疏矩阵,行数代表评论的个数,列数代表不同单词的个数,矩阵某行某列的元素代表在当前这条评论中当前列单词的个数清楚所有的标点符号和数字:标点符号对用户对某商品的好恶相关性很低,对于模型是噪声大小写转换清理虚词:实际...
2022-02-06 11:41:13
1746
原创 美赛python学习d13——K_means聚类算法
K-Means算法的作用基于数据间距离的远近,将若干离散的数据分成多个类聚类遇到的问题分成多少个类?手肘法则:畸变程度之和:通俗地说就是每个类内的数据与类耳朵中心点的距离平方和,再将所有的组内平方和相加聚合系数折线图:随着类的个数增加,聚合系数(畸变程度之和)减少,总折线图像人的手肘一样,找到最像肘部的点,确定为最终的分类个数每一类包括哪些元素算法的步骤选择类的个数K选择K个随机点作为中心点(不一定要在原数据集中)对于数据集中的每一个点,找到与其最近的中心点,作为这个中心点的类
2022-02-04 11:26:32
1687
原创 美赛python学习d12——机器学习分类算法的性能评价和选择
伪阳性和伪阴性伪阳性:实际上没做,预测做了,又叫一型错误伪阴性:实际上做了,预测没做,又叫二型错误二型错误一般比一型错误更严重,比如染上了传染病检测成没染上混淆矩阵横轴:实际的分类纵轴:预测的分类对角线上的数据个数代表正确的预测个数准确率悖论预测出来的准确率还没有全部预测成1(0)这种极端情况的准确率来得高累计准确曲线CAPe.g用模型制定一个产品推销给哪些人的策略,横轴代表推荐的人,纵轴代表推荐成功购买的人,最终只有10%的人购买,最好的模型在一开始就抓住了那10%的人
2022-02-02 21:12:18
1501
原创 美赛python学习d11——决策树,随机森林
Decision TreesClassification Trees几种常用的决策树ID3:由增熵原理决定C4.5:ID3用训练集的数据进行细小分割,这对新的数据没有意义,还会造成过拟合(overfitting)的问题,C4.5中增加了信息增益率,降低了过拟合的概率CART:用GINI指数决定如何分裂,但也存在过拟合的问题实例import numpy as npimport matplotlib.pyplot as pltimport pandas as pddataset = p
2022-02-01 17:23:31
670
原创 美赛python学习d10机器学习——分类算法
朴素贝叶斯算法贝叶斯定理用朴素贝叶斯算法进行分类e.g:已知用户开车(步行)上班随薪水和年龄的分布,预测一个新用户是开车还是步行上班步骤:求已知新用户特征,其步行上班的概率求先验概率:用户步行上班的概率求特征概率:在新用户周围画一个圈,圈内的用户的年龄与薪水和新用户很相近,用圈内的老用户数除以总的老用户数,代表新用户特征(年龄和薪水)的概率求条件的似然(已知用户是步行上班,求其满足新用户特征的概率):利用同样的方式计算已知新用户特征,其开车上班的概率比较两个后验概
2022-02-01 12:12:02
273
原创 美赛python学习d8--机器学习二:回归
回归简单线性回归数据预处理利用sklearn.linear_model中的LinearRegression类运用类创建regressor回归器对象利用训练集拟合回归器,也即是机器“学习”的过程利用拟合好的回归器预测测试集将结果可视化简单线性回归代码import numpy as npimport matplotlib.pyplot as pltimport pandas as pdfrom sklearn.impute import SimpleImputer as Impute
2022-01-26 23:44:31
1132
原创 美赛python学习d7--机器学习一:数据预处理
机器学习的概述监督学习已知的样本都有其标签。对于数据集中的每个样本,我们用算法预测出“正确答案”回归问题:预测一个连续值输出分类问题:预测一个离散值输出无监督学习数据没有标签,根据数据的特征将其分类,也是聚类算法数据预处理DataProcessinge.g任务目标:通过下列数据预测某人会不会购买商品数据集常见的问题缺失数据——解决方法:用当前列的平均值代替缺失的数据分类数据——将不同类别的非数字数据转化为数字数据,使得其可以用方程表示出来将文本数据转化为数字数据时遇到的问题:文本
2022-01-25 23:12:47
2229
原创 美赛python学习d5--线性规划
线性规划线性规划的目的确定多变量线性函数在变量满足线性约束条件下的最优值线性规划模型需要确定的三个要素决策变量目标函数:决策者希望对其优化的指标,是决策变量的线性函数约束条件:决策变量取值的限制范围线性规划的一般模型...
2022-01-15 23:26:04
1193
原创 美赛python学习d6--插值与拟合
插值插值的目的给定一系列数据点,但对于x的其他值对应的函数值是未知的,希望通过有限个数据点得到函数的解析表达式找到的近似函数需要简单便于研究利用python实现插值问题Scipy.interpolate模块有一维插值函数interp1d,二维插值函数interp2d,多维插值函数interpn,interpndinterp1d的基本调用格式为interp1d(x,y,kind=“linear”),返回一个插值函数kind的取值是字符串,指明插值方法拟合最小二乘拟合:已知一组二维数据,即
2022-01-15 22:55:45
915
原创 美赛python学习d4--python在高等数学和线性代数中的应用
科学计算设计数值计算和符号计算,在python中作基础数值计算用numpy和scipy工具库,作符号运算用sympy工具库sympy工具库–符号运算符号运算基本知识利用symbols函数创建符号变量构造多个符号变量时中间以空格分隔利用符号变量创建表达式利用符号表达式的subs方法计算表达式的符号值,利用evalf或n方法获得任何对象的浮点近似值sympy处理有理数的合并,化简together函数计算有理数的加法apart函数计算有理数的除法上述together函
2022-01-13 12:14:34
600
原创 美赛python学习d3--数据处理与可视化
文件操作数据处理工具pandaspandas的序列与数据框1. 序列Series序列由两列构成,可以由列表,元组,数组,字典构造得到,可以自己命名索引index2. 数据框DataFrame相当于是二维表格,可以自己命名索引外部文件的存取基于pandas库实现文本文件和Excel文件的读取read_csv函数读取txt或csv文件...
2022-01-11 12:42:43
717
原创 美赛python学习d2--数据处理与可视化
数值计算工具numpy数组的创建利用array函数创建一维和二维数组arange函数arange(start,stop,step,dtype) :在[start,stop)区间内创建均匀间隔的值,返回数组对象linspace函数linspace(start,stop,num,dtype) :在[start,stop]区间内创建均匀间隔的值,共num个,返回数组对象empty,zeros,ones函数empty/zeros/ones([m,n])创建m*n的空/全0/全1数组...
2022-01-06 22:41:57
1118
原创 美赛python学习d1--基础知识
基本数据类型整形,浮点型布尔型字符型:单引号,双引号和三引号,三引号可以保留字符串的格式如换行基本数据处理变量赋值m=n=10;a,b,c=80,60,20;输入输出print格式化输出input输入的永远是字符串,需要通过int 或float函数进行类型转换运算符和表达式...
2022-01-02 23:11:26
632
原创 算法学习-平摊分析
平摊分析的目的算法的时间复杂度不好分析时,将总的代价平摊到每个操作上来分析总的时间复杂度的分析方法注:都要按最坏的情况算平摊分析的常用方法聚集法:数学计算+结合具体场景更细致地分析会计法:为每种操作分配不同的平摊代价,操作被执行时,若实际代价小于分配的平摊代价,则剩余的部分作为存款存到银行里;若实际代价大于分配的平摊代价,则从银行里取出“存款”来支付不足的代价。只要保证银行里的存款永远是非负的,则所有平摊代价求和就是算法的时间复杂度的上界势能法:定义整个数据结构的势能函数。为每种操作分配不同的
2021-11-30 21:57:58
3165
原创 算法学习:搜索
暴力美学枚举每一个可能解,如8-puzzle,Hamiltonian环问题深度优先和广度优先BFSDFS搜索的优化爬山策略(局部贪心优化DFS)问题的引入DFS时遇到多个节点可以扩展时先扩展谁?爬山策略使用贪心方法来确定先扩展谁,是一种局部优化观念,不一定得到全局优化解Best-First策略(全局优化BFS )构造一个评价函数,在当前产生的所有节点中选择具有最小评价函数值的节点进行扩展,得到的解是全局优化解分支界限使用爬山法或者BF算法得到一个可行解,作为优化解的一个界限
2021-11-30 11:17:13
266
原创 算法学习-贪心
贪心算法区间问题将每个区间按右端点排序从前往后枚举每个区间,如果当前区间中已经包含点,则直接pass,否则,选择当前区间的右端点算法正确性的证明
2021-11-29 20:39:06
1921
原创 算法学习-动态规划
DPDP的理解方式状态表示:集合:所有选法的集合属性:状态集合里的最大值,最小值,数量2. 状态计算:集合的划分划分原则:不漏背包模型01背包二维数组# include <iostream>using namespace std;const int N=1001;int f[N][N];int v[N];int w[N];int main(){ int n,m; cin>>n>>m; for(int i=1;
2021-11-28 21:55:52
275
原创 排序和分治法
常见使用分治法的排序归并排序以中间元素为划分,分成两个子问题伪代码和时间复杂度快速排序确定一个数组中不大不小的数x为划分标准,将小于x的元素放到x前面,大于x的元素放到x后面,划分为两个子问题时间复杂度分析最好情况作为划分的元素选取适当,数组被分为长度大致相当的两部分,相当于每次对半分T(n)=2T(n/2)+θ(n),T(n)=O(nlgn)T(n)=2T(n/2)+\theta(n),T(n)=O(nlgn)T(n)=2T(n/2)+θ(n),T(n)=O(nlgn)最坏情况划
2021-11-27 17:34:00
279
原创 算法的时间复杂度分析
用增长的阶表示算法运行的效率五种阶函数同阶低阶高阶严格低阶严格高阶注:非所有函数都可比和式估计:分析代码运行时间调和级数放缩法利用前后项之比小于常数放缩一个错误的证明这里偷换了概念,注意在使用数学归纳法时,假设m=n时∃n0,cst.n>=n0、sumk=1n<=cn\exists n_0,c st . n >=n_0 、sum_{k=1}^{n}<=cn∃n0,cst.n>=n0、sumk=1n<=cn证明当m=n+1时
2021-11-25 12:03:22
423
原创 数据结构复习-线性表有关操作
数据结构复习-线性表有关操作1.线性表反向和逆序2.有序表的二分查找3.有序表的归并4.线性表的元素划分5.顺序表循环移位6.单向链表环问题:快慢指针7.链表求倒数第k个数,中间数8.单向链表交叉问题9.有序表的归并一,反向和逆序思路是从第二个数据节点开始每个节点先删除再头插LinkListNode* reverse(LinkListNode *head){if(!head->next||!head->next->next)return head;else
2021-05-23 14:46:35
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人