Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

데블스캠프2013/셋째날/머신러닝: Difference between revisions

From ZeroWiki
imported>tag0123
No edit summary
imported>qa22ahj
No edit summary
Line 15: Line 15:
== 안혁준, 남근우 팀 ==
== 안혁준, 남근우 팀 ==
* 코드를 올려주세요.
* 코드를 올려주세요.
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
   
   
using namespace std;
struct DArray {
int ** data;
int col;
int row;
};
int ** allocArr(int row, int col);
void deallocArr(int ** target, int row);
void readFile(int ** target, const char * filename, int row, int col);
void findClass(DArray train_data, DArray train_class, DArray test_data);
int main(){
char buf[1024*1024];
//alloc
int ** train_data = allocArr(11293, 8165);
int ** train_class = allocArr(11293, 20);
int ** test_data = allocArr(7528, 8165);
readFile(train_data, "DataSet/train_data11293x8165", 11293, 8165);
readFile(train_class, "DataSet/train_class11293x20", 11293, 20);
readFile(test_data, "DataSet/test_data7528x8165", 7528, 8165);
DArray train_d;
DArray train_c;
DArray test_d;
train_d.data = train_data;
train_d.row = 11293;
train_d.col = 8163;
train_c.data = train_class;
train_c.row = 11293;
train_c.col = 20;
test_d.data = test_data;
test_d.row = 7528;
test_d.col = 8163;
findClass(train_d, train_c, test_d);
//dealloc
deallocArr(train_data, 11293);
deallocArr(train_class, 11293);
deallocArr(test_data, 7528);
}
int ** allocArr(int row, int col){
int ** train_data = (int**)malloc(sizeof(int*) * row);
for(int i = 0; i < row; i++){
train_data[i] = (int*)malloc(sizeof(int) * col);
}
return train_data;
}
void deallocArr(int ** target, int row){
for(int i = 0; i < row; i++){
free(target[i]);
}
free(target);
}
void readFile(int ** target, const char * filename, int row, int col){
FILE * file = fopen(filename, "r");
for(int i = 0; i < row; i++){
for( int j = 0; j < col; j++){
if(j < col)
fscanf(file, "%d,", &target[i][j]);
else
fscanf(file, "%d", &target[i][j]);
}
}
fclose(file);
}
void findClass(DArray train_data, DArray train_class, DArray test_data){
for(int i = 0; i < test_data.row; i++){
//test_data[i];
int min_index = -1;
int min = 1000;
for(int j = 0; j < train_data.row; j++){
//train_data[j]
int sum = 0;
for(int k =0; k < train_data.col; k++){
int v = test_data.data[i][k] - train_data.data[j][k];
v = v >0 ? v : -v;
sum += v;
}
if(sum < min){
min_index = j;
min = sum;
}
}
//min이 어떤 클래스 인지.
for(int j = 0; j < train_class.col; j++){
if(train_class.data[min_index][j]){
printf("%d\n", j);
}
}
}
}
== 고한종, 임지훈 팀 ==
== 고한종, 임지훈 팀 ==
* 코드를 올려주세요.
* 코드를 올려주세요.

Revision as of 12:51, 26 June 2013

Machine Learning

정종록, 조영준, ?? 팀

  • 코드를 올려주세요.

김민재, 송정규, 김도현 팀

  • 코드를 올려주세요.

서민관, 박희정 팀

  • 코드를 올려주세요.

김해천, 김남규 팀

  • 코드를 올려주세요.

안혁준, 남근우 팀

  • 코드를 올려주세요.
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>

using namespace std;

struct DArray {
	int ** data;
	int col;
	int row;
};

int ** allocArr(int row, int col);
void deallocArr(int ** target, int row);
void readFile(int ** target, const char * filename, int row, int col);
void findClass(DArray train_data, DArray train_class, DArray test_data);

int main(){
	char buf[1024*1024];

	//alloc
	int ** train_data = allocArr(11293, 8165);
	int ** train_class = allocArr(11293, 20);
	int ** test_data = allocArr(7528, 8165);

	readFile(train_data, "DataSet/train_data11293x8165", 11293, 8165);
	readFile(train_class, "DataSet/train_class11293x20", 11293, 20);
	readFile(test_data, "DataSet/test_data7528x8165", 7528, 8165);

	DArray train_d;
	DArray train_c;
	DArray test_d;

	train_d.data = train_data;
	train_d.row = 11293;
	train_d.col = 8163;
	train_c.data = train_class;
	train_c.row = 11293;
	train_c.col = 20;
	test_d.data = test_data;
	test_d.row = 7528;
	test_d.col = 8163;
	
	findClass(train_d, train_c, test_d);

	//dealloc
	deallocArr(train_data, 11293);
	deallocArr(train_class, 11293);
	deallocArr(test_data, 7528);
}
int ** allocArr(int row, int col){
	int ** train_data = (int**)malloc(sizeof(int*) * row);
	for(int i = 0; i < row; i++){
		train_data[i] = (int*)malloc(sizeof(int) * col);
	}
	return train_data;
}
void deallocArr(int ** target, int row){
	for(int i = 0; i < row; i++){
		free(target[i]);
	}
	free(target);
}
void readFile(int ** target, const char * filename, int row, int col){
	FILE * file = fopen(filename, "r");
	for(int i = 0; i < row; i++){
		for( int j = 0; j < col; j++){
			if(j < col)
				fscanf(file, "%d,", &target[i][j]);
			else
				fscanf(file, "%d", &target[i][j]);
		}
	}
	fclose(file);
}
void findClass(DArray train_data, DArray train_class, DArray test_data){
	for(int i = 0; i < test_data.row; i++){
		//test_data[i];
		int min_index = -1;
		int min = 1000;
		for(int j = 0; j < train_data.row; j++){
			//train_data[j]
			int sum = 0; 
			for(int k =0; k < train_data.col; k++){
				int v = test_data.data[i][k] - train_data.data[j][k];
				v = v >0 ? v : -v;
				sum += v;
			}

			if(sum < min){
				min_index = j;
				min = sum;
			}
		}
		//min이 어떤 클래스 인지.
		for(int j = 0; j < train_class.col; j++){
			if(train_class.data[min_index][j]){
				printf("%d\n", j);
			}
		}
	}
}

고한종, 임지훈 팀

  • 코드를 올려주세요.

장혁수, 이예나 팀

  • 코드를 올려주세요.

박성현, 송바위샘 팀

  • 코드를 올려주세요.

백주협, 지영민, ?? 팀

  • 코드를 올려주세요.

김윤환 팀

  • 코드를 올려주세요.

데블스캠2013/셋째날