Использование данных ранжирования в логистической регрессииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование данных ранжирования в логистической регрессии

Сообщение Anonymous »

Я пытаюсь использовать некоторые данные ранжирования в логистической регрессии. Я хочу использовать машинное обучение, чтобы создать простой классификатор того, является ли веб-страница «хорошей» или нет. Это всего лишь обучающее упражнение, поэтому я не ожидаю хороших результатов; просто надеюсь изучить «процесс» и методы кодирования.
Я поместил свои данные в файл .csv следующим образом:

Код: Выделить всё

URL WebsiteText AlexaRank GooglePageRank
В моем тестовом CSV-файле есть:

Код: Выделить всё

URL WebsiteText AlexaRank GooglePageRank Label
Ярлык представляет собой двоичную классификацию, обозначающую «хорошо» с 1 или «плохо» с 0.
В настоящее время мой LR работает только с веб-сайтом. текст; на котором я запускаю TF-IDF.
У меня есть два вопроса, с которыми мне нужна помощь:
  • Как мне нормализовать данные моего рейтинга для AlexaRank? У меня есть набор из
    10 000 веб-страниц, для всех из которых у меня есть рейтинг Alexa;
    однако они не имеют рейтинга 1–10 000. Их рейтинг выше
    во всем Интернете, поэтому, хотя http://www.google.com может занимать первое место,

    Код: Выделить всё

    http://www.notasite.com
    может иметь рейтинг #83904803289480. Как мне
    нормализовать это в Scikit, чтобы получить наилучшие
    результаты на основе моих данных?
  • Я провожу свою логистическую регрессию таким образом; Я почти уверен, что сделал это неправильно. Я пытаюсь выполнить TF-IDF для текста веб-сайта, затем добавить два других соответствующих столбца и подогнать логистическую регрессию. Я был бы признателен, если бы кто-нибудь мог быстро проверить, правильно ли я использую три столбца, которые хочу использовать в своем LR.

    Код: Выделить всё

     loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=' ')
    
    print "loading data.."
    traindata = list(np.array(p.read_table('train.tsv'))[:,2])#Reading WebsiteText column for TF-IDF.
    testdata = list(np.array(p.read_table('test.tsv'))[:,2])
    y = np.array(p.read_table('train.tsv'))[:,-1] #reading label
    
    tfv = TfidfVectorizer(min_df=3,  max_features=None, strip_accents='unicode', analyzer='word',
    
    token_pattern=r'\w{1,}', ngram_range=(1, 2), use_idf=1, smooth_idf=1,sublinear_tf=1)
    
    rd = lm.LogisticRegression(penalty='l2', dual=True, tol=0.0001, C=1, fit_intercept=True,    intercept_scaling=1.0, class_weight=None, random_state=None)
    
    X_all = traindata + testdata
    lentrain = len(traindata)
    
    print "fitting pipeline"
    tfv.fit(X_all)
    print "transforming data"
    X_all = tfv.transform(X_all)
    X = X_all[:lentrain]
    X_test = X_all[lentrain:]
    
    print "20 Fold CV Score: ", np.mean(cross_validation.cross_val_score(rd, X, y, cv=20, scoring='roc_auc'))
    
    #Add Two Integer Columns
    AlexaAndGoogleTrainData = list(np.array(p.read_table('train.tsv'))[2:,3])#Not sure if I am doing this correctly. Expecting it to contain AlexaRank and GooglePageRank columns.
    AlexaAndGoogleTestData = list(np.array(p.read_table('test.tsv'))[2:,3])
    AllAlexaAndGoogleInfo = AlexaAndGoogleTestData + AlexaAndGoogleTrainData
    
    #Add two columns to X.
    X = np.append(X, AllAlexaAndGoogleInfo, 1) #Think I have done this incorrectly.
    
    print "training on full data"
    rd.fit(X,y)
    pred = rd.predict_proba(X_test)[:,1]
    testfile = p.read_csv('test.tsv', sep="\t", na_values=['?'], index_col=1)
    pred_df = p.DataFrame(pred, index=testfile.index, columns=['label'])
    pred_df.to_csv('benchmark.csv')
    print "submission file created.."`
    


Подробнее здесь: https://stackoverflow.com/questions/221 ... regression
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»