位置: IT常识 - 正文

Python二手房价格预测(三)——二手房价格预测模型baseline(2手房价格)

编辑:rootadmin
Python二手房价格预测(三)——二手房价格预测模型baseline 系列文章目录

推荐整理分享Python二手房价格预测(三)——二手房价格预测模型baseline(2手房价格),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:二手房房价预测python,二手房价格网,一二手房价格,python北京二手房数据分析,2手房价格,二手市场房价,2手房价格,二手房房价预测python,内容如对您有帮助,希望把文章链接给更多的朋友!

一、Python二手房价格预测(一)——数据获取

二、Python二手房价格预测(二)——数据处理及数据可视化

文章目录系列文章目录前言一、数据处理二、模型训练1.引入库2.读入数据3.评价指标4.线性回归5.K近邻6.决策树回归7.随机森林8.各模型结果三、重要特征筛选结语前言

        在上次分享中我们对数据进行了部分预处理和数据可视化,接下来将对数据完全处理,并且使用几种基线模型对二手房的价格进行预测。

一、数据处理

        上次分享中我们将部分数据处理成了数值型数据,还有部分Object类型数据没有进行处理,先对这些数据进行一个处理。

def xiaoquInfo(df, flag): xiaoqu = json.loads(df['小区简介'].replace("'", '"')) if flag == 1: return int(xiaoqu['小区建造年份'][:-1]) elif flag == 2: return int(xiaoqu['楼栋总数'][:-1]) else: return xiaoqu['小区均价']data['小区建造年份'] = data.apply(lambda x:xiaoquInfo(x, 1), axis=1)data['楼栋总数'] = data.apply(lambda x:xiaoquInfo(x, 2), axis=1)data['小区均价'] = data.apply(lambda x:xiaoquInfo(x, 3), axis=1)# 剔除一些无用列,其中“户型分间”列还可以提取一些东西,这里为了节约时间我就没做,有能力的同学可以试着提取一些有效数据data = data[['总价', '单位价格', '楼房信息', '所属区县', '所在楼层', '建筑面积', '户型结构', '套内面积', '建筑类型', '房屋朝向', '建筑结构', '装修情况', '供暖方式', '配备电梯', '挂牌时间', '交易权属', '上次交易', '房屋用途', '房屋年限', '产权所属', '抵押信息', '房屋户型_室', '房屋户型_厅', '房屋户型_厨', '房屋户型_卫', '梯户比例_梯', '梯户比例_户', '梯户比例_比例', '小区建造年份', '楼栋总数', '小区均价']]# 将列中只含两种类型的列进行0-1转换,“抵押信息”列中,可以理解为只含“无抵押”和“有抵押”def diyaInfo(df): if df['抵押信息'] == '无抵押': return 0 else: return 1data['抵押信息_01'] = data.apply(lambda x:diyaInfo(x), axis=1)data['产权所属'] = data['产权所属'].replace("非共有", 0).replace("共有", 1)# 将数据获取时间定义data['数据获取日期'] = '2022-04-24'# 定义一下处理日期型数据的函数,将日期转化为时间差值,天为单位import datetimedef calDate(df, c): if df[c] == '暂无数据': return np.nan d1=datetime.datetime.strptime('2022-04-24',"%Y-%m-%d") d2=datetime.datetime.strptime(df[c],"%Y-%m-%d") diff_days=d1-d2 return diff_days.daysfor c in ['挂牌时间', '上次交易']: data[c+'差(天)'] = data.apply(lambda x:calDate(x, c), axis=1)# 有空缺值按均值填充了for c in ['挂牌时间差(天)', '上次交易差(天)']: data[c].fillna(data[c].mean(), inplace=True)# 生成房龄数据data['房龄'] = 2022 - data['楼房信息']# 将某些列做独热编码处理,房屋朝向这一列含有的类别过多,做独热编码时会使数据稀疏,因此,将一些少量类别的数据进行合并为“其他朝向”def calChaoxiang(df): chaoxiangCol = ['南 北', '南', '东南', '西南', '北 南', '东 南 北', '西北', '西', '东', '南 西 北', '东北', '北', '东 西', '南 北 西', '东 北', '南 北 东'] if df['房屋朝向'] not in chaoxiangCol: return "其他朝向" else: return df['房屋朝向']data['房屋朝向'] = data.apply(lambda x:calChaoxiang(x), axis=1)one_hot_col_names = ['所属区县', '所在楼层', '户型结构', '建筑类型', '房屋朝向', '建筑结构', '装修情况', '供暖方式', '配备电梯', '交易权属', '房屋用途', '房屋年限']# 删除已处理过的时间列data.drop(['挂牌时间', '上次交易', '数据获取日期'], axis=1, inplace=True)one_hot_data = pd.get_dummies(data[one_hot_col_names])data = pd.concat([data,one_hot_data],axis = 1)data.drop(one_hot_col_names, axis=1, inplace=True)# 将处理过的数据导出(注意,这一部分代码要续上之前分享过的代码,上次数据处理不完全)data.to_excel("二手房数据(处理后).xlsx", index=False)二、模型训练1.引入库

代码如下:

# 写在前面,大家可以关注一下微信公众号:吉吉的机器学习乐园# 可以通过后台获取数据,不定期分享Python,Java、机器学习等相关内容import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.pyplot import MultipleLocatorimport sysimport seaborn as snsimport warningsimport mathwarnings.filterwarnings("ignore")plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号pd.set_option('display.max_rows', 100,'display.max_columns', 1000,"display.max_colwidth",1000,'display.width',1000)from sklearn.metrics import *from sklearn.linear_model import *from sklearn.neighbors import *from sklearn.svm import *from sklearn.neural_network import *from sklearn.tree import *from sklearn.ensemble import *from xgboost import *import lightgbm as lgbimport tensorflow as tffrom tensorflow.keras import layersfrom sklearn.preprocessing import *from sklearn.ensemble import RandomForestRegressor as RFRfrom sklearn.model_selection import *2.读入数据

代码如下:

data = pd.read_excel("二手房数据(处理后).xlsx", na_values=np.nan)# 将数据划分输入和结果集X = data[ data.columns[1:] ]y_reg = data[ data.columns[0] ]# 切分训练集和测试集, random_state是切分数据集的随机种子,要想复现本文的结果,随机种子应该一致x_train, x_test, y_train, y_test = train_test_split(X, y_reg, test_size=0.3, random_state=42)3.评价指标平均绝对误差(MAE)

        平均绝对误差的英文全称为 Mean Absolute Error,也称之为 L1 范数损失。是通过计算预测值和真实值之间的距离的绝对值的均值,来衡量预测值与真实值之间的距离。计算公式如下:

均方误差(MSE)

        均方误差英文全称为 Mean Squared Error,也称之为 L2 范数损失。通过计算真实值与预测值的差值的平方和的均值来衡量距离。计算公式如下:

均方根误差(RMSE)

        均方根误差的英文全称为 Root Mean Squared Error,代表的是预测值与真实值差值的样本标准差。计算公式如下:

决定系数(R2)

        决定系数评估的是预测模型相对于基准模型(真实值的平均值作为预测值)的好坏程度。计算公式如下:

最好的模型预测的 R2 的值为 1,表示预测值与真实值之间是没有偏差的;

但是最差的模型,得到的 R2 的值并不是 0,而是会得到负值;

当模型的 R2 值为负值,表示模型预测结果比基准模型(均值模型)表现要差;

当模型的 R2 值大于 0,表示模型的预测结果比使用均值预测得到的结果要好。

定义评价指标函数:

# 评价指标函数定义,其中R2的指标可以由模型自身得出,后面的score即为R2def evaluation(model): ypred = model.predict(x_test) mae = mean_absolute_error(y_test, ypred) mse = mean_squared_error(y_test, ypred) rmse = math.sqrt(mse) print("MAE: %.2f" % mae) print("MSE: %.2f" % mse) print("RMSE: %.2f" % rmse) return ypred4.线性回归

代码如下:

model_LR = LinearRegression()model_LR.fit(x_train, y_train)print("params: ", model_LR.get_params())print("train score: ", model_LR.score(x_train, y_train))print("test score: ", model_LR.score(x_test, y_test))predict_y = evaluation(model_LR)

输出结果:

params: {'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 'normalize': False}train score: 0.9393799595620992test score: 0.9369392050137573MAE: 12.11MSE: 370.69RMSE: 19.25

我们可以将 y_test 转换为 numpy 的 array 形式,方便后面的绘图。

test_y = np.array(y_test)

由于数据量较多,我们取预测结果和真实结果的前50个数据进行绘图。

plt.figure(figsize=(10,10))plt.title('线性回归-真实值预测值对比')plt.plot(predict_y[:50], 'ro-', label='预测值')plt.plot(test_y[:50], 'go-', label='真实值')plt.legend()plt.show()

上图中,绿色点为真实值,红色点为预测值,当两点几乎重合时,说明模型的预测结果十分接近。

5.K近邻

代码如下:

model_knn = KNeighborsRegressor()model_knn.fit(x_train, y_train)print("params: ", model_knn.get_params())print("train score: ", model_knn.score(x_train, y_train))print("test score: ", model_knn.score(x_test, y_test))predict_y = evaluation(model_knn)Python二手房价格预测(三)——二手房价格预测模型baseline(2手房价格)

输出结果:

params: {'algorithm': 'auto', 'leaf_size': 30, 'metric': 'minkowski', 'metric_params': None, 'n_jobs': None, 'n_neighbors': 5, 'p': 2, 'weights': 'uniform'}train score: 0.8055745690649098test score: 0.7144393809856229MAE: 27.67MSE: 1678.59RMSE: 40.97

绘图:

plt.figure(figsize=(10,10))plt.title('KNN-真实值预测值对比')plt.plot(predict_y[:50], 'ro-', label='预测值')plt.plot(test_y[:50], 'go-', label='真实值')plt.legend()plt.show()

6.决策树回归

代码如下:

model_dtr = DecisionTreeRegressor(max_depth = 5, random_state=30)model_dtr.fit(x_train, y_train)print("params: ", model_dtr.get_params())print("train score: ", model_dtr.score(x_train, y_train))print("test score: ", model_dtr.score(x_test, y_test))predict_y = evaluation(model_dtr)

        在这里,决策树学习器加入了一个 max_depth 的参数,这个参数限定了树的最大深度,设置这个参数的主要原因是为了防止模型过拟合

输出结果:

params: {'criterion': 'mse', 'max_depth': 5, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_decrease': 0.0, 'min_impurity_split': None, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': 30, 'splitter': 'best'}train score: 0.9624891829996234test score: 0.9457849042838976MAE: 12.19MSE: 318.69RMSE: 17.85

如果不限定树的最大深度会发生什么呢?

model_dtr = DecisionTreeRegressor(random_state=30)model_dtr.fit(x_train, y_train)print("params: ", model_dtr.get_params())print("train score: ", model_dtr.score(x_train, y_train))print("test score: ", model_dtr.score(x_test, y_test))predict_y = evaluation(model_dtr)

输出结果:

params: {'criterion': 'mse', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_decrease': 0.0, 'min_impurity_split': None, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': 30, 'splitter': 'best'}train score: 1.0test score: 0.9819886071850025MAE: 4.36MSE: 105.88RMSE: 10.29

获得树的最大深度:

model_dtr.get_depth()

输出结果:

17

        我们发现,在不限定树的最大深度时,决策树模型的训练得分(R2)为:1.0,但测试得分为:0.9819886071850025。         这就是模型过拟合,在训练数据上的表现非常良好,当用未训练过的测试数据进行预测时,模型的泛化能力不足,导致测试结果不理想。         感兴趣的同学可以自行查阅关于决策树剪枝的过程。

绘图:

plt.figure(figsize=(10,10))plt.title('决策树回归-真实值预测值对比')plt.plot(predict_y[:50], 'ro-', label='预测值')plt.plot(test_y[:50], 'go-', label='真实值')plt.legend()plt.show()

7.随机森林

代码如下:

model_rfr = RandomForestRegressor(random_state=30)model_rfr.fit(x_train, y_train)print("params: ", model_rfr.get_params())print("train score: ", model_rfr.score(x_train, y_train))print("test score: ", model_rfr.score(x_test, y_test))predict_y = evaluation(model_rfr)

输出结果:

params: {'bootstrap': True, 'criterion': 'mse', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_decrease': 0.0, 'min_impurity_split': None, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 10, 'n_jobs': None, 'oob_score': False, 'random_state': 30, 'verbose': 0, 'warm_start': False}train score: 0.9950702190060036test score: 0.9891553887607397MAE: 3.07MSE: 63.75RMSE: 7.98

绘图:

plt.figure(figsize=(10,10))plt.title('随机森林-真实值预测值对比')plt.plot(predict_y[:50], 'ro-', label='预测值')plt.plot(test_y[:50], 'go-', label='真实值')plt.legend()plt.show()

8.各模型结果

重新定义一个评估函数

def evaluation2(model): ypred = model.predict(x_test) mae = mean_absolute_error(y_test, ypred) mse = mean_squared_error(y_test, ypred) rmse = math.sqrt(mse) return ypred, mae, mse, rmse# 记录各个模型的误差及R2得分maeList = []mseList = []rmseList = []trainr2List = []testr2List = []for model in [model_LR, model_knn , model_dtr, model_rfr]: ypred, mae, mse, rmse = evaluation2(model) trainr2 = model.score(x_train, y_train) testr2 = model.score(x_test, y_test) maeList.append(mae) mseList.append(mse) rmseList.append(rmse) trainr2List.append(trainr2) testr2List.append(testr2)# 用折线图可视化一下plt.figure(figsize=(8,6))# plt.subplot(1,3,1)plt.plot(['线性回归', 'KNN', '决策树', '随机森林'], maeList, '--^', label="MAE")plt.plot(['线性回归', 'KNN', '决策树', '随机森林'], rmseList, '--*', label="RMSE")plt.legend()plt.show()plt.figure(figsize=(8,6))# plt.subplot(1,3,2)plt.plot(['线性回归', 'KNN', '决策树', '随机森林'], mseList, '--o', label="MAE")plt.legend()plt.show()plt.figure(figsize=(8,6))# plt.subplot(1,3,3)plt.plot(['线性回归', 'KNN', '决策树', '随机森林'], trainr2List, '--x', label="Train R2")plt.plot(['线性回归', 'KNN', '决策树', '随机森林'], testr2List, '--v', label="Test R2")plt.legend()plt.show()

        从上面的图中可以看出,随机森林模型的整体表现最好(随机森林yyds)。当然,这不代表最优结果,因为上述几种模型都没有进行调参优化,经过调参后的各个模型效果还有可能提升。

三、重要特征筛选

        为了提升模型效果也可以对数据做特征筛选,这里可以通过相关系数分析法,将影响二手房售价的特征与售价做相关系数计算,pandas包很方便的集成了算法,并且可以通过seaborn、matplotlib等绘图包将相关系数用热力图的方式可视化。

# 这里的列取data中,除0-1和独热编码形式的数据corr_cols = list(data.columns[:20])test_data = data[corr_cols]test_data_corr = test_data.corr()price_corr = dict(test_data_corr.iloc[0])price_corr = sorted(price_corr.items(), key=lambda x: abs(x[1]), reverse=True)# 输出按绝对值排序后的相关系数price_corr

输出结果,除"总价"外,共有19个特征:

[('总价', 1.0), ('单位价格', 0.8222981290702119), ('小区均价', 0.7687546742386121), ('建筑面积', 0.7251709920087407), ('套内面积', 0.7204559353359032), ('房屋户型_卫', 0.6312862646749), ('房屋户型_室', 0.5902144343661491), ('房屋户型_厅', 0.39760899920810316), ('梯户比例_比例', -0.3133978158118177), ('小区建造年份', 0.2796377353906572), ('梯户比例_户', -0.27384128491689264), ('房龄', -0.22880814058196702), ('楼房信息', 0.2288081405819666), ('上次交易差(天)', -0.1499606404095348), ('抵押信息_01', 0.0854414739678885), ('挂牌时间差(天)', 0.07980048870698007), ('梯户比例_梯', -0.06639533403491238), ('产权所属', 0.05344184918071662), ('房屋户型_厨', 0.04939490040354267), ('楼栋总数', -0.04560798084636813)]

绘制热力图:

price_corr_cols = [ r[0] for r in price_corr ]price_data = test_data_corr[price_corr_cols].loc[price_corr_cols]plt.figure(figsize=(15, 10))plt.title("相关系数热力图")ax = sns.heatmap(price_data, linewidths=0.5, cmap='OrRd', cbar=True)plt.show()

        为了验证相关系数分析出来的重要特征是否对模型有效,我们将模型效果最好的随机森林模型的前19个重要特征输出。

feature_important = sorted( zip(x_train.columns, map(lambda x:round(x,4), model_rfr.feature_importances_)), key=lambda x: x[1],reverse=True)for i in range(19): print(feature_important[i])

输出结果:

('单位价格', 0.6123)('建筑面积', 0.2775)('套内面积', 0.0853)('小区均价', 0.0121)('挂牌时间差(天)', 0.0025)('所属区县_和平', 0.0022)('房屋户型_卫', 0.001)('楼栋总数', 0.001)('楼房信息', 0.0008)('梯户比例_梯', 0.0008)('小区建造年份', 0.0006)('房龄', 0.0006)('上次交易差(天)', 0.0005)('户型结构_暂无数据', 0.0004)('房屋户型_室', 0.0002)('梯户比例_比例', 0.0002)('抵押信息_01', 0.0002)('配备电梯_有', 0.0002)('房屋用途_别墅', 0.0002)

        将相关系数分析出来的重要特征集合与随机森林的前19个重要特征取交集,并输出有多少个重复的特征。

f1_list = []f2_list = []for i in range(19): f1_list.append(feature_important[i][0])for i in range(1, 20): f2_list.append(price_corr[i][0])cnt = 0for i in range(19): if f1_list[i] in f2_list: print(f1_list[i]) cnt += 1print("共有"+str(cnt)+"个重复特征!")

输出结果:

单位价格建筑面积套内面积小区均价挂牌时间差(天)房屋户型_卫楼栋总数楼房信息梯户比例_梯小区建造年份房龄上次交易差(天)房屋户型_室梯户比例_比例抵押信息_01共有15个重复特征!结语

        回归预测模型的baseline总是相似的,掌握好套路就可以轻松得到一个baseline结果,一般都是先将数据进行清洗,将非数值型数据通过一些规则转化成数值型数据,再进行多特征的模型训练,一通百通。希望能给大家抛砖引玉,同学们可以根据自己的需求处理数据,不同的处理方法,模型的效果可能也不相同。回归问题的预测写了有两个系列的博客了,接下来应该不会再更新这方面的内容了,尝试一些新的知识,比如NLP、图像识别、推荐系统等等。我喜欢根据问题提出实际的解决方法,从0到1的去实现(掉包除外,hhh,有机会再从头好好学学原理,写各个模型的源码才有意思),因此可能就某些问题写一些实战。即将毕业,马上步入工作岗位了,希望能坚持下来写博客分享的习惯~

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

上一篇:从购买服务器到网站搭建成功保姆级教程~超详细(购买完服务器之后要怎么做)

下一篇:前端实现文件上传(点击+拖拽)(前端实现文件上传的命令)

  • 湖南省居民健康卡怎么修改手机号(湖南省居民健康卡挂号后怎么查询)

    湖南省居民健康卡怎么修改手机号(湖南省居民健康卡挂号后怎么查询)

  • ps5主题怎么设置(ps5主题在哪里更换)

    ps5主题怎么设置(ps5主题在哪里更换)

  • 抖音如何看访客足迹(抖音如何看访客记录)

    抖音如何看访客足迹(抖音如何看访客记录)

  • 华为mate30发布会哪里直播(华为mate30发布会主题曲)

    华为mate30发布会哪里直播(华为mate30发布会主题曲)

  • 微信搜索公众号为什么没有显示出来(微信搜索公众号内容)

    微信搜索公众号为什么没有显示出来(微信搜索公众号内容)

  • 腾讯课堂举手发言怎么没有声音(腾讯课堂举手发言后如何取消)

    腾讯课堂举手发言怎么没有声音(腾讯课堂举手发言后如何取消)

  • 笔记本电脑健盘按健按不了(笔记本电脑键盘灯不亮怎么回事)

    笔记本电脑健盘按健按不了(笔记本电脑键盘灯不亮怎么回事)

  • 美版s20支持国内5g吗(美版s20u支持国内5g吗)

    美版s20支持国内5g吗(美版s20u支持国内5g吗)

  • 为什么qq设置了自动回复没有反应(为什么qq设置了消息提醒后还是没有显示)

    为什么qq设置了自动回复没有反应(为什么qq设置了消息提醒后还是没有显示)

  • 抖音拉黑对方还能进直播间吗(抖音拉黑对方还能看到我的评论吗)

    抖音拉黑对方还能进直播间吗(抖音拉黑对方还能看到我的评论吗)

  • mt6755相当于骁龙哪一款处理器(mt6757相当于骁龙)

    mt6755相当于骁龙哪一款处理器(mt6757相当于骁龙)

  • 电脑上的窗口是什么意思(电脑上的窗口是哪个键)

    电脑上的窗口是什么意思(电脑上的窗口是哪个键)

  • 主机风扇转主板点不亮(主板风扇转电源风扇不转)

    主机风扇转主板点不亮(主板风扇转电源风扇不转)

  • 小米10充满电要多久(小米10充电充满)

    小米10充满电要多久(小米10充电充满)

  • 粉笔账号一次允许多少人登(粉笔账号最多可以几台设备登录)

    粉笔账号一次允许多少人登(粉笔账号最多可以几台设备登录)

  • 普通网线支持多少兆(普通网线最多支持多少兆)

    普通网线支持多少兆(普通网线最多支持多少兆)

  • 华为nova3防水吗(华为nova3i防水等级)

    华为nova3防水吗(华为nova3i防水等级)

  • iphone8支持多少w快充(iphone8支持多少帧数)

    iphone8支持多少w快充(iphone8支持多少帧数)

  • 微信封号几次永久封号(微信封号有几次机会)

    微信封号几次永久封号(微信封号有几次机会)

  • 拼多多上的复活卡在哪里找(拼多多上的复活币怎么用)

    拼多多上的复活卡在哪里找(拼多多上的复活币怎么用)

  • 手机怎么p腹肌(怎么p出腹肌照片)

    手机怎么p腹肌(怎么p出腹肌照片)

  • 手机卡显示hd是怎么回事(手机卡显示hd)

    手机卡显示hd是怎么回事(手机卡显示hd)

  • 如何进入运行窗口(如何进入运行窗口界面)

    如何进入运行窗口(如何进入运行窗口界面)

  • 荣耀v20取消虚拟按键(荣耀手机虚拟)

    荣耀v20取消虚拟按键(荣耀手机虚拟)

  • 珍珠屏和曲面屏的区别(oled珍珠屏怎么样)

    珍珠屏和曲面屏的区别(oled珍珠屏怎么样)

  • 网线水晶头接法(网线水晶头接法顺序图片)

    网线水晶头接法(网线水晶头接法顺序图片)

  • 怎么查苹果手机使用时间(怎么查苹果手机什么时候买的)

    怎么查苹果手机使用时间(怎么查苹果手机什么时候买的)

  • Windows 7系统有线网卡手动指定IP地址设置怎么做?(win7有线连接怎么设置)

    Windows 7系统有线网卡手动指定IP地址设置怎么做?(win7有线连接怎么设置)

  • stable diffusion webui安装与使用(官方超简单教程)(stable diffusion webul)

    stable diffusion webui安装与使用(官方超简单教程)(stable diffusion webul)

  • 解决前端跨域的几种方法(前端解决跨域问题的8种方案(最新最全))

    解决前端跨域的几种方法(前端解决跨域问题的8种方案(最新最全))

  • 预提所得税的计税依据
  • 费改税是哪一年
  • 自然人独资交企业所得税吗
  • 月初领票后还能作废申报吗
  • 往期附加税申报错误更正后怎么退税
  • 公司没有业务了 可以办理停业
  • 会计差错更正流程
  • 计划成本下存货盘盈
  • 企业手续费及佣金支出
  • 增值税认证逾期怎么处理
  • 铁路运输专用发票印花税处理
  • 应纳税所得额计算公式excel
  • 长期借款按月计提
  • 携程电子发票可以发到QQ邮箱吗
  • 调用核心征管业务服务节点报错
  • 接手新公司涉税问题分析
  • 调整以前年度应付
  • 发票遗失登报费用账务处理
  • 平销返利可以作为下期的折扣开票吗?
  • 充值销售技巧和话术总结
  • 建筑队能开哪些项目
  • 仓库存在不足
  • 100%控股有什么风险
  • 税务自查补税后还有风险吗
  • centos停止发布
  • php和数据库
  • 核准类减免税有哪些项目
  • uniapp怎么运行到手机模拟器
  • CI(Codeigniter)的Setting增强配置类实例
  • html5微博
  • 税收原则的含义
  • nginx ss
  • 项目辅材计入什么科目
  • 新政府会计准则三大特点
  • 财政补贴是解决什么问题的
  • javaweb官方文档
  • 事业结余对应政府会计哪个科目
  • 普通发票作废要做账吗
  • 税务清算后还需要报税吗
  • python的继承用法
  • 企业应纳税所得额是指什么
  • 金税盘问题
  • mysql卡住了
  • mysql数据库简单介绍
  • 删除mysql重复数据
  • 公司固定电话费用挂哪个科目
  • 少计提的税费如何补提
  • 发明专利权限的期限是多少年
  • 百分百控股收益都是股东的么
  • 农行网银只有一张卡吗
  • sql实现行列转换
  • SQLServer Top语句参数化方法
  • 在Windows Server 2008中配置FTP服务
  • ubuntu系统怎么更新
  • linux将文件a.txt更名为b.txt
  • xp启动加速
  • linux arp -n
  • fcbzmgr.exe
  • win7旗舰版磁盘清理
  • Particle system study section 1
  • 微信小程序倒计时乱跳
  • shell脚本语句
  • OpenGL ES Emulator比较
  • 用nodejs做的项目
  • jqgrid动态增加列
  • python3.9多线程
  • vue中的echarts
  • android的消息机制
  • javascript高级程序设计电子书
  • js弹出提示窗口
  • nodejs+ts
  • python怎么编写二维码
  • android开发范例实战宝典
  • js怎么修改
  • jquery设置input的value
  • android简单app实例
  • 异地户口如何办理护照
  • 电子三方协议怎么下载
  • 回迁房办房产证需要交多少钱
  • 企业注册的步骤
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设