- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Scikit-Learn 应用 SVM 算法来预测客户是否会选择住房贷款。我希望将模型导出为 PMML 格式。数据集中的特征和标签如下所示:
特点
1.访问频率
2。对报价的响应
3.使用网上银行设施
4。储蓄账户数量
5.支票账户数量
6.开出的支票数量
7。已完成的电子转帐数量
8. 取得的属性(property)
九、其他贷款行为
10. 收入
标签
是房屋贷款
模型已正确生成,但无法导出到 PMML。代码粘贴如下:
代码:
from sklearn.decomposition import PCA
from sklearn2pmml.decoration import ContinuousDomain
import pandas
import sklearn_pandas
from sklearn.svm import SVC
home_loan = pandas.read_csv('home-loan-dataset.csv')
home_loan = home_loan.drop(['CustID'], axis=1)
home_loan_df = pandas.concat((pandas.DataFrame(home_loan[:], columns = ['Frequencyofvisits','Responsetooffers','UsageofOnlineBankingFacility','Numberofsavingsaccount','Numberofcheckingaccount','Numberofcheckswritten','NumberofEFTsdone','PropertyAcquired','OtherLoansBehaviour','Income']), pandas.DataFrame(home_loan['IsHouseLoan'], columns = ["IsHouseLoan"])), axis = 1)
home_loan_mapper = sklearn_pandas.DataFrameMapper([
(['Frequencyofvisits','Responsetooffers','UsageofOnlineBankingFacility','Numberofsavingsaccount','Numberofcheckingaccount','Numberofcheckswritten','NumberofEFTsdone','PropertyAcquired','OtherLoansBehaviour','Income'], [ContinuousDomain(), PCA(n_components = 3)]),
("IsHouseLoan", None)
])
home_loan = home_loan_df
home_loan_X = home_loan[['Frequencyofvisits','Responsetooffers','UsageofOnlineBankingFacility','Numberofsavingsaccount','Numberofcheckingaccount','Numberofcheckswritten','NumberofEFTsdone','PropertyAcquired','OtherLoansBehaviour','Income']]
home_loan_y = home_loan[['IsHouseLoan']]
# Classify using SVM
home_loan_classifier = SVC()
home_loan_classifier.fit(home_loan_X, home_loan_y.values.ravel())
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
#
# Conversion to PMML
#
from sklearn2pmml import sklearn2pmml
sklearn2pmml(home_loan_classifier, home_loan_mapper, "SVMHomeLoan.pmml", with_repr = True)
转换为 PMML 时显示以下错误:
错误:
C:\Python27\python.exe C:/Users/Admin/PycharmProjects/ML-Programs/Bank-Customer-Segmentation/svm-pmml.py
Aug 17, 2016 11:35:01 AM org.jpmml.sklearn.Main run
INFO: Parsing DataFrameMapper PKL..
Aug 17, 2016 11:35:01 AM org.jpmml.sklearn.Main run
INFO: Parsed DataFrameMapper PKL in 30 ms.
Aug 17, 2016 11:35:01 AM org.jpmml.sklearn.Main run
INFO: Converting DataFrameMapper..
Aug 17, 2016 11:35:01 AM org.jpmml.sklearn.Main run
SEVERE: Failed to convert DataFrameMapper
java.lang.IllegalArgumentException: The value of the sklearn2pmml.decoration.ContinuousDomain.data_min_ attribute (null) is not a supported array type
at org.jpmml.sklearn.ClassDictUtil.getArray(ClassDictUtil.java:51)
at sklearn2pmml.decoration.ContinuousDomain.getDataMin(ContinuousDomain.java:111)
at sklearn2pmml.decoration.ContinuousDomain.encodeFeatures(ContinuousDomain.java:50)
at sklearn_pandas.DataFrameMapper.encodeFeatures(DataFrameMapper.java:70)
at org.jpmml.sklearn.Main.run(Main.java:146)
at org.jpmml.sklearn.Main.main(Main.java:107)
Exception in thread "main" java.lang.IllegalArgumentException: The value of the sklearn2pmml.decoration.ContinuousDomain.data_min_ attribute (null) is not a supported array type
at org.jpmml.sklearn.ClassDictUtil.getArray(ClassDictUtil.java:51)
at sklearn2pmml.decoration.ContinuousDomain.getDataMin(ContinuousDomain.java:111)
at sklearn2pmml.decoration.ContinuousDomain.encodeFeatures(ContinuousDomain.java:50)
at sklearn_pandas.DataFrameMapper.encodeFeatures(DataFrameMapper.java:70)
at org.jpmml.sklearn.Main.run(Main.java:146)
at org.jpmml.sklearn.Main.main(Main.java:107)
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/ML-Programs/Bank-Customer-Segmentation/svm-pmml.py", line 52, in <module>
sklearn2pmml(home_loan_classifier, home_loan_mapper, "SVMHomeLoan.pmml", with_repr = True)
File "C:\Python27\lib\site-packages\sklearn2pmml\__init__.py", line 56, in sklearn2pmml
subprocess.check_call(cmd)
File "C:\Python27\lib\subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['java', '-cp', 'C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\guava-19.0.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\istack-commons-runtime-2.21.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jaxb-core-2.2.11.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jaxb-runtime-2.2.11.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jcommander-1.48.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jpmml-converter-1.0.7.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jpmml-sklearn-1.0-SNAPSHOT.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\jpmml-xgboost-1.0.5.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\pmml-agent-1.2.16.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\pmml-model-1.2.16.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\pmml-model-metro-1.2.16.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\pmml-schema-1.2.16.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\pyrolite-4.12.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\serpent-1.12.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\slf4j-api-1.7.21.jar;C:\\Python27\\lib\\site-packages\\sklearn2pmml\\resources\\slf4j-jdk14-1.7.21.jar', 'org.jpmml.sklearn.Main', '--pkl-estimator-input', 'c:\\users\\Admin\\appdata\\local\\temp\\tmplgmrjq.pkl', '--repr-estimator', "SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',\n max_iter=-1, probability=False, random_state=None, shrinking=True,\n tol=0.001, verbose=False)", '--pkl-mapper-input', 'c:\\users\\Admin\\appdata\\local\\temp\\tmpobahse.pkl', '--repr-mapper', "DataFrameMapper(features=[(['Frequencyofvisits', 'Responsetooffers', 'UsageofOnlineBankingFacility', 'Numberofsavingsaccount', 'Numberofcheckingaccount', 'Numberofcheckswritten', 'NumberofEFTsdone', 'PropertyAcquired', 'OtherLoansBehavior', 'Income100000'], TransformerPipeline(steps=[('continuousdomain', ContinuousDomain(invalid_value_treatment='return_invalid')), ('pca', PCA(copy=True, n_components=3, whiten=False))])), ('IsHouseLoan', None)],\n sparse=False)", '--pmml-output', 'SVMHomeLoan.pmml']' returned non-zero exit status 1
可能是什么原因?
最佳答案
显然,您的数据列之一不符合 sklearn2pmml.decoration.ContinouslyDomain
转换的预期。在不查看数据的情况下,不可能说出哪一列以及问题的确切性质(例如,分类运算类型而不是连续、错误的数字数据类型、列包含 NA 值等) .
这里有两个选择:
ContinouslyDomain
转换正常工作。ContinouslyDomain
。目前您正在使用直接从 sklearn2pmml README.md 文件复制的数据预处理逻辑。请重新处理它以匹配您的数据 - [ContineousDomain(), PCA(n_components = 3)]
转换不太可能是适合您的用例的正确解决方案。
此外,此问题特定于 sklearn2pmml包裹。如果您在 sklearn2pmml 问题跟踪器中提出问题,您可能会得到更好/更快的回复。
关于python - 使用 Python 将 SVM 模型导出到 PMML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989272/
如果我在 lrge 训练集上训练 SVM,并且类变量是 True 或 False,那么与训练集中的 False 值数量相比,True 值很少会影响训练模型/结果吗?他们应该平等吗?如果我的训练集的 T
假设我的特征向量是 (x1, x2, ...xn) 谁能给我一个代码来使用 libSVM 训练一类 SVM? 我应该如何使用交叉验证来学习参数。 最佳答案 这可能会帮助你 label=ones(Num
我提前为这个问题的新颖性道歉,但我被卡住了。我正在尝试解决这个问题, 我可以做第 i)-1v) 部分,但我卡在了 v 上。我知道计算余量 y,你可以 y=2/||W|| 而且我知道W是超平面的法线,只
我有以下 R 配置: 操作系统:LinuxR 版本 3.0.1 (2013-05-16)rmr2 版本 2.2.1rhdfs 版本 1.0.6hadoop 版本 1.2.0 如何使用带 rmr2 包的
我想尝试不同的嵌入,例如 Word2Vec、ELMo 和 BERT,但我有点困惑是使用词嵌入还是句子嵌入,以及为什么。我将嵌入用作 SVM 分类器的特征输入。 谢谢。 最佳答案 虽然这两种方法都可以证
几乎所有的例子都是基于数字的。在文本文档中,我有文字而不是数字。 那么你能告诉我如何使用这些算法进行文本文档分类的简单示例吗? 我不需要代码示例,只需要逻辑 伪代码将有很大帮助 最佳答案 常用的方法是
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我目前正处于语音识别的讨论阶段项目,我使用MFCC特征提取,但是从函数返回的MFCC特征是一个矩阵,例如每个语音文件(wav)的(20,38)特征矩阵。但是我如何将此功能传递给 SVM 分类器。对于
请我喜欢用 SIFT DESCRIPTOR 和 SVM 将一组图像分类为 4 类。现在,使用 SIFT 提取器,我得到了不同大小的关键点,例如 img1 有 100 个关键点,img2 有 55 个关
我有一组图像。我想学习一类支持向量机(OC-SVM)来模拟特定类(正)的分布,因为我没有足够的例子来代表其他类(负)。我对 OC-SVM 的理解是,它试图将数据与源分离,换句话说,它试图学习一个超球体
我正在使用 scikit-learn 使用 SVM 构建一些预测模型。我有一个包含大约 5000 个示例和大约 700 个特征的数据集。我在我的训练集上使用 18x17 网格搜索进行 5 折交叉验证,
这是我考试时提出的问题。我给出了以下答案,我的得分是0分。教授甚至不同意给予任何部分的认可,也没有告诉我我的答案有什么问题。谁能帮我找出我的答案有什么问题吗? 这是我在考试中给出的答案。缺点是:1)
tune.svm() 和 best.svm() 有什么区别。 当我们调整 svm 内核的参数时,我们不希望总是为我们的模型选择最佳值。 请原谅,因为我是 R 和机器学习的新手。 我注意到在调整 svm
我尝试使用 OpenCV2.3 实现基于 SVM 和 HOG 的人员检测系统。但是我卡住了。 我走到这一步:我可以从图像数据库计算 HOG 值,然后我用 LIBSVM 计算 SVM 向量,所以我得到例
Mahout(机器)中围绕 SVM(支持向量机)的任何新发展Learning With Hadoop) 使用 Hadoop?最近 SVM 实现被添加到 Mahout 中。我打算使用 SVM。有人尝试过
我使用 sklearn.svm.SVC 构建支持向量分类器,如下所示。 import numpy as np from sklearn.svm import SVC svc=SVC(proba
我想看看模型是否收敛于我的交叉验证。我如何增加或减少 sklearn.svm.SVC 中的时代? 目前: SVM_Model = SVC(gamma='auto') SVM_Model.fit(X_t
与在 SVM 的相同成本函数中使用 2-范数权重相比,我们如何通过在成本函数中使用 1-范数权重来提高稀疏性。 对于 1-范数:成本函数 - 最小化 ||w||_1 对于 2-范数:成本函数 - 最小
事实上,我不是一个经验丰富的 C++ 程序员,我是一个 C# 程序员,正如你所知道的,它有很大的不同,根据我的机器学习经验,我只使用了 matlab,所以如果我有一些,请原谅概念错误。 我正在尝试在
我正在尝试使用 OpenCV 中的 SVM 加载函数加载 .xml 文件,然后使用预测函数对交通标志进行分类。当到达预测函数的执行时抛出错误: Unhandled exception at 0x000
我是一名优秀的程序员,十分优秀!