【问题标题】:accuracy of the logistic regression program always differ逻辑回归程序的准确性总是不同
【发布时间】:2018-11-12 20:38:27
【问题描述】:
import math

import numpy as np

import pandas as pd

#from pandas import DataFrame

from sklearn import preprocessing,cross_validation

from sklearn.linear_model import LogisticRegression

#from sklearn.cross_validation import train_test_split

from numpy import loadtxt, where

from pylab import scatter, show, legend, xlabel, ylabel

# scale larger positive and values to between -1,1 depending on the largest
# value in the data

min_max_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))

df = pd.read_excel("Cryotherapy.xlsx", header=0)

# clean up data

df.columns = ["sex","age","Time","Number_of_Warts", "Type", 

"Area","Result_of_Treatment"]

x = df["Result_of_Treatment"]

X = df[["Type","Area",]]

X = np.array(X)

X = min_max_scaler.fit_transform(X)

Y = df["Result_of_Treatment"]

Y = np.array(Y)

X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, 

test_size=0.4)

# train scikit learn model

clf = LogisticRegression()

clf.fit(X_train, Y_train)

accuracy = clf.score(X_test,Y_test)

print(accuracy)

【问题讨论】:

  • 你想在这里得到答案的实际问题是什么?

标签: python-3.x scikit-learn logistic-regression


【解决方案1】:

尝试将random_state 传递给train_test_split 函数。如果你不这样做,那么数据每次都会被随机打乱 -> 产生不同的训练和测试集。

例子:

X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, test_size=0.4, random_state=1)

【讨论】:

  • 我试过了 accuracy = clf.score(X_train,Y_train) 但它在 70% 左右。你能解释一下原因吗
猜你喜欢
  • 2019-12-22
  • 2015-08-10
  • 2018-10-27
  • 2019-11-26
  • 1970-01-01
  • 2014-09-09
  • 2018-03-05
  • 2017-02-04
  • 1970-01-01
相关资源
最近更新 更多