Sklearn是基于Python语言的机器学习工具。它建立在NumPy,SciPy,Pandas和Matplotlib之上,里面的API的设计非常好,所有对象的接口简单,很适合新手上路。LogisticRegression是Sklearn线性回归模型的接口,函数原型、引用和调用的方法如下:函数原型
sklearn.linear_model.LogisticRegression(penalty="l2", *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver="lbfgs", max_iter=100, multi_class="auto", verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)
引用:
from sklearn.linear_model import LogisticRegression
调用示例
# 定义线性回归模型
model = LogisticRegression(max_iter=500)
函数参数
大部分参数使用默认即可,典型参数解释如下。
penalty:正则化参数,三种取值:{‘l1’,‘l2’,‘elasticnet’,‘none’},default=’l2’C:正则强度的倒数;必须为正浮点数。与支持向量机一样,较小的值指定更强的正则化。class_weight:样本权重,可以是一个字典或者’balanced’字符串,默认为None。对于二分类模型,可以这样指定权重:class_weight={0:0.9,1:0.1},当class_weight=‘balanced’,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越高。solver:优化算法选择参数,五种取值:newton-cg,lbfgs,liblinear,sag,saga。default=liblinear。liblinear适用于小数据集,而sag和saga适用于大数据集因为速度更快。如果是L2正则化,那么4种可选的算法{‘newton-cg’,‘lbfgs’,‘liblinear’,‘sag’}都可以选择。但是如果penalty是L1正则化的话,就只能选择‘liblinear’了。max_iter:算法收敛的最大迭代次数,即求取损失函数最小值的迭代次数,默认是100。
函数接口
fit:拟合模型,用来训练LR分类器,其中X是训练样本,y是对应的标记向量predict:用来预测样本,也就是分类,X是测试集。返回array。score:返回给定测试集合的平均准确率,浮点型数值。对于多个分类返回,则返回每个类别的准确率组成的哈希矩阵。R^2评估模型
代码示例
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 拆分数据集
# x、y分别为原始数据、目标数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 定义模型
model = LogisticRegression(max_iter=500)
# 训练模型
model.fit(X_train, y_train)
# 评估模型
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)
# 预测
pred = model.predict(x)
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点
人间正道是沧桑2022-11-19
该文是锂矿和锂电池行业的大利空。为什么11月10日的文件至今10月18日才发表,为什么锂电行业股票伝格跌跌不休,可能有机构早已内部知道此信息,下周一会造成锂电池股票大跌。