机器学习项目的实例分析设计(附源码)

机器学习十大算法与案例实现 (Linear Regression):线性回归是一种用于预测数值类型的机器学习算法。它通过建立一个关于自变量和因变量之间的线性关系来对数据进行建模。案例实现:波士顿房价预测。 阅读详情

摘要说明:

最近在学习“Hands-On Machine Learning with Scikit-Learn &TensorFlow”,其中一些机器学习的思考和处理方式很具有项目级开发的特点。我在原文提供的实例基础上,结合自己的分析,模拟了一个机器学习项目的分析和实现过程,包括项目分析,数据分析,模型分析,性能分析等,在原文的样本代码基础上,编写了完整的可全面自动化运行的代码,供大家一起参考。(文章后面将提供源码的 github 地址)


一. 项目的总体分析

  • 业务分析
  • 内容

    分析设计

    项目名称

    加利福尼亚房价预测

    商业背景及价值

    本公司是一家投资公司,现有一套综合投资分析系统,将汇总各类信息,对行政区进行全面分析后,决定是否值得进行投资。

    本项目获得的各行政区的房价中值预测值,将提供给公司的综合投资分析系统,作为其中的一项分析指标,帮助公司进行决策。

    目前房价中值的计算,完全依靠业务专家,通过复杂的人工推导分析后获得,费时费力,不及时,不准确。

    本项目将实现房价中值的自动化预测计算和处理,其预测结果将影响公司投资决策的速度和准确性,从而直接影响公司的商业业绩。

    业务需求

    利用加利福尼亚房价数据库提供的统计数据,通过机器学习,从这些数据中构建模型,获得信息,用于预测加利福尼亚州不同行政区的房价中值

    非功能性需求

    目前采用人工分析的方法,全部计算一次所有行政区的房价中值,需要5 人天。

    本项目完成后,正常情况下,要求在1小时内完成所有计算。


  • 系统分析

内容

分析设计

基本训练模型方案

1.     由于有明确的预测值要求,因此将使用有监督的模型(不是无监督模型);

2.     由于预测的是具体数值,不是标签,因此属于回归问题(不是分类问题,或聚类问题);

3.     根据跟专家的沟通,房价的预测将需要涉及数据集中提供的多个特征属性,属于多变量回归问题

4.     房价数据源信息不是实时连续变化的数据,数据量也不是特别大,完全可以装载到内存后进行处理,因此采用简单的单机批处理方式来完成。(不考虑大数据下的分布式处理及实时数据流的在线处理方式)

综上分析,本项目将采用的基本回归分析模型有:

  • 线性回归模型:LinearRegression
  • 决策树模型:DecisionTreeRegressor
  • 随机森林树模型: RandomForestRegressor

模型效果的测量指标

回归分析模型的性能,可采用的测量指标有:

  • 均方根误差(RMSE)
  • 均方误差(MSE)
  • 平均绝对误差(MAE)
  • 中位值误差
  • r方误差

RMSE对异常数据比较敏感,若数据集的异常数据很少时(即数据分布比较集中,像一个钟型),用RMSE来衡量模型效果还是比较好的,


因此,本项目将采用 RMSE 指标进行模型性能的衡量比较,RMSE值越小,模型性能越好。

开发环境

Python的生态环境提供了我们完成该项目需要的机器学习函数库,开源,通用性好,运行性能可满足项目要求;如 numpy, pandas, scikit-Learn等,其中scikit-Learn模块中有一些流程化处理的函数,可以让自动化处理的实现更加简洁和优雅。


因此,本项目将采用 Python + Scikit-Learn 为主要开发平台

自动化及可重用性

这是一个需要可重复使用的生产系统,不是一次性工具,也不是单纯研究用的人机交互程序;需要尽量把处理代码自动化,以提高调试优化的效率,并在生产环境中部署后自动化运行,提供必要的运维日志信息

前提假设

1.     加利福尼亚房价数据库持续提供更新的房价数据

2.     公司综合投资分析系统的数据接口保持不变,需要本项目提供的是房价的具体数值,而不是“昂贵”,“中等”,“低廉”的分类标签。否则,本项目的学习模型将会更改为分类模型

术语说明

关于记录集变量的定义说明如下:(括号内为全名称)

变量名

含义

train_set

原始训练数据集,包含标签列,特征列

test_set

原始数据测试集,包含标签列,特征列

train(train_feature)

训练集中的特征集,不含标签列,简写成 train

train_label

 

训练集中的标签列

train_num(train_feature_num)

训练集中的数值意义特征集

train_cat(train_feature_cat)

 

训练集中的分类意义特征集

train_prepared (train_feature_prepared)

已经处理完成的训练集,含所有特征属性,且全是数值型,将输入给模型进行训练使用

train_pred(train_label_pred)

 

训练集的预测标签值,可跟 train_label进行比较,获得性能评分



二. 原始数据分析

  • 数据源分析

内容

分析设计

数据来源

StatLib 库为公开的数据库,其中提供了自1990年以来的加利福尼亚房价数据

Github 上的镜像,也可更方便地获得该数据集

https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.tgz

(注:本演示项目将使用github上的数据集样本文件)

数据内容及数据量

主要为加利福尼亚的各行政区的房价数据,下载解压,保存为CSV文件后,在几百兆左右。

数据法律义务,授权情况及访问权限

项目用到的数据源,属于对外公开的数据集,可合理使用在项目中,不需要授权,不需要承担任何法律义务。

磁盘空间的分析

根据目前数据源的下载量分析和数据可能的增长趋势,5年内,数据集文件不会超过500M,考虑系统的环境安装,数据处理过程的需要,原始数据的备份,以及处理完的数据的备份等,该项目的磁盘空间建议预留100G以支持5年的运维。


  • 获取数据分析

内容

分析设计

获取数据

1.  数据源:

https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.tgz


2. 获取 hoursing.tgz 文件后,解压出 housing.csv数据集文件

抽取一个原始测试集

需要留一部分原始且未做任何处理的数据,来完整测试整个处理过程,并验证训练模型的实际性能。


该原始测试集不同于交叉验证时测试集,交叉验证是将已经清理干净的输入学习模型的数据随机分成训练集,测试集;而原始测试集是未清理过的数据。


基本处理过程:

1. 将原始数据拆分为2个数据集,train_set, test_set, 分别保存到文件中(train_set.csv, test_set.csv),供以后重复使用

2. 装入训练数据集(train_set.csv),供后续的分析,清理,训练使用

实现整个过程的自动化处理

获取数据集,抽取原始测试集,装载训练集,需要自动化完成


参看代码: load_data.py


三. 数据特征分析

该步骤主要是在人机交互的 Jupyter notebook中完成,需要业务专家的配合,通过分析,可以使我们了解清楚需要处理的数据集的基本特征和业务特征,为下一阶段的数据清理和模型构建提供信息。该步骤不修改数据,也没有相应的自动化处理代码,需要记录分析结果。

本文列出了一些分析检查表,其中的分析内容和举例仅供参考。而实际项目中,该步骤很重要,需要花费很多的时间,因为后续的处理,都将基于对数据集的全面了解。(Jupyter notebook 文件包含在提供的源代码中)

内容

分析设计

将数据集装载到内存

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

 

datafilename = r"train_set.csv"

train_set_original = pd.read_csv(datafilename)

创建一个数据集的副本

 

train_set = train_set_original.copy()

 

这个数据集,是已经抽取掉原始测试集后的数据集,专门用于分析,训练,交叉测试用的。

该数据集包含标签列和特征列

检查数据集的大小

train_set.shape

(16512, 10)

一共有16512条样本数据,每条数据有10个特征列(其中含标签列)

获得数据集的所有特征名称及数据类型

train_set.dtypes

longitude                       float64

latitude                          float64

housing_median_age   float64

total_rooms                   float64

total_bedrooms             float64

population                     float64

households                   float64

median_income            float64

median_house_value   float64

ocean_proximity           object

 

除[ocean_proximity] 为字符型数据列(类别意义特征属性),其他特征列均为数值意义特征。

类别意义特征需要在后续处理中,转换为数值意义特征,因为输入学习训练模型的必须是数值特征

若为监督学习任务,需要确定标签列

 本项目中,标签列为 [median_house_value]

房屋价格的中值 (不是平均值)

 

明确标签列后,可以针对性地分析了解特征列跟标签列的相关性

数据集的样本具体内容

train_set.head()

train_set.tail()

特征数据的分布情况

比如:字符分类特征列 ocean_proximity

train_set[“ocean_proximity”].value_counts()


<1H OCEAN       7341   小于1小时车程

INLAND               5227   内陆

NEAR OCEAN    2086   靠近海

NEAR BAY         1854    靠近海湾

ISLAND                   4     海岛

 

分析特征属性的基本业务含义

需要在跟业务专家的配合下,分析主要特征属性的含义及对标签列的影响程度,机器学习是用来分析和解决实际业务问题的,不单是数据处理。这里做了简单分析,纯属个人观点

特征列

分析

longitude

地理经度,用于识别位置,获得所属行政区的信息。 行政区的不同,商业,政治,文化,教育环境也会不一样,会影响房价

latitude

地理纬度, 用于识别位置,,会影响房价

housing_median_age

房屋的平均年龄,房型信息,房龄大,房型较老,房龄小,比较新,会影响房价

total_rooms

总的房间数,房型信息,会影响房价

total_bedrooms

卧室的房间数,房型信息,房间多,居住会舒适,会影响房价

population

该地区的人口总数,影响供求比例,会影响房价

households

家庭数,影响供求比例,会影响房价

median_income

平均收入,影响购买力,会影响房价

ocean_proximity

跟海相关的环境分类,物以稀为贵,会影响房价

数据集的快速统计分析

train_set.isnull().sum()

train_set.info()

train_set.describe()

可视化数据进行分析

利用各种图表工具,对数据集进行可视化查看分析

 

每个列的数据直方图

train_set.hist(bins=50,figsize=(20,15))


按地理位置的人口分布散点图

train_set.plot(kind='scatter',x='longitude', y='latitude', alpha=0.4, s=train_set['population']/100,label='population', c='median_house_value',cmap=plt.get_cmap("jet"),colorbar=True)

plt.legend()



数据可视化分析很重要,涉及的内容也相对广泛,本文不再继续展开

分析样本属性之间的关系

特征属性跟标签列 及 特征属性间的线性相关性

corr_matrix = train_set.corr()

corr_matrix

corr_matrix["median_house_value"].sort_values(ascending=False)

 

median_house_value    1.000000

median_income         0.690647

total_rooms           0.133989

housing_median_age    0.103706

households            0.063714

total_bedrooms        0.047980

population           -0.026032

longitude            -0.046349

latitude             -0.142983

 

media_income, total_rooms, housing_media_age 跟房价中值的相关性比较大

 

可视化这些属性的关系

from pandas.tools.plotting import scatter_matrix

attributes =

["median_house_value","median_income","total_rooms","housing_median_age"]

scatter_matrix(train_set[attributes],figsize=(12,8))


行政区的media_house_value(房价中值) 跟 media income (收入中值)的线性相关性确实比较明显。

确认可用的额外字段

对属性字段进行加工及合并的分析,以便生成新的特征属性,表现出更多的内部关系。

例如:

增加属性列 population_per_household = poplation / households,  可获得每个家庭的平均人口数

确认不需要的字段

对预测标签没有任何影响的字段,如随机字段等,可以标记为删除。如日志记录中的随机序列号等。

本数据集中的特征属性,通过分析,都跟标签列有关系,因此,没有需要删除的列。

记录所有的分析内容,用于后续的数据自动化处理

以上分析结果,我们需要进行详细记录。而这些只是初步的分析处理方案,在实际训练过程中,需要根据模型性能评分,多次反复地分析,调整,才能获得最理想的效果。


四. 特征工程

特征工程是在原始数据特征分析的基础上,对数据进行全面特征处理和特征提取,构建最终的特征数据集,供学习模型进行训练使用。提供给模型的数据和特征,决定了机器学习的上限,可见其重要性。

该步骤需要能自动化运行,以便重复使用。分析,开发中,可以使用Jupyter进行调试,最终,应该是可以完整运行的 Python 代码模块。

内容

分析设计

创建一个特征数据集的副本

 

该步骤进行处理的数据集不包含标签列。

上一步骤的数据集包含标签列,是因为可以用来分析特征列和标签列的相关性,而清理数据时,不应该包含标签列的,因为标签列一般不需要进行清理或单独进行处理。

修复或删除异常值

任何情况都应该考虑null值,即使当前训练集没有,也无法保证测试集及将来的数据集都没有。

null值的处理方式有以下几种:

删除行,删除列,填充具体值等,本项目采用填充中值的方式处理null值

本项目使用 scikit-learn的转换器 Imputer 来完成

聚合生成新的特征

本项目将增加 population_per_household 等新特征。

编写自定义转换器来完成

class CombinedAttributesAdder()

添加多项式新特征

本项目没有其他新特征列

在代码中,提供了一个在对 pandas.DataFrame类型数据进行字段增加的转换器供参考。

class FeatureAdder()

删除不需要的特征

本项目没有删除特征列

在代码中,提供了一个在对 pandas.DataFrame类型数据进行字段删除的转换器供参考

class FeatureDeleter()

对连续特征离散化处理

本项目没有用到

就是把数据分段,线性值变成离散数据或分类值,如可以将population_per_household进行离散化处理

n <= 3        : 小家庭,    取值1

3 < n <= 7  : 中等家庭, 取值2

n > 7          : 大家庭,     取值3

对特征进行归一化处理或标准化处理

归一化处理后,数据的业务敏感度降低,数据的分布和方差保持不变,数据量减少,算法更容易收敛。

本项目使用scikit-learn提供的StandardScaler,进行归一化处理

对文本分类属性的处理

机器学习算法一般认为数据值越相近,则距离越近。将文本分类属性单纯用数字来代替,跟实际情况不符合,需要进行处理。

本项目采用 one-hot编码,即为每个分类值创建一个新特征属性,若原分类值为对应分类列,则该列特征值为1,否则为0

本项目使用 scikit-learn的 LabelBinarizer 转换器,并做了兼容性调整

自动化处理数据清理过程

所有转换处理都用函数实现自动化处理,从而可快速处理新的训练集,原始测试集。

scikit-learn 提供了一套 Pipeline 的流程化处理函数,可以让数据清理过程按设计流程顺序依次执行,很是干净和优雅。

 

 

 


五. 训练模型

内容

分析设计

若数据量太大,可抽取部分数据进行快速模型分析

本项目数据量不大,将使用全部训练集数据进行处理

训练模型并分析性能

传入训练数据集,训练模型,采用交叉验证的方式,随机生成训练集,测试集,计算RMSE评分。

保存每次测量的训练模型,用于后续分析和预测使用,同时显示模型训练的性能评分,以便跟其他训练结果进行比较


使用标准参数训练不同的基本模型

本项目的基本训练模型为

  • 线性回归模型:LinearRegression
  • 决策树模型:DecisionTreeRegressor
  • 随机森林树模型: RandomForestRegressor

 

调整模型参数,进行优化

可能需要在多个模型中,使用多套参数组合方案,然后分析模型性能结果。

利用 Grid Search, 给出参数列表,然后让系统自动构建所有组合参数进行训练,返回性能最好的模型参数

集成多个模型,共同进行训练

本项目暂不需要

 

比较模型性能,获得最佳模型

需要重复以上分析步骤和过程,调整数据,调整特征,调整模型参数等,并对每次的训练结果进行记录和全面分析,以获得最佳的训练器。


本项目采用 RMSE 指标进行模型性能的衡量比较,RMSE值越小,模型性能越好

所有训练过程实现自动化

运行 python main.py , 完成数据获取,清理,训练,性能结果比较的自动化处理。

获得最佳的训练模型



六. 对原始测试集进行测试

内容

分析设计

对原始测试集进行预测

选用训练获得的最佳模型,对原始测试数据集进行测试,分析性能,并处理预测值





七. 后续工作

到目前为止,主要完成的是项目分析,设计和开发部分的工作,后续还有很多项目级的工作需要逐步配合完成,本文只做基本列举,不再详细描述

内容

提供项目的结果分析报告,并跟业务部门沟通分析

根据业务部门的反馈,继续进行参数和代码的优化,到达最佳的业务效果

开发跟公司决策分析系统的数据接口

项目提交测试部门进行正式测试

测试通过后,进行项目的生产部署和运维管理

定期更新训练数据,重新训练模型,保持并提高模型的性能

项目的经验总结(有效做法,无效做法,前提假设,局限性及改进方案),这些都将是公司和个人在项目开发和项目管理上的宝贵财富

附录:

该演示项目的源代码 github 地址:

https://github.com/EdwinZhang1970/Python/tree/master/California%20Housing%20Prices


机器学习之共享单车使用量项目设计 通过对实际案例的分析与处理,练习对数据的预处理能力 阅读详情

相关推荐

【Spark ml 源码系列】ReadWriter原理用途源码分析(含逻辑回归调用示例)

并与。在Spark ML中,`ReadWriter`类是一个用于模型的读写操作的辅助工具。它提供了一种机制来读取和写入训练好的机器学习模型。 `ReadWriter`的设计思想主要基于Java的序列化机制,并结合了Spark的分布式计算框架特性。其背后的原理是将模型的参数以二进制的形式进行序列化,并使用分布式文件系统(如HDFS)或本地文件系统进行存储和读取。

wang2leee的博客 1202

【ML】现实生活中的十大机器学习示例(让世界变得更美好)

使用地图和路线的平台中的机器学习通过 ML 算法计算出交通较少的最快路线、到达时间、上车地点和到达目的地的最佳路线,确保准时。在进入 python 中的机器学习示例或我们突出显示的机器学习现实生活示例之前,让我们通过示例看一下四种关键的机器学习类型。使用适当的表情符号、Facebook 上有关朋友标签的建议、Instagram 上的过滤、社交媒体平台上的内容推荐和推荐关注者等,都是机器学习如何帮助我们进行社交网络的示例。农业中的机器学习能够以更少的人力实现精确高效的农业生产,从而实现高质量生产。

sikh_0529的博客 8689

【机器学习项目实战案例目录】项目详解 + 完整源码

本专栏整理了《机器学习项目实战案例》,内包含了各种不同的入门级机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 3万+

「超级干货大放送」机器学习十二种经典模型实例

目录 实例一:线性回归波士顿房价 实例二:KNN实现电影分类 实例三:基于线性回归预测波士顿房价 ​实例四:sklearn完成逻辑回归鸢尾花分类 实例五:支持向量机完成逻辑回归鸢尾花分类 实例六:使用决策树实现鸢尾花分类 实例七:使用随机森林实现鸢尾花分类 实例八:使用朴素贝叶斯进行鸢尾花分类 实例九:使用Kmeans来进行鸢尾花分类 实例十:K最近邻的使用方式 实例十一:kmeans的其他展示方式 实例十二:Kmeans实现鸢尾花聚类 实例一:线性回归波士顿房价 ''' .

闭关修炼——暂退 1万+

【机器学习】23个初中高级机器学习实战项目(附源码)

23个初中高级机器学习实战项目(附源码)

allein_STR的博客 1253

SwiftUI机器学习基础之Create ML app 是什么

Create ML app 是什么 Create ML app是一个macOS应用程序,允许您使用界面方式构建机器学习模型。Create ML app是在WWDC 2019中引入的,它是Create ML框架的后续版本。它提供了一种面向任务的模型构建方法。 Create ML框架是一个Swift框架,可让您使用Xcode并使用Swift代码创建机器学习模型。另一方面,Create ML应用程序根本...

iCloudEnd的博客 1711

【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码

本专栏整理了《机器学习项目实战10例》,内包含了各种不同的入门级机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+

《机器学习及其应用》示例参考代码.pdf

机器学习的很多示例代码,包括模型估计与优化的房屋价格预测、监督学习、集成学习、强化学习、神经网络的内容示例应用示例

23 个机器学习开源项目,附源码

本文为你介绍23种机器学习项目创意,以获取有关该增长技术的真实经验。我们都知道,教科书上所学与实际操作还是有出入的,那关于机器学习有什么好的项目可以实操吗?这篇教程中,涵盖面向初学者,中...

SeizeeveryDay的博客 2132

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1311

SpringBoot 自定义注解来实现动态切换数据源

/ 初始化数据源@Override@Inherited@Pointcut(“@annotation(包名.aop.DataSource)”) public void@Pointcut 注解定义了一个切点,名称为 dynamicDataSource。@annotation(包名.aop.DataSource) 表示这个切点匹配所有带有 @DataSource 注解的方法。

晴天飛 雪的博客 1838

10个经典机器学习实战项目免费分享【含数据集与分析源码】

10个经典机器学习实战项目免费分享【含数据集与分析源码】

阿旭的博客 4288

AI 与新媒体

AI重构新媒体生态:从生产到分发的全链路变革 AI正成为新媒体领域的核心基础设施,通过五大能力重塑内容产业:自动化生产(AIGC写作/制图/剪辑效率提升5-10倍)、智能分发(算法精准匹配用户)、数据洞察(实时舆情分析)、风险管控(审核效率提升12倍)和运营优化(A/B测试自动化)。这推动行业从"人找内容"转向"内容找人",制作成本下降90%的同时,也带来同质化加剧、版权争议和职业重构等挑战。当前阶段,人机协同成为主流——AI处理标准化生产,人类专注创意与价值观把控。

eastyuxiao的专栏 380

解锁C#新技能:用ML.NET开启机器学习之旅

ML.NET作为一款专为.NET 开发者打造的机器学习框架,以其跨平台、功能丰富、开发门槛低等显著优势,为.NET 开发者开启了通往机器学习领域的便捷之门。无论是在图像分类、文本分类,还是目标检测等众多应用场景中,ML.NET都展现出了强大的实用性和高效性。对于广大.NET 开发者而言,学习和使用ML.NET不仅能够提升自身的技术能力,拓宽职业发展道路,还能为自己的项目注入智能元素,使其在市场竞争中脱颖而出。如果你对机器学习充满好奇,渴望将其融入到自己的.NET 开发工作中,那么不妨从现在开始,尝试使用。

大雨淅淅的博客 1902

FAST-LIO2:论文和算法解析

本文介绍了FAST-LIO2算法:一种快速、鲁棒、通用的激光雷达-惯性里程计框架。FAST-LIO2基于高效的紧密耦合迭代卡尔曼滤波器,具有两个关键的新颖之处,可实现快速,稳健和准确的激光雷达导航(和测绘)。第一种方法是直接将原始点注册到地图上然后更新地图,而不提取特征。这样可以利用环境中的细微特征,从而提高准确性。消除手工设计的特征提取模块,也使其能够适应不同扫描模式的新兴激光雷达;

超爱吃小蛋糕的66的博客 1万+

全新RGB-D及平面法线数据集DIODE

丰田工业大学联合芝加哥大学和北航发布全新RGB-D及平面法线数据集 DIODE (Dense Indoor and Outdoor DEpth)。

qq_43477338的博客 1540

【Elasticsearch】ES机器学习源码分析

它是一种数据框分析,通过分析每个数据点与其他数据点的接近程度及其周围点簇的密度来识别数据集中的异常点。以 customer_full_name(顾客名称)为实体聚合每个顾客所有订单的总金额 sum/avg(taxful_total_price),得到一个每个顾客的平均消费金额和总消费金额,也就是 transfer 得到的是一般意义的样本数据而不是 datafeed 一样的时序数据。这是一种监督的途径。在这种模式下,用户不用训练机器学习什么是异常,期望得到的是什么,什么是对的,什么是错误的。

这个人很懒什么都没有~ 1万+

Android SELinux——neverallow问题处理(十六)

遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级,系统对 SELinux 的管控越来越严,增加了大量的 neverallow。一般情况下,向默认标签授予权限的做法是错误的,其中许多权限都是 neverallow 规则所不允许的。按照上面方法去添加 SELinux 可能会违反了 neverallow 规则,编译时候会报 neverallow 相关的错误。

小旭的专栏 2674

探索ML001:一站式机器学习项目源码与学习资源库

探索ML001:一站式机器学习项目源码与学习资源库 该项目()是一个精心整理的集合,旨在帮助初学者和有经验的数据科学家快速掌握机器学习的核心概念和技术。它提供了丰富的源代码示例、教程和学习材料,是深入理解机器学习理论并实践的宝贵资源。 项目简介 目标: ML001项目的首要目标是为学习者提供一个结构化的平台,让他们可以轻松访问和实践各种机器学习算法,包括监督学习、非监督学习和深度学习等。 内容: ...

gitblog_00085的博客 406

FPGA实践教程: 使用HLS将C程序生成IP核心进行FPGA开发

请根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。通过本教程,您了解了如何使用HLS工具将C程序生成IP核心,并将其用于FPGA开发。在HLS项目中,您可以对C程序进行设计和优化,以生成对应的IP核心。在HLS项目中,您可以对C程序进行设计和优化,以生成相应的IP核心。将导出的IP核心导入到FPGA项目中。使用FPGA开发环境的菜单中的"导入"或"添加文件"选项导入IP核心。

CqpFsharp的博客 455

SLAM Cartographer(18)后端优化问题求解器

了解经过闭环检测构建了子图与节点之间的约束之后,通过后端优化求解器进行优化求解。核心是基于Ceres库进行SPA(Sparse Pose Adjustment)的优化方法,把后端优化问题描述成为一个最小二乘的问题求解

氢键H-H 5680

ML.NET:一个.NET开源、免费、跨平台的机器学习框架

今天大姚给大家分享一个.NET开源、免费、跨平台(支持Windows、Linux、macOS多个操作系统)的机器学习框架:ML.NET。并且本文将会带你快速使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类。ML.NET 允许开发人员在其 .NET 应用程序中轻松构建、训练、部署和使用自定义模型,而无需具备开发机器学习模型的专业知识或使用 Python 或 R 等其他编程语言的经验。该框架提供从文件和数据加载的数据。数据库,支持数据转换,并包含许多机器学习算法。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 2598

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ML2Scratch深度解析:如何在Scratch中构建可视化机器学习应用

ML2Scratch是一个革命性的开源项目,它将TensorFlow.js的强大机器学习能力无缝集成到Scratch可视化编程环境中,让教育工作者和学生能够在熟悉的积木式编程界面中体验和创建AI应用。这个项目打破了机器学习的技术壁垒,为初学者提供了一个零代码的AI开发平台。 ## 技术价值宣言:重新定义AI教育工具 在当今AI技术蓬勃发展的时代,ML2Scratch代表着机器学习民主化的重要一

gitblog_00837的博客 1063

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

openstack之ml2源码分析-Ml2Plugin初始化(一)

ml2入口: ml2 = neutron.plugins.ml2.plugin:Ml2Plugin 首先看下ML2Plugin这个类,从__init__初始化方法看起: def __init__(self): # First load drivers, then initialize DB, then initialize drivers self...

wobuzhidaoaaaaa的博客 493

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

tech.ml.dataset与机器学习:如何为tech.ml提供高效数据预处理

在当今数据驱动的机器学习世界中,高效的数据预处理是成功构建AI模型的关键。**tech.ml.dataset**作为Clojure生态系统中的高性能数据处理系统,为tech.ml机器学习库提供了强大的数据预处理能力,让数据科学家和开发者能够以函数式编程的方式处理海量数据,同时保持代码的简洁性和可维护性。🚀 ## 📊 什么是tech.ml.dataset? **tech.ml.dataset

gitblog_00947的博客 1068
下一篇: 系统架构设计的核心要素
快乐清风客
博客等级 码龄19年 191粉丝 12原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值