コード例 #1
0
def sample_105_0():
    """
    10.5 AbuML
    :return:
    """
    global g_with_date_week_noise
    g_with_date_week_noise = True
    train_x, train_y_regress, train_y_classification, pig_three_feature, \
    test_x, test_y_regress, test_y_classification, kl_another_word_feature_test = sample_1031_1()

    from abupy import AbuML
    # 通过x, y矩阵和特征的DataFrame对象组成AbuML
    ml = AbuML(train_x, train_y_classification, pig_three_feature)
    # 使用随机森林作为分类器
    _ = ml.estimator.random_forest_classifier()

    # 交织验证结果的正确率
    print('ml.cross_val_accuracy_score():\n', ml.cross_val_accuracy_score())
    # 特征的选择
    print('ml.feature_selection():\n', ml.feature_selection())
コード例 #2
0
ファイル: c10.py プロジェクト: 3774257/abu
def sample_105_0():
    """
    10.5 AbuML
    :return:
    """
    global g_with_date_week_noise
    g_with_date_week_noise = True
    train_x, train_y_regress, train_y_classification, pig_three_feature, \
    test_x, test_y_regress, test_y_classification, kl_another_word_feature_test = sample_1031_1()

    from abupy import AbuML
    # 通过x, y矩阵和特征的DataFrame对象组成AbuML
    ml = AbuML(train_x, train_y_classification, pig_three_feature)
    # 使用随机森林作为分类器
    _ = ml.estimator.random_forest_classifier()

    # 交织验证结果的正确率
    print('ml.cross_val_accuracy_score():\n', ml.cross_val_accuracy_score())
    # 特征的选择
    print('ml.feature_selection():\n', ml.feature_selection())
コード例 #3
0
train_df = df.filter(
    regex=
    'Survived|Age_.*|SibSp|Parch|Fare_.*|Cabin_.*|Embarked_.*|Sex_.*|Pclass_.*|Child|Age\*Class_.*'
)
train_df.head(1)

train_np = train_df.as_matrix()
y = train_np[:, 0]
x = train_np[:, 1:]
titanic = AbuML(x, y, train_df)
titanic.estimator.logistic_classifier()
titanic.cross_val_accuracy_score()

titanic.importances_coef_pd()

titanic.feature_selection()


#L2
def loss_func(X, W, b, y):
    C = 2
    s = score(X, W, b)
    p = softmax(s)
    return -np.mean(cross_entropy(y, p)) + np.mean(np.dot(w.T, w) / C)


from abupy import AbuML
titanic = AbuML.create_test_more_fiter()
titanic.estimator.logistic_classifier()

titanic.plot_learning_curve()
コード例 #4
0
            index=fairy_tale_feature.columns[1:]))


feature_selection(estimator, train_x, train_y_classification)

# 3.3
from abupy import AbuML
# 通过X ,Y矩阵和特征的DataFrame对象醉成AbuML
ml = AbuML(train_x, train_y_classification, fairy_tale_feature)
# 使用随机森林作为分类器
_ = ml.estimator.random_forest_classifier()

# 交织验证结果的正确率
ml.cross_val_accuracy_score()
# 特征的选择
ml.feature_selection()

abupy.env.g_enable_ml_feature = True
abupy.env.g_enable_train_test_split = True

# 初始化资金200万元
read_cash = 2000000
# 每笔交易的买入基数资金设置为万分之15
abupy.beta.atr.g_atr_pos_base = 0.0015

# 使用run_loop_back运行策略进行全市场回测:
from abupy import AbuFactorBuyBreak
from abupy import AbuFactorAtrNStop
from abupy import AbuFactorPreAtrNStop
from abupy import AbuFactorCloseAtrNStop
from abupy import abu
コード例 #5
0
train_df.head(1)

#新增的特征是否能够提升模型表现
train_np = train_df.as_matrix()
y = train_np[:, 0]
x = train_np[:, 1:]
titanic = AbuML(x, y, train_df)

titanic.estimator.logistic_classifier()
titanic.cross_val_accuracy_score()

#一般来说,机器学习中看一个新特征是否发挥作用,最常用的方法就是加进去看模型成绩是否提升,可以同时观察模型给特征分配的权重,看特征发挥作用的大小。
print titanic.importances_coef_pd()
#对一些特定的应用场景中,模型的训练非常耗时,可能几天甚至更长,这些应用场景中,需要一些新的数学方法估计新特征是否有效。机器学习中有很多方法评估特征在模型中发挥的作用
#如:
print titanic.feature_selection()

#通过人工构造的非线性特征,可以弥补线性模型表达能力的不足,这一手段之所以能生效,背后的原因是:低维的非线性关系可以在高维空间线性展开。
#增加新的特征维度,让分类任务背后的数学表达式变得更加简单,让分类模型更容易挖掘出信息,这是构造新特征有意义的地方,增加特征维度,构造出模型表达不出的内在表达式。
#对于逻辑分类模型而言,这就是通过增加新的非线性特征,完成特征维度的扩展,构造出模型表达不出的非线性的内在关系。

import numpy as np


def score(x, w, b):
    return np.dot(x, w) + b


def softmax(s):
    return np.exp(s) / np.sum(np.exp(s), axis=0)