一. 问题描述

机器学习图书畅销原因分析

二. 分析问题的过程与步骤

1.在京东网站上爬取3000条关于机器学习类书籍的数据。

爬虫代码可以看这里
爬完结果如下

2. 数据预处理

  1. 去掉特殊字符
  2. 一些看起来没有用的列删掉
  3. 一些由空值的字段删掉。
  4. 通过title这列,衍生出两个全新列
    traditional_deep_category: 机器学习,深度学习
    practice_theory_category:实战类书,理论类书,综合类
  5. 通过author这列,衍生出is_author_foreigner- 国外作者还是国内作者
  6. 通过price与old price这两列,衍生出discount_price-打折多少。
  7. 通过publish date与comment count这两列,衍生出中间环节一列。
    comment_count_monthly-月评论数,离散化后衍生出selling_top
  8. 把其他一些数值型数据离散化。
  9. 最好生成一个最终版本的数据集

3. 用决策树或随机森林做特征重要性分析。

决策树的结果如下。 特征的重要排名是
1.Discount_price:折扣价
2.Practice_theory_category: 实战还是理论类
3.Price: 当前价格
4.Traditional_deep_category: 传统机器学习还是深度学习。
5.Is_author_foreigner:国外作者还是国内


如果去掉折扣价和当前价格的特征重要性如下结果

4. 字段practice_theory_category(实战或偏理论的书)分析

由评论数最高的前150本畅销书画出的下面柱状图可知,大部分图书是偏实战方面的图书

5. 字段tranditional_deep_category(传统机器学习与深度机器)比较

前150本畅销图书。有图可知,两者基本差不多

6. 从出版社这一维度分析

大部分畅销书是由机械工业出版社人民邮电出版社出的。

7. 从作者是国外的还国内的这一维度分析。

畅销书内国内作者还是多与国外作者,但是由于国外作者还是挺多可知。国外作者是畅销书的可能还是很大

8.价格与折扣价上看

畅销图书红色方框与蓝色三角形都落在了红色圆圈里面,滞销书绿色圆与黄色四边形大部分落在绿色圆圈里面,可以看出畅销书的价格在40-100之间,折扣价在0-30之间。

9. 通过前50本畅销书的里前10条留言的词云分析。深度学习,印刷,质量,精装版的关键字比较多。说明很多读者对深度学习很感兴趣还有就是书的印刷和质量。

10. 通过畅销书的书主题的词云看,除了机器学习外,深度学习,tensorflow,实战与实践这类图书占了大部分

三,结果总结

影响机器学习书畅销的主要因素是1.折扣价格,2偏实战还理论,3.当前价格,4.深度学习还是传统机器学习,5国外还是国内作者。
偏实战方面,偏深度学习方面,还有就是价格与折扣价适中的图书比较受欢迎。
如果某出版社要出版机器学习的书籍。我的建议是书的内容上多出一些偏实战与深度学习方面的图书尤其是Tensorflow语言的。还有就是书的质量方面,最好是精装版印刷比较好的。

有待改进的地方
特征其实太少,如果可以的话,多抓取以下其它的特征(比如书是否带有视频教程,作者是的出名程度,是否配有网课等等。。。)。

四, 数据预处与分析的完整代码

import pandas as pd
import numpy as np
import sklearn as sklearn
from sklearn.feature_extraction import DictVectorizer
from sklearn import tree
from wordcloud import WordCloud, ImageColorGenerator
import jieba
from sklearn.ensemble import RandomForestClassifier
from PIL import Imageimport matplotlib.pyplot as plt
def preprocessing():df = pd.read_csv('data.csv', encoding='utf-8')print(df.loc[:, 'publish_date'].values)# 去掉一些特殊字符f = lambda x: x['publish_date'].replace('[','').replace(']','').replace("'",'')df.loc[:, 'publish_date'] = df.apply(f, axis=1)df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉没有出版时间的行df = pd.read_csv('final_data.csv', encoding='utf-8')df = df.dropna(subset=['publish_date'])df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉大牛的书籍df = pd.read_csv('final_data.csv', encoding='utf-8')df = df[~ df['author'].str.contains('周志华','李航')]df = df[~ df['title'].str.contains('周志华','李航')]#删掉一些没用的列#data = data[['item_id','commentCount', 'goodCount','poorCount', 'afterCount', 'videoCount','old_price', 'price', 'shop', 'title']]df = df[['commentCount', 'old_price', 'price', 'shop', 'publish_date', 'author','title']]#根据出版的时间,求出月平均的评论数df['comment_count_monthly'] = df['commentCount'].div((pd.Timestamp('2020-07') - pd.to_datetime(df['publish_date'], format='%Y-%m')).dt.days/30)# 折扣价格f = lambda x: x['old_price']-x['price']df['discount_price'] = df.apply(f, axis=1)#根据书的价格分类, 2:高, 1:中, 0:低discount_price = pd.cut(df.discount_price, [0, 5, 15,500], labels=[u"0", u"1", u"2"])df['discount_price'] = discount_price# 书的类型  1:实战 , 2:理论, 3:综合def practice_theory_category(x):is_practice = Falseif '实战' in  x['title'] or '实践' in  x['title'] or '案例' in x['title']  or '动手' in x['title'] or '应用' in x['title'] or '代码' in x['title'] :is_practice = Trueif '理论' in x['title'] or '基础' in x['title'] or '数学'  in x['title'] or '原理' in x['title']  or '算法'in x['title'] :if is_practice:return 3else:return 2if is_practice:return 1return np.nandf['practice_theory_category'] = df.apply(practice_theory_category, axis=1)# 是否是深度学习类型, 1:深度学习 ,0:传统机器学习def traditional_deep_category(x):book_category = 0if '深度学习' in  x['title'] or 'GAN' in  x['title'] or '对抗网络' in x['title']  or 'TensorFlow' in x['title']  :book_category = 1return book_categorydf['traditional_deep_category'] = df.apply(traditional_deep_category, axis=1)#是否海外作者 1:是, 0: 不是def is_author_foreigner(x):foreigner = 0if '(' in  x['author'] and ')' in  x['author'] :foreigner = 1return foreignerdf['is_author_foreigner'] = df.apply(is_author_foreigner, axis=1)#删掉月平均的评论数是0的数据df = df[~(df.comment_count_monthly==0)]#根据月平均排序df = df.sort_values(by='comment_count_monthly', ascending=False)#根据评论多少分类,1:hot, 2, best_selling, 3: ordinary, 4: unsalableselling_top = pd.cut(df.comment_count_monthly, [0, 10, 100, 500, 1000000], labels=[u"4", u"3", u"2", u"1"])df['selling_top'] = selling_top#根据书的价格分类, 2:高, 1:中, 0:低price = pd.cut(df.price, [0, 20, 40,500], labels=[u"0", u"1", u"2"])df['price'] = pricedf = df[['price',  'discount_price', 'practice_theory_category', 'traditional_deep_category', 'is_author_foreigner', 'selling_top']]df.dropna(inplace=True)#保持预处理过的数据df.to_csv('final_data.csv', encoding='utf-8', index=False)#print(data.head(10))def preprocessing2():df = pd.read_csv('data.csv', encoding='utf-8')print(df.loc[:, 'publish_date'].values)# 去掉一些特殊字符f = lambda x: x['publish_date'].replace('[','').replace(']','').replace("'",'')df.loc[:, 'publish_date'] = df.apply(f, axis=1)df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉没有出版时间的行df = pd.read_csv('final_data.csv', encoding='utf-8')df = df.dropna(subset=['publish_date'])df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉大牛的书籍df = pd.read_csv('final_data.csv', encoding='utf-8')df = df[~ df['author'].str.contains('周志华','李航')]df = df[~ df['title'].str.contains('周志华','李航')]#删掉一些没用的列#data = data[['item_id','commentCount', 'goodCount','poorCount', 'afterCount', 'videoCount','old_price', 'price', 'shop', 'title']]df = df[['commentCount', 'old_price', 'price', 'shop', 'publish_date', 'author','title']]#根据出版的时间,求出月平均的评论数df['comment_count_monthly'] = df['commentCount'].div((pd.Timestamp('2020-07') - pd.to_datetime(df['publish_date'], format='%Y-%m')).dt.days/30)# 折扣价格f = lambda x: x['old_price']-x['price']df['discount_price'] = df.apply(f, axis=1)# 书的类型  1:实战 , 2:理论, 3:综合def practice_theory_category(x):is_practice = Falseif '实战' in  x['title'] or '实践' in  x['title'] or '案例' in x['title']  or '动手' in x['title'] or '应用' in x['title'] or '代码' in x['title'] :is_practice = Trueif '理论' in x['title'] or '基础' in x['title'] or '数学'  in x['title'] or '原理' in x['title']  or '算法'in x['title'] :if is_practice:return 3else:return 2if is_practice:return 1return np.nandf['practice_theory_category'] = df.apply(practice_theory_category, axis=1)# 是否是深度学习类型, 1:深度学习 ,0:传统机器学习def traditional_deep_category(x):book_category = 0if '深度学习' in  x['title'] or 'GAN' in  x['title'] or '对抗网络' in x['title']  or 'TensorFlow' in x['title']  :book_category = 1return book_categorydf['traditional_deep_category'] = df.apply(traditional_deep_category, axis=1)#是否海外作者 1:是, 0: 不是def is_author_foreigner(x):foreigner = 0if '(' in  x['author'] and ')' in  x['author'] :foreigner = 1return foreignerdf['is_author_foreigner'] = df.apply(is_author_foreigner, axis=1)#删掉月平均的评论数是0的数据df = df[~(df.comment_count_monthly==0)]#根据月平均排序df = df.sort_values(by='comment_count_monthly', ascending=False)#根据评论多少分类,1:hot, 2, best_selling, 3: ordinary, 4: unsalableselling_top = pd.cut(df.comment_count_monthly, [0, 10, 100, 500, 1000000], labels=[u"4", u"3", u"2", u"1"])df['selling_top'] = selling_topdf = df[['price',  'discount_price', 'practice_theory_category', 'traditional_deep_category', 'is_author_foreigner', 'selling_top']]df.dropna(inplace=True)#保持预处理过的数据df.to_csv('final_data.csv', encoding='utf-8', index=False)#print(data.head(10))def preprocessing1():df = pd.read_csv('data.csv', encoding='utf-8')print(df.loc[:, 'publish_date'].values)# 去掉一些特殊字符f = lambda x: x['publish_date'].replace('[','').replace(']','').replace("'",'')df.loc[:, 'publish_date'] = df.apply(f, axis=1)df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉没有出版时间的行df = pd.read_csv('final_data.csv', encoding='utf-8')df = df.dropna(subset=['publish_date'])df.to_csv('final_data.csv', encoding = 'utf-8', index=False)# 删掉大牛的书籍df = pd.read_csv('final_data.csv', encoding='utf-8')df = df[~ df['author'].str.contains('周志华','李航')]df = df[~ df['title'].str.contains('周志华','李航')]#删掉一些没用的列#data = data[['item_id','commentCount', 'goodCount','poorCount', 'afterCount', 'videoCount','old_price', 'price', 'shop', 'title']]df = df[['commentCount', 'old_price', 'price', 'shop', 'publish_date', 'author','title', 'url']]#根据出版的时间,求出月平均的评论数df['comment_count_monthly'] = df['commentCount'].div((pd.Timestamp('2020-07') - pd.to_datetime(df['publish_date'], format='%Y-%m')).dt.days/30)# 折扣价格f = lambda x: x['old_price']-x['price']df['discount_price'] = df.apply(f, axis=1)# 书的类型  1:实战 , 2:理论, 3:综合def practice_theory_category(x):book_category = ''if '实战' in  x['title'] or '实践' in  x['title'] or '案例' in x['title'] or '实例' in x['title']  or '动手' in x['title'] or '应用' in x['title'] or '代码' in x['title'] :book_category = 'practice'if '理论' in x['title'] or '基础' in x['title'] or '数学'  in x['title'] or '原理' in x['title']  or '算法'in x['title'] :if book_category=='practice':book_category = 'both'else:book_category ='theory'return book_categorydf['practice_theory_category'] = df.apply(practice_theory_category, axis=1)# 是否是深度学习类型, 1:深度学习 ,0:传统机器学习def traditional_deep_category(x):book_category = np.nanif '机器学习' in x['title'] or '贝叶斯' in x['title']:book_category = 'traditional'if '深度' in  x['title'] or 'GAN' in  x['title'] or '对抗' in x['title']  or \'TensorFlow' in x['title']  or '强化学习' in  x['title'] or  '目标检测' in  x['title'] or  '神经网络' in  x['title']   :book_category = 'deep'return book_categorydf['traditional_deep_category'] = df.apply(traditional_deep_category, axis=1)#是否海外作者 1:是, 0: 不是def is_author_foreigner(x):foreigner = 'native'if '(' in  x['author'] and ')' in  x['author'] :foreigner = 'foreigner'return foreignerdf['is_author_foreigner'] = df.apply(is_author_foreigner, axis=1)#删掉月平均的评论数是0的数据df = df[~(df.comment_count_monthly==0)]#根据月平均排序df = df.sort_values(by='comment_count_monthly', ascending=False)#根据评论多少分类,1:hot, 2, best_selling, 3: ordinary, 4: unsalable#selling_top = pd.cut(df.comment_count_monthly, [0, 10, 100, 500, 1000000], labels=[u"4", u"3", u"2", u"1"])#df['selling_top'] = selling_top#根据书的价格分类, 高, 中, 低price = pd.cut(df.price, [0, 40, 80,500], labels=[u"low", u"middle", u"high"])df['price'] = pricedf = df[['url','price', 'title' , 'shop', 'author', 'practice_theory_category', 'traditional_deep_category', 'is_author_foreigner', 'comment_count_monthly']]df.dropna(inplace=True)df = df.head(150)#保持预处理过的数据df.to_csv('final_data.csv', encoding='utf-8', index=False)#print(data.head(10))def show_bar_diagram(x_data, y_data, ):plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 这两行需要手动设置plt.bar(x=x_data, height=y_data, color='steelblue', alpha=0.8)plt.title('特征的重要性')#plt.xticks(x_data, x_data, rotation=-20)# 显示图例plt.legend()plt.show()def DecisionTree_important_feacture():data = pd.read_csv('final_data.csv', encoding='utf-8')# pandas 读取 csv 文件,header = None 表示不将首行作为列#print(np.isnan(data).any())# sparse=False意思是不产生稀疏矩阵vec = sklearn.feature_extraction.DictVectorizer(sparse=True)# 先用 pandas 对每行生成字典,然后进行向量化feature = data[[ 'price','discount_price','practice_theory_category', 'traditional_deep_category', 'is_author_foreigner']]#feature = data[['practice_theory_category', 'traditional_deep_category', 'is_author_foreigner']]X_train = vec.fit_transform(feature.to_dict(orient='record'))# 打印各个变量print('show feature\n', feature)print('show vector\n', X_train)print('show vector name\n', vec.get_feature_names())print('show vector name\n', vec.vocabulary_)Y_train = data['selling_top']#clf = tree.DecisionTreeClassifier(criterion='entropy', max_depth= 4)clf = tree.DecisionTreeClassifier(criterion='entropy')clf.fit(X_train, Y_train)print('feature_importances_:', clf.feature_importances_)show_bar_diagram(vec.get_feature_names(),clf.feature_importances_ )def RandomForestClassifier_important_feacture():data = pd.read_csv('final_data.csv', encoding='utf-8')# pandas 读取 csv 文件,header = None 表示不将首行作为列#print(np.isnan(data).any())# sparse=False意思是不产生稀疏矩阵vec = sklearn.feature_extraction.DictVectorizer(sparse=False)# 先用 pandas 对每行生成字典,然后进行向量化feature = data[[ 'practice_theory_category', 'traditional_deep_category', 'is_author_foreigner']]#feature = data[['price', 'discount_price', 'practice_theory_category', 'traditional_deep_category', 'is_author_foreigner']]X_train = vec.fit_transform(feature.to_dict(orient='record'))# 打印各个变量print('show feature\n', feature)print('show vector\n', X_train)print('show vector name\n', vec.get_feature_names())print('show vector name\n', vec.vocabulary_)Y_train = data['selling_top']clf = RandomForestClassifier(random_state=42)clf.fit(X_train, Y_train)print('feature_importances_:', clf.feature_importances_)show_bar_diagram(vec.get_feature_names(), clf.feature_importances_)def compare_in_certain_column(columnName, title, rotation = 0):plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 这两行需要手动设置data = pd.read_csv('final_data.csv', encoding='utf-8')grp1 = data.groupby([columnName])[columnName].agg('count')dict1 = grp1.to_dict()print(dict1)y_data = [i for i in dict1.values()]x_data = [i for i in dict1.keys()]plt.bar(x=x_data, height=y_data, color='steelblue', alpha=0.8 )for x1, yy in zip(x_data, y_data):plt.text(x1, yy, '%s' % yy)plt.xticks(x_data, x_data, rotation=rotation)# 设置标题plt.title(title)# 为两条坐标轴设置名称plt.ylabel("数量")# 显示图例plt.legend()plt.show()def title_word_cloud():# 打开文本data = pd.read_csv('final_data.csv', encoding='utf-8')titles = data['title'].tolist();text = ''for title in titles:text = text+' '+title# 中文分词print(jieba.cut(text))text = ' '.join(jieba.cut(text))print(text)# 生成对象wc = WordCloud(font_path='simsun.ttc', width=800, height=600, mode='RGBA', background_color=None).generate(text)# 显示词云plt.imshow(wc, interpolation='bilinear')plt.axis('off')plt.show()def title_word_cloud_pic():# 打开文本data = pd.read_csv('final_data.csv', encoding='utf-8')titles = data['title'].tolist();text = ''for title in titles:text = text + ' ' + title# 中文分词text = ' '.join(jieba.cut(text))# 生成对象#mask = np.array(Image.open("1.jpg"))mask = np.array(Image.open("3.png"))wc = WordCloud(mask=mask, font_path='simsun.ttc', mode='RGBA', background_color='white').generate(text)# 从图片中生成颜色image_colors = ImageColorGenerator(mask)wc.recolor(color_func=image_colors)# 显示词云plt.imshow(wc, interpolation='bilinear')plt.axis("off")plt.show()# 保存到文件#wc.to_file('wordcloud5.png')def scatter_plot(dim1, dim2):data = pd.read_csv('final_data.csv', encoding='utf-8')data =data[data[dim1]<160]data = data[data[dim2] > 0]#data.head(200)selling_top_dic = {1: 'hot', 2: 'best_selling', 3: 'ordinary', 4: 'unsalable'}print(selling_top_dic[1])for t, marker, color in zip(range(1,5), "s>od", ('r','b','g','y')):# zip()接受任意多个序列参数,返回一个元组tuple列表# 用不同的标记和颜色画出每种品种iris花朵的前两维数据# We plot each class on its own to get different colored markersplt.scatter(data[data['selling_top'] == t][dim1],data[data['selling_top'] == t][dim2], marker=marker, c=color, label=selling_top_dic[t])plt.xlabel(dim1)plt.ylabel(dim2)plt.legend()plt.show()def show_scatter_diagram():data = pd.read_csv('final_data.csv', encoding='utf-8')plt.scatter(data['price'], data['discount_price'],c=data['selling_top'] , marker='o')plt.xlabel('price')plt.ylabel('discount_price')plt.show()if __name__ == '__main__':#preprocessing() # 用随机森林或者决策树分析特征的重要性#DecisionTree_important_feacture()#RandomForestClassifier_important_feacture()#preprocessing1() # 分析单独的字段的预处理#compare_in_certain_column('practice_theory_category','书的内容比较(实战还是理论)')#compare_in_certain_column('traditional_deep_category', '传统机器学习与深度学习比较')#compare_in_certain_column('shop', '出版社比较', -30)#compare_in_certain_column('is_author_foreigner', '国外作者与国内作者比较')#title_word_cloud()#title_word_cloud_pic()#show_scatter_diagram()#preprocessing2()scatter_plot('price','discount_price')

[机器学习]京东机器学习类图书畅销原因分析-决策树或随机森林相关推荐

  1. ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)

    ML之回归预测:利用十类机器学习算法(线性回归.kNN.SVM.决策树.随机森林.极端随机树.SGD.提升树.LightGBM.XGBoost)对波士顿数据集[13+1,506]回归预测(模型评估.推 ...

  2. 2022-1-17第三章机器学习基础--网格搜索超参数优化、决策树、随机森林

    交叉验证与网格搜索 ①交叉验证(训练集划分-训练集.验证集)–将所有数据分成n等分-并不具备调参能力 4等分就是4折交叉验证:一般采用10折交叉验证 ②网格搜索-调参数(与交叉验证一同使用) 如果有多 ...

  3. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

    本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 现象: 阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨 ...

  4. 机器学习 之线性回归、逻辑回归、 SVM支持向量机、随机森林

    参考b站不会还有人不知道最新版2022年的李宏毅--机器学习与深度学习吧?_哔哩哔哩_bilibili 分类 1.监督学习:     从给定的训练数据集中学习一个函数(模型),当新数据(测试集)来到时 ...

  5. 脑电信号(EEG)处理中的机器学习方法总结——回归模型,SVM、K近邻、人工神经网络、朴素贝叶斯、决策树和随机森林、集成学习、模糊逻辑、LDA线性判别分析、K-means聚类、强化学习、迁移学习

    本文归纳总结了机器学习在脑电分析中的应用,并详细介绍回归模型,SVM.K近邻.人工神经网络.朴素贝叶斯.决策树和随机森林.集成学习.模糊逻辑.LDA线性判别分析.K-means聚类.强化学习.迁移学习 ...

  6. 论文解读+代码复现【AIDD】贝叶斯、决策树、随机森林+2种机器学习模型在癌症治疗药物发现中的应用

    AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力.倾向于机器对数据库信 ...

  7. 机器学习中的不平衡分类方法(part5)--决策树与随机森林

    学习笔记吗,仅供参考,有错必纠 文章目录 决策树与随机森林 基本流程 决策树定义及结构 决策树学习步骤 划分选择 信息增益 增益率 基尼基数 剪枝处理 随机森林 决策树与随机森林 决策树(decisi ...

  8. sklearn分类器算法:决策树与随机森林及案例分析

    分类算法之决策树 决策树是一种基本的分类方法,当然也可以用于回归.我们一般只讨论用于分类的决策树.决策树模型呈树形结构.在分类问题中,表示基于特征对实例进行分类的过程,它可以认为是if-then规则的 ...

  9. 机器学习利器——决策树和随机森林

    更多深度文章,请关注:https://yq.aliyun.com/cloud 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率, ...

最新文章

  1. 激光雷达与相机—哪种更适合自动驾驶?
  2. DS-1 数据结构和算法刷题
  3. 关于如何修改Redmine系统中的字段问题解答
  4. HTML5 音频audio 和视频video实用基础教程
  5. 敏捷项目计划的多层面
  6. 【Vue】—动态组件
  7. 字节跳动面试真题:java高级编程考试题及答案
  8. 英特尔大手笔花钱寻觅未来 但新领域变数太多难以成为支柱
  9. 关于面试,关于大学——大四狗的自述
  10. PTA 程序设计天梯赛(1~180题)
  11. 16比9尺寸是多少厘米_16:9是多大的尺寸?
  12. 数据中心安全管理解决方案
  13. Java实现对List集合去重的几种方法
  14. 邮件系统extmail搭建手册
  15. 我国计算机操作系统开发历史及现状(软件学报格式的本文WORD文档在作者主页)
  16. 如何提升串口响应速度
  17. linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试
  18. linux etc xdg,Xdg-menu (简体中文)
  19. 怎么在linux上网络功能,Linux系统如何通过手机GPRS功能无线上网
  20. 小学计算机反思案例,小学教师教育事案例以及反思

热门文章

  1. 类文件Spring中空值的写法-java教程
  2. Android Service LifeCycle
  3. 面试:String 常量池
  4. VS Code常用快捷键汇总
  5. 18医科大学计算机基础,18春中国医科大学《计算机基础与应用 》在线作业100分答案...
  6. centos7搭建easy-mock服务
  7. Android Kotlin之kotlin-android-extensions使用
  8. 【PHP】网站防止QQ拦截防红跳转代码
  9. 【Python】Python库之图形用户界面
  10. C#LeetCode刷题之#56-合并区间(Merge Intervals)