Как правильно ввести функции с несколькими значениями в машинном обучении, используя модели для классификации? - PullRequest
0 голосов
/ 06 июля 2019

Я читаю несколько CSV-файлов и загружаю их информацию в панду.Я пытаюсь классифицировать каждый файл как метку 0 или метку 1 из целевого столбца, и каждый файл имеет функции с несколькими значениями.У меня возникли проблемы с поиском наилучшего подхода к построению структуры, которая может быть надлежащим образом обработана с использованием модели классификации SVM с sklearn

пример dataframe: пример изображения структуры dataframe.

file  [1st feature] -  [2nd feature] -  [target]

0 -   [20,30,10...]  -  [0,1,2,3,4]  -   0

1 -   [10,50,20...] - [1,2,0,4,3]  -     1

2 -   [20,30,40...] - [2,4,0,1,3]  -     1

3 -   [50,10,40...] - [0,1,2,3,4]  -     1

Пример кода, который я использовал для чтения файлов csv в фрейм данных:

    os.chdir("E:\Research Machine Learning\ComputerDebugging\option1")
    extension = 'csv'
    all_files = [i for i in glob.glob('*.{}'.format(extension))]

    #new DataFrame
    df1 = pd.DataFrame(columns=["%CPU","PID",'TimeStamp','target'])

    fields=["%CPU","PID",'TimeStamp']


    for f in all_files:
        files.append(f)
        bugs = pd.read_csv(f, header=0,usecols=fields,nrows=1800)
        bugs.sort_values(by=['TimeStamp','PID'], inplace=True)
        CPU =np.array( bugs["%CPU"])
        PID =np.array( bugs["PID"])
        df1.loc[f,'%CPU'] =  CPU
        df1.loc[f,'PID']= PID

    df1['target']=1
    print("Option 1:")
    print(df1.head(3),'\n')

Я обновляю фрейм данных с известной целью, так как это мой тренировочный набор.Я делаю то же самое при чтении файлов с меткой «0».Поскольку каждый файл нуждается в собственной классификации, я подумал, что это может быть лучшим способом сделать это, но я думаю, что ошибаюсь.

Я продолжаю получать эту ошибку, когда пытаюсь скомпилировать

ValueError: установка элемента массива с последовательностью.

Я считаю, что это связано с тем фактом, что модель ожидает единственное значение, но она получает массив.Есть ли способ для модели обрабатывать данные с этой структурой.Или есть способы, которыми я могу реструктурировать это и сохранить информацию?

1 Ответ

0 голосов
/ 06 июля 2019

Я подозреваю, что у вас есть проблема, потому что вы позволяете выводить тип по умолчанию.

из документа pandas doc :

dtype: dtype, по умолчанию Нет Тип данных для принудительного применения.Допускается только один тип dtype.Если нет, то сделайте вывод

Попробуйте задать тип df для объекта при определении df.

#new DataFrame
    df1 = pd.DataFrame(columns=["%CPU","PID",'TimeStamp','target'], dtype=object)
...