コード例 #1
0
ファイル: train73.py プロジェクト: unmo/100_knock_u
from sklearn.linear_model import LogisticRegression

def train_logistic_regression(features):
    
    features = np.array(features)    # 素性を持ったnumpy配列を作成。二次元配列。
    words = list(set(features[:,1]))    # 重複しているwordを削除する。python的。これはインデックスを指定して重複している数をカウントするため
    
    pos_vec = np.zeros(len(words))   # ポジティブベクトルの配列初期化
    neg_vec = np.zeros(len(words))   # ネガティブベクトルの配列初期化

    for feature in features:
        index = words.index(feature[1]) # indexメソッドで、対象の特徴語が、wordsリスト内のどの位置か調べる。
        if feature[0] == '-1':
            neg_vec[index] += 1         # pos_vecの指定のインデックスに、+1を加算
        else:
            pos_vec[index] += 1         # neg_vecの指定のインデックスに、+1を追加

    logit_model = LogisticRegression()  # 分類器のインスタンスを生成
    logit_model.fit([pos_vec, neg_vec],[1,-1]) # 訓練する。.fit(トレーニングベクトル,正解ベクトル)

    return (words,logit_model)


if __name__ == '__main__':
    
    parser = argparse.ArgumentParser()
    parser.add_argument("-i", "--input", dest = "sentiment", default = "sentiment.txt")
    args = parser.parse_args()
    #    logit = linear_model.LogisticRegression()
    features = get_feature(args.sentiment)
    train_logistic_regression(features)
コード例 #2
0
ファイル: train74.py プロジェクト: unmo/100_knock_u
        fp += 1
    elif label != predict and predict == -1 :
        global fn
        fn += 1
    else:
        print "error"
        exit()

if __name__ == '__main__':
    
    parser = argparse.ArgumentParser()
    parser.add_argument("-i", "--input", dest = "sentiment", default = "sentiment.txt")
    parser.add_argument("-v", "--verification", dest = "verification", default = "test_data.txt")
    args = parser.parse_args()
    
    features = get_feature(args.sentiment) # 学習要データの素性生成
    features = np.array(features)          # 素性を持ったnumpy配列を作成。二次元配列。

# クロス    
#    train_data, test_data, train_target, test_target = crv.train_test_split(features[:,1], features[:,0], test_size = 0.2 ,random_state = 0 )    
#    train = np.c_[train_target, train_data]
#    verification = np.c_[test_target,test_data]

# ロジスティック回帰モデルの作成
# 戻り値は単語とモデル        
    logistic_model_instance = train_logistic_regression(features)
    words = logistic_model_instance[0]
    logit_model = logistic_model_instance[1]

# 入力データとして1割       
    with open(args.verification) as verification_file: