machine-learning - 逻辑回归模型中的内核 LogisticRegression scikit-learn sklearn
问题描述
如何使用 sklearn 库在逻辑回归模型中使用内核?
logreg = LogisticRegression()
logreg.fit(X_train, y_train)
y_pred = logreg.predict(X_test)
print(y_pred)
print(confusion_matrix(y_test,y_pred))
print(classification_report(y_test,y_pred))
predicted= logreg.predict(predict)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
解决方案
非常好的问题,但scikit-learn
目前既不支持内核逻辑回归也不支持方差分析内核。
你可以实现它。
ANOVA 内核的示例 1:
import numpy as np
from sklearn.metrics.pairwise import check_pairwise_arrays
from scipy.linalg import cholesky
from sklearn.linear_model import LogisticRegression
def anova_kernel(X, Y=None, gamma=None, p=1):
X, Y = check_pairwise_arrays(X, Y)
if gamma is None:
gamma = 1. / X.shape[1]
diff = X[:, None, :] - Y[None, :, :]
diff **= 2
diff *= -gamma
np.exp(diff, out=diff)
K = diff.sum(axis=2)
K **= p
return K
# Kernel matrix based on X matrix of all data points
K = anova_kernel(X)
R = cholesky(K, lower=False)
# Define the model
clf = LogisticRegression()
# Here, I assume that you have split the data and here, train are the indices for the training set
clf.fit(R[train], y_train)
preds = clf.predict(R[test])¨
Nyström 示例 2:
from sklearn.kernel_approximation import Nystroem
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
K_train = anova_kernel(X_train)
clf = Pipeline([
('nys', Nystroem(kernel='precomputed', n_components=100)),
('lr', LogisticRegression())])
clf.fit(K_train, y_train)
K_test = anova_kernel(X_test, X_train)
preds = clf.predict(K_test)
推荐阅读
- python - Atom 编辑器:autocomplete-python 包不起作用,Jedi 问题?
- python - 我应该在哪里更改代码以告诉 PyTorch 不要使用 GPU?
- python - Pandas DataFrame:仅一列的 info() 函数
- reactjs - 在 next.js 中使用 getStaticProps() 时获取未定义的数据
- java - log4j2 SyslogAppender 不写入日志
- c++ - 在 C++ 中使用以 const 函数作为参数的累积
- css - 如何删除 wordpress 中的内联动态 css(meta Redux 框架中的样式)
- node.js - 我正在从 express API 向颤振应用程序发送 GET 请求,但没有得到任何输出
- spring - 在 Spring Boot 中强制使用 HTTPS
- javascript - Cron Job 执行多次,直到整分钟完成,