机器学习常用算法的调用
一、线性回归(LinearRegression)
线性回归是利用连续性变量来估计实际数值(例如房价,呼叫次数和总销售额等)。我们通过线性回归算法找出自变量和因变量间的最佳线性关系,图形上可以确定一条最佳直线。这条最佳直线就是回归线。这个回归关系可以用Y=aX+b表示。
Python代码:
from sklearn import linear_model
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
linear = linear_model.LinearRegression()
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#方程系数和截距
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
predicted= linear.predict(x_test)
参数说明:
sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
参数 |
说明 |
fit_intercept |
布尔型,默认为True。若参数值为True时,代表训练模型需要加一个截距项;若参数为False时,代表模型无需加截距项。 |
normalize |
布尔型,默认为False。若fit_intercept参数设置False,normalize参数无需设置;若normalize设置为True,则输入的样本数据将标准化:(X-X均值)/||X||。 |
copy_X |
布尔型,默认为False。 |
n_jobs |
整型,默认为1。用于计算的CPU数。 |
二、逻辑回归(LogisticRegression)
逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数来预测一个事件发生的概率。所以它预测的是一个概率值,它的输出值应该在0到1之间。
Python 代码:
from sklearn.linear_model importLogisticRegression
model = LogisticRegression()
model.fit(X, y)
model.score(X, y)
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)
predicted= model.predict(x_test)
参数说明:
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=’liblinear’,max_iter=100,multi_class=’ovr’, verbose=0, warm_start=False, n_jobs=1)
参数 |
说明 |
penalty |
惩罚项,str类型,可选参数为l1和l2,默认为l2。 |
dual |
对偶或原始方法,bool类型,默认为False。对偶方法只用在线性多核(liblinear)的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。 |
tol |
停止求解的标准,float类型,默认为1e-4。就是求解到多少的时候,停止,认为已经求出最优解。 |
C |
正则化系数λ的倒数,float类型,默认为1.0。必须是正浮点型数。像SVM一样,越小的数值表示越强的正则化。 |
fit_intercept |
是否存在截距或偏差,bool类型,默认为True。 |
intercept_scaling |
仅在正则化项为‘liblinear’,且fit_intercept设置为True时有用。float类型,默认为1。 |
class_weight |
用于标示分类模型中各种类型的权重,可以是一个字典或者’balanced’字符串,默认为不输入,也就是不考虑权重,即为None。 |
random_state |
随机数种子,int类型,可选参数,默认为无,仅在正则化优化算法为sag,liblinear时有用。 |
solver |
优化算法选择参数,只有五个可选参数,即newton-cg(牛顿法家族的一种)、lbfgs(拟牛顿法的一种)、liblinear(坐标轴下降法)、sag(随机平均梯度下降)、saga(随机优化算法)。默认为liblinear。 |
max_iter |
算法收敛最大迭代次数,int类型,默认为10。 |
multi_class |
分类方式选择参数,str类型,可选参数为ovr和multinomial,默认为ovr。 |