位置: IT常识 - 正文

机器学习——感知机

编辑:rootadmin
机器学习——感知机

推荐整理分享机器学习——感知机,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本章节主要介绍感知机的基础知识,虽然在目前的机器学习范围内,感知机已经不怎么使用,但是通过对感知机的学习可以更好的了解以后的线性模型等相关知识。

同时读者可以点击链接:机器学习-目录_欲游山河十万里的博客-CSDN博客

学习完整的机器学习的相关知识。 

目录

感知机

一、感知机的学习目标

二、感知机的介绍

2.1感知机模型 

2.2感知机损失函数的定义

 2.3简单的理解感知机的原理

2.4感知机结构介绍

2.4.1简单的逻辑电路

 三、感知机的引入

3.1 线性可分和线性不可分

3.2感知机模型分析

四、感知机原始形式(鸢尾花分类)

4.1数据集的准备

4.1.1导入包

4.1.2导入数据集

 4.1.3原始数据可视化

4.1.4划分数据集和标签 

4.1.5感知机的实现 

4.2感知机原始形式(鸢尾花分类)

 4.2.1导入模块​​​​​

 4.2.2自定义感知机模型

4.2.3获取数据

参考文献 

写在最后

感知机

感知机在1957年被提出,算是最古老的分类方法之一。

虽然感知机泛化能力不及其他的分类模型,但是如果能够对感知机的原理有一定的认识,在之后学习支持向量机、神经网络等机器学习算法的时候会轻松很多。

一、感知机的学习目标感知机模型感知机的损失函数和目标函数感知机原始形式和对偶形式感知机流程感知机优缺点二、感知机的介绍

在本部分,我参考了网上多位博文对感知机的不同理解,大家可以根据自己的喜好进行对应的理解。

输入为实例的特征向量,输出为实例的类别,取+1和-1;

感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型;

导入基于误分类的损失函数; 利用梯度下降法对损失函数进行极小化;

感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式;

1957年由Rosenblatt提出,是神经网络与支持向量机的基础。

2.1感知机模型 2.2感知机损失函数的定义

 

 

 2.3简单的理解感知机的原理

1.感知机是根据输入实例的特征向量对其进行二类分类的线性分类模型:

感知机模型对应于输入空间(特征空间)中的分离超平面。

2.感知机学习的策略是极小化损失函数:

   求出L最小数值时候的,w,b的值

损失函数对应于误分类点到分离超平面的总距离。

3.感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。算法简单且易于实现。原始形式中,首先任意选取一个超平面,然后用梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点使其梯度下降。

4.当训练数据集线性可分时,感知机学习算法是收敛的。感知机算法在训练数据集上的误分类次数满足不等式:

当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。

2.4感知机结构介绍

感知机接收多个输入信号,输出一个信号。感知机的信号只有“流/不流”(1/0)两种取值。0对应“不传递信号”,1对应“传递信号”。

----上图是一个接收两个输入信号的感知机的例子。x1、x2是输入信号,y是输出信号,w1、w2是权重(w是weight的首字母)。图中的○称为“神经元”或者“节点”。输入信号被送往神经元时,会被分别乘以固定的权重(w1x1、w2x2)。神经元会计算传送过来的信号的总和,只有当这个总和超过了某个界限值时,才会输出1。这也称为“神经元被激活”。这里将这个界限值称为阈值,用符号θ表示。

----感知机的多个输入信号都有各自固有的权重,这些权重发挥着控制各个信号的重要性的作用。也就是说,权重越大,对应该权重的信号的重要性就越高。 ----权重相当于电流里所说的电阻。电阻是决定电流流动难度的参数,电阻越低,通过的电流就越大。而感知机的权重则是值越大,通过的信号就越大。不管是电阻还是权重,在控制信号流动难度(或者流动容易度)这一点上的作用都是一样的。

下面开始举一些简单的例子并通过python语言实现这些案例

2.4.1简单的逻辑电路

与门

 与非门和或门(NAND gate)

----与非门就是颠倒了与门的输出。仅当x1和x2同时为1时输出0,其他时候则输出1。

与非真值表

机器学习——感知机

 或门的表

下面开始代码的具体实现操作。

import numpy as npdef AND(x1,x2):#与门操作,需要x1和x2全部为1的情况下,才可以输出1 x = np.array([x1,x2]) w = np.array([0.5,0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1def NAND(x1,x2):#与非门操作,仅当x1和x2同时为1时输出0,其他时候则输出1 x = np.array([x1,x2]) w = np.array([-0.5,-0.5]) b = 0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1def OR(x1, x2):#或门操作,相同为0,不同为1 x = np.array([x1,x2]) w = np.array([0.5,0.5]) b = -0.2 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1if __name__=="__main__": x1=1 x2=1 tmp=AND(x1,x2) print(tmp) 三、感知机的引入

本部分主要对感知机的实际运用举一些例子,希望可以尽可能方便理解感知机的运用

3.1 线性可分和线性不可分

每逢下午有体育课,总会有男孩和女孩在学校的操场上玩耍。

假设由于传统思想的影响,男孩总会和男孩一起打打篮球,女孩总会和女孩一起踢毽子、跳跳绳,如下图所示。

# 感知机引入图例import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties#设置中文字体的目录地址font = FontProperties(fname='C:\\windows\\fonts\\simsun.ttc')np.random.seed(1)x1 = np.random.random(20)+1.5#生成20行一列的x1数据,数据范围都在0-1范围内随机生成并对每个数加上1.5,即1.5-2.5范围内y1 = np.random.random(20)+0.5#y1的取值范围是0.5-1.5x2 = np.random.random(20)+3#x2的取值范围是3.0-4.0y2 = np.random.random(20)+0.5#y2的取值范围是0.5-1.5# 一行二列第一个plt.subplot(1,2,1)#绘制(x1,y1)的散点图plt.scatter(x1, y1, s=50, color='b', label='男孩(+1)')#绘制(x2,y2)的散点图plt.scatter(x2, y2, s=50, color='r', label='女孩(-1)')plt.vlines(2.8, 0, 2, colors="r", linestyles="-", label='$wx+b=0$')plt.title('线性可分', fontproperties=font, fontsize=20)plt.xlabel('x')plt.legend(prop=font)# 一行二列第二个plt.subplot(1,2,2)plt.scatter(x1, y1, s=50, color='b', label='男孩(+1)')plt.scatter(x2, y2, s=50, color='r', label='女孩(-1)')plt.scatter(3.5, 1, s=50, color='b')#这个时候有一个男孩跑到女孩的范围内plt.title('线性不可分', fontproperties=font, fontsize=20)#设置图片的标题plt.xlabel('x')plt.legend(prop=font, loc='upper right')plt.show()

从左图中也可以看出总能找到一条直线将男孩和女孩分开,即男孩和女孩在操场上的分布是线性可分的,此时该分隔直线为 ωx+b=0。其中ω,b是参数,x是男孩和女孩共有的某种特征。如果某个男孩不听话跑到女孩那边去了,如下图右图所示,则无法通过一条直线能够把所有的男孩和女孩分开,则称男孩和女孩在操场上的分布是线性不可分的,即无法使用感知机算法完成该分类过程。上述整个过程其实就是感知机实现的一个过程。

3.2感知机模型分析

感知机是一个二分类线性模型,即输出为实例的类别,一般为其中一类称为正类(+1),另一类称为负类(−1)。

可以把上图所示的男孩(+1)称为正类,女孩(−1)称为负类。假设有m个实例n维特征并且数据线性可分的数据集

T={(x1,y1),(x2,y2),⋯,(xm,ym)}T={(x1,y1),(x2,y2),⋯,(xm,ym)}

它的输出空间即y的取值是y={+1,−1}。

由于数据线性可分,如果是二维空间,则总能找到一条直线将二维空间中的数据集分为两类,

如上图所示的 ωx+b=0,如果是三维空间,则能找到一个平面把三维空间中的数据集分为两类。

对于上述的假设的数据集T,则总能找到一个超平面S将该数据集分成两类,该超平面S可以记作

四、感知机原始形式(鸢尾花分类)4.1数据集的准备

 本部分使用sklearn的鸢尾花数据。

sklearn.datasets.load_iris(*, return_X_y=False, as_frame=False)

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性(分别是:花萼长度,花萼宽度,花瓣长度,花瓣宽度)。可通过这4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类的鸢尾花中的哪一类。

Iris里有两个属性iris.data,iris.target。data是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,一共有150条记录。

4.1.1导入包import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport matplotlib.pyplot as plt4.1.2导入数据集

iris = load_iris()用来加载数据 df['label'] = iris.target划分数据的标签 这里我们只取花萼长度,花萼宽度,花瓣长度,花瓣宽度为属性 df.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']

iris = load_iris()df = pd.DataFrame(iris.data, columns=iris.feature_names)df['label'] = iris.targetdf.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']df.label.value_counts() 4.1.3原始数据可视化

照花萼长度,花萼宽度进行可视化数据划分,0-49为0类,50-99为1类。

#使用0-50行地数据绘制一个scatter图plt.scatter(df[:50]['sepal length'], df[:50]['sepal width'], label='0')#使用50-100行的数据绘制一个scatter图plt.scatter(df[50:100]['sepal length'], df[50:100]['sepal width'], label='1')plt.xlabel('sepal length')plt.ylabel('sepal width')

 完整的代码

import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport matplotlib.pyplot as plt#以上的内容是实验过程中需要的导包iris = load_iris()df = pd.DataFrame(iris.data, columns=iris.feature_names)#开始导入数据df['label'] = iris.target#划分数据的标签df.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']print(df.label.value_counts())#使用0-50行地数据绘制一个scatter图plt.scatter(df[:50]['sepal length'], df[:50]['sepal width'], label='0')#使用50-100行的数据绘制一个scatter图plt.scatter(df[50:100]['sepal length'], df[50:100]['sepal width'], label='1')plt.xlabel('sepal length')plt.ylabel('sepal width')#有这两个50的数据分属于两个不同的类别,所以可以清晰的看出图片的分类性质plt.show()4.1.4划分数据集和标签 data = np.array(df.iloc[:100, [0, 1,-1]])#data取得的数据是0列,1列和最后一列的数据#print(data)#print(data.shape)#(100,3)#x取得除最后一列的所有数据,y取得最后一列的所有数据x, y = data[:, :-1], data[:, -1]#print(x.shape)#(100,2)#print(y.shape)#(100,1)#将y中的值转化成1和-1y = np.array([1 if i == 1 else -1 for i in y])#如果y的值是1,那么就赋值为1,否则就赋值为-1#print(y)4.1.5感知机的实现 #coding = utf-8#数据线性可分,二分类数据#此处为一元一次线性方程import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport matplotlib.pyplot as plt#以上的内容是实验过程中需要的导包iris = load_iris()df = pd.DataFrame(iris.data, columns=iris.feature_names)#开始导入数据df['label'] = iris.target#划分数据的标签df.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']class Model: def __init__(self): self.w = np.ones(len(data[0]) - 1, dtype=np.float32)#生成一个w系数 self.b = 0#设置初始化的偏置量 self.l_rate = 0.000001#设置学习率,发现改变学习率之后绘制的图片效果不一样 # self.data = data def sign(self, x, w, b):#实现wx+b的操作 y = np.dot(x, w) + b return y #随机梯度下降法 def fit(self, X_train, y_train): is_wrong = False while not is_wrong: wrong_count = 0 for d in range(len(X_train)): X = X_train[d] y = y_train[d] if y * self.sign(X, self.w, self.b) <= 0: self.w = self.w + self.l_rate * np.dot(y, X) #w=w+l_rate*y*x self.b = self.b + self.l_rate * y #b=b+l_rate*y wrong_count += 1 if wrong_count == 0: is_wrong = True return 'Perceptron Model!' def score(self): passdata = np.array(df.iloc[:100, [0, 1,-1]])#data取得的数据是0列,1列和最后一列的数据#print(data)#print(data.shape)#(100,3)#x取得除最后一列的所有数据,y取得最后一列的所有数据x, y = data[:, :-1], data[:, -1]#print(x.shape)#(100,2)#print(y.shape)#(100,1)#将y中的值转化成1和-1y = np.array([1 if i == 1 else -1 for i in y])#如果y的值是1,那么就赋值为1,否则就赋值为-1#print(y)perceptron = Model()perceptron.fit(x, y)x_points = np.linspace(4, 7, 10)#x_points数据在系数的作用下,产生一个分类线y_ = -(perceptron.w[0] * x_points + perceptron.b) / perceptron.w[1] #y_=(w0*x+b)/w1print(y_)plt.plot(x_points, y_)#plt.plot(data[:50, 0], data[:50, 1], 'bo', color='blue', label='0')plt.plot(data[50:100, 0], data[50:100, 1], 'bo', color='orange', label='1')plt.xlabel('sepal length')plt.ylabel('sepal width')plt.legend()plt.show()

4.2感知机原始形式(鸢尾花分类)

这部分的博文,我是直接从其他大佬的博文转过来的来,区别不大,诸位有兴趣可以去给这位大佬点个赞

02-03 感知机对偶形式(鸢尾花分类) - 二十三岁的有德 - 博客园

 4.2.1导入模块​​​​​import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.colors import ListedColormapfrom matplotlib.font_manager import FontPropertiesfrom sklearn.datasets import load_iris# 中文字体设置font = FontProperties(fname='C:\\windows\\fonts\\simsun.ttc') 4.2.2自定义感知机模型class Perceptron(): """自定义感知机算法""" def __init__(self, learning_rate=0.01, num_iter=50, random_state=1): self.learning_rate = learning_rate self.num_iter = num_iter#循环遍历更新权重直至算法收敛 self.random_state = random_state def fit(self, X, y): """初始化并更新权重""" # 通过标准差为0.01的正态分布初始化权重 rgen = np.random.RandomState(self.random_state) self.w_ = rgen.normal(loc=0.0, scale=0.01, size=1 + X.shape[1]) self.errors_ = [] # 循环遍历更新权重直至算法收敛 for _ in range(self.num_iter): errors = 0 for x_i, target in zip(X, y): # 分类正确不更新,分类错误更新权重 update = self.learning_rate * (target - self.predict(x_i)) self.w_[1:] += update * x_i self.w_[0] += update errors += int(update != 0.0) self.errors_.append(errors) return self def predict_input(self, X): """计算预测值""" return np.dot(X, self.w_[1:]) + self.w_[0] def predict(self, X): """得出sign(预测值)即分类结果""" return np.where(self.predict_input(X) >= 0.0, 1, -1)4.2.3获取数据

由于获取的鸢尾花数据总共有3个类别,所以只提取前100个鸢尾花的数据得到正类(versicolor 杂色鸢尾)和负类(setosa 山尾),并分别用数字1和-1表示,并存入标记向量y,之后逻辑回归会讲如何对3个类别分类。同时由于三维以上图像不方便展示,将只提取第三列(花瓣长度)和第三列(花瓣宽度)的特征放入特征矩阵X。

'''df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)注释的这一行代码的作用和下面的三行代码的作用是一样的,但是在格式上还是有一些不一样,比如对不同分类的命名方式上的区别'''iris = load_iris()df = pd.DataFrame(iris.data, columns=iris.feature_names)#开始导入数据df['label'] = iris.target#划分数据的标签print(df)# 取出前100行的第五列即生成标记向量y = df.iloc[0:100, 4].valuesy = np.where(y == 1, 1, -1)# 取出前100行的第一列和第三列的特征即生成特征向量X = df.iloc[0:100, [2, 3]].valuesplt.subplot(1,3,1)plt.scatter(X[:50, 0], X[:50, 1], color='r', s=50, marker='x', label='山鸢尾')plt.scatter(X[50:100, 0], X[50:100, 1], color='b', s=50, marker='o', label='杂色鸢尾')plt.xlabel('花瓣长度(cm)', fontproperties=font)plt.ylabel('花瓣宽度(cm)', fontproperties=font)plt.subplot(1,3,2)perceptron = Perceptron(learning_rate=0.1, num_iter=10)perceptron.fit(X, y)plt.plot(range(1, len(perceptron.errors_) + 1), perceptron.errors_, marker='o')plt.xlabel('迭代次数', fontproperties=font)plt.ylabel('更新次数', fontproperties=font)plt.subplot(1,3,3)plot_decision_regions(X, y, classifier=perceptron)plt.xlabel('花瓣长度(cm)', fontproperties=font)plt.ylabel('花瓣宽度(cm)', fontproperties=font)plt.legend(prop=font)plt.show()

参考文献 

复现经典:《统计学习方法》第 2 章 感知机

02-01 感知机 - 二十三岁的有德 - 博客园

感知机介绍_机器人_robot的博客-CSDN博客_感知机

感知机python代码实现_maggieyiyi的博客-CSDN博客_感知机代码

02-02 感知机原始形式(鸢尾花分类) - 二十三岁的有德 - 博客园

02-03 感知机对偶形式(鸢尾花分类) - 二十三岁的有德 - 博客园

pandas中df.iloc函数应用_天山卷卷卷的博客-CSDN博客_df1.iloc

什么是感知机(超详细 | 图文)_Xav Zewen的博客-CSDN博客_感知机

写在最后

为了完成这一篇博文,我参考了如上很多个大佬的博文,我真心地觉得诸位大佬地水平高超,博文条例清晰,诸位可以直接通过链接阅读我所推荐地几位大佬地博文。

本文链接地址:https://www.jiuchutong.com/zhishi/300735.html 转载请保留说明!

上一篇:PyTorch深度学习实战 | 基于ResNet的人脸关键点检测

下一篇:Vue3项目搭建全过程(vue3环境搭建)

  • 国家政务服务平台自查是真的假的(国家政务服务平台app)

    国家政务服务平台自查是真的假的(国家政务服务平台app)

  • 联想电脑自带录屏功能在哪(联想电脑自带录屏软件)

    联想电脑自带录屏功能在哪(联想电脑自带录屏软件)

  • iphone怎么把照片传到电脑(iphone怎么把照片传到另一个iphone)

    iphone怎么把照片传到电脑(iphone怎么把照片传到另一个iphone)

  • iwatch怎么注销ID切换新的ID(iwatch怎么注销ID)

    iwatch怎么注销ID切换新的ID(iwatch怎么注销ID)

  • 怎么qq回复对方单条信息(怎么qq回复对方匿名提问)

    怎么qq回复对方单条信息(怎么qq回复对方匿名提问)

  • 个性名片怎么取消(个性名片怎么设计)

    个性名片怎么取消(个性名片怎么设计)

  • 米粉卡怎么注销(米粉卡怎么注销 电信)

    米粉卡怎么注销(米粉卡怎么注销 电信)

  • duktl30是什么型号(duk al20是什么型号)

    duktl30是什么型号(duk al20是什么型号)

  • 苹果手机控制中心图标什么意思(苹果手机控制中心的家庭怎么关闭)

    苹果手机控制中心图标什么意思(苹果手机控制中心的家庭怎么关闭)

  • 微信发的视频多久过期(微信发的视频多久过期点不开)

    微信发的视频多久过期(微信发的视频多久过期点不开)

  • ipad 6th是什么型号(ipad6属于什么型号)

    ipad 6th是什么型号(ipad6属于什么型号)

  • 手机通话时如何录音(手机通话中怎么设置)

    手机通话时如何录音(手机通话中怎么设置)

  • 抖音直播里怎么抢红包(抖音直播里怎么没有小黄车了)

    抖音直播里怎么抢红包(抖音直播里怎么没有小黄车了)

  • xr是苹果几代(xr是苹果几代和8p哪个好)

    xr是苹果几代(xr是苹果几代和8p哪个好)

  • 手机扰码是哪个(荣耀手机扰码是哪个)

    手机扰码是哪个(荣耀手机扰码是哪个)

  • iphone剪贴板在哪里(iphone剪贴板在哪里清除)

    iphone剪贴板在哪里(iphone剪贴板在哪里清除)

  • 手机拔号键如何恢复(手机拔号键有什么功能)

    手机拔号键如何恢复(手机拔号键有什么功能)

  • 荣耀手环3怎么用(荣耀手环3怎么连接苹果手机)

    荣耀手环3怎么用(荣耀手环3怎么连接苹果手机)

  • 95017如何转人工服务(95017如何转人工服务没有接)

    95017如何转人工服务(95017如何转人工服务没有接)

  • ios12相册人物怎么添加(iphone12相簿 增加人物)

    ios12相册人物怎么添加(iphone12相簿 增加人物)

  • 苹果xr摄像头掉漆怎么办(苹果xr摄像头掉了)

    苹果xr摄像头掉漆怎么办(苹果xr摄像头掉了)

  • 鸿蒙系统公测版值得升级吗 鸿蒙公测版使用体验(鸿蒙系统公测版和beta版有什么区别)

    鸿蒙系统公测版值得升级吗 鸿蒙公测版使用体验(鸿蒙系统公测版和beta版有什么区别)

  • window.location.href的用法(window.location.href返回值)

    window.location.href的用法(window.location.href返回值)

  • 块元素和行内元素及其元素转换(块元素和行内元素区别)

    块元素和行内元素及其元素转换(块元素和行内元素区别)

  • 总结JS中常用的数组的方法大全(总结js中常用的字符)

    总结JS中常用的数组的方法大全(总结js中常用的字符)

  • 小微企业要做企业年金吗
  • 生产车间领用材料,用于产品生产
  • 个人开具劳务费增值税发票
  • 定期定额征收如何办理税费认定
  • 工资扣水电费怎么算
  • 预提工资与计提工资的区别
  • 对赌协议补偿款计入哪个科目
  • 工程违约金收入如何入账
  • 进口增值税的账务处理
  • 食堂收入支出结构图
  • 案例分析个人总结报告
  • 简易征收是什么意思和一般纳税人
  • 办税人员的职责和义务
  • 购买电力维修材料怎么做分录?
  • 小规模纳税人收到专票后如何处理
  • mac book air文件夹怎么重命名
  • win10壁纸图片怎么删除
  • 电脑不支持cpu
  • 流动资产固定资产和无形资产都是资产类账户
  • 确认收入是收到款了吗
  • 哪些情形需要办理外债审核登记
  • 去年的成本如何调整
  • 收到政府补贴的装修款
  • php中??
  • Linux怎么修改账户名
  • xp系统可以安装cad吗
  • 增值税发票选择确认平台注意事项
  • php中分页功能的实现
  • 政策性搬迁条件
  • 头歌java入门运算符和表达式答案
  • yii框架运行原理
  • thinkphp框架作用
  • 成功解决冲突的能力英语
  • 什么是市盈率和市净率,谈谈你对两个指标的理解
  • 网络应用开发技术
  • AttributeError: cannot assign module before Module.__init__() call
  • 知识图谱的构建方法有两种
  • php上传文件限制大小
  • 发票确认平台勾选步骤
  • springboot自动配置的注解
  • 企业所得税汇算清缴
  • 减值损失和减值损失区别
  • 淘宝天猫开票是普票还是专票
  • 存货资产减值损失借贷方向
  • 工程咨询属于什么服务业
  • 预收帐款
  • mysql数据类型和java对应
  • 附加税减免计入什么科目
  • 以前年度费用退回
  • 走账犯罪吗
  • 汽车运输企业交什么税
  • 生产企业成本核算案例
  • 资金占用费怎么写
  • 固定资产超过多少入账
  • 房产置换怎么做
  • 投资性房地产从成本模式转为公允价值模式
  • 提供劳务收入的确认条件
  • 如何理解什么是半殖民地半封建社会
  • 单身租房子
  • Navicat for MySQL定时备份数据库及数据恢复详解
  • freebsd软件安装
  • linux 磁盘情况
  • windows102021年更新
  • win8自动启动项怎么设置
  • Linux系统中如何编译C程序?
  • 举例讲解水生花卉栽培管理
  • python for key in
  • python 基础入门
  • nodejs项目实例
  • js正则匹配特殊符号
  • unity常用api
  • node作为中间件做接口转发
  • 好看的手写字纯文字
  • 如何用android
  • 收到农产品普通发票怎么抵扣
  • 电子税务局增值税申报表下载
  • 销售黄金饰品
  • 租房完税证明需要房东交钱吗?
  • 四川成都离剑门多远
  • 公共卫生委员会领导小组
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设