机器学习 0

Posted mitutao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习 0相关的知识,希望对你有一定的参考价值。

准备跟着台湾的一个机器学习课程好好学学python,链接在这http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html

该课程开始有一个作业,叫做HW0,实际上与机器学习无关,只是为了验证大家预备编程能力,它包括两个部分,一个是读.DAT格式的数据,一个是图像翻转

 

这个作业我在windows下基于python2.7完成了,开发环境选择的是pycharm4.0

先上第一个作业上代码:

 1 # -*- coding:UTF-8 -*-
 2 __author__ = \'Administrator\'
 3 
 4 import csv
 5 import cv2
 6 import sys
 7 filename = \'F:/台湾机器学习/hw0_data.dat\'
 8 ufilename = unicode(filename , "utf8")    #这一块主要是因为汉字路径 也就是python调用open打开文件时,其路径必须要转换为utf-8格式 
 9 
10 list=[]
11 row=0
12 colum=0;
13 with open(ufilename, \'r\') as f:
14     data = f.readlines()  #dat中所有字符串读入data
15     for line in data:
16         odom = line.split()        #将单个数据分隔开存好
17         colum=len(odom)
18         numbers_float = map(float, odom) #转化为浮点数
19         list.append(numbers_float)
20         # print numbers_float
21         row=row+1
22 
23 print("原始数据是:{0}行 :{1}列 的数据".format(row, colum))
24 index = int(raw_input("请输入要排序的列号(范围为1到 {0}):\\n".format(colum-1)))
25 resultlist =[]
26 if index >0 and index < colum+1 :
27     list.sort(key=lambda x: x[index-1], reverse=False) #排序 按照第infex个 顺序排列
28     print(list)
29     print(list[0])
30     for i in range(row):
31         print(list[i][index-1])
32         resultlist.append(list[i][index-1])
33     csvfile = file(\'E:\\\\csvtest.csv\', \'wb\')   #最终的数据保存为一行,以逗号隔开,所以保存为csv格式了
34     writer = csv.writer(csvfile)
35     writer.writerow(resultlist)
36     csvfile.close()
37 else:
38     print \'输入错误,请重新输出序列\'

输入数据的效果如下,一共500行 11列,很容易看出前10列是特征,最后一列是标签: +1 和-1

输出数据的效果如下: 其实就是获取了一列特征,当然特征经过排序,我的程序是升序

 

第二个作业上代码:

 1 # -*- coding:UTF-8 -*-
 2 __author__ = \'Administrator\'
 3 
 4 import csv
 5 import cv2
 6 import sys
 7 
 8 
 9 
10 imagename = \'F:/台湾机器学习/Lena.png\'
11 img = cv2.imread(imagename.decode(\'utf-8\').encode(\'gbk\'))  # 主要是汉字路径比较坑!
12 cv2.namedWindow("Image") 
13 cv2.imshow("Image", img)
14 cv2.flip(img,-1,img)
15 cv2.namedWindow("NewImage")
16 cv2.imshow("NewImage", img)
17 cv2.imwrite("e:\\\\newlena.png",img)
18 cv2.waitKey(0)

这个就更加简单了 ,直接利用opencv的函数进行翻转了

效果如下:

 

以上是关于机器学习 0的主要内容,如果未能解决你的问题,请参考以下文章

机器学习—朴素贝叶斯

《Python机器学习及实践》----监督学习经典模型

《Python机器学习及实践》----监督学习经典模型

IVDDelfi基于机器学习的液体活检技术受风投公司青睐

《Python机器学习及实践》----模型实用技巧

《Python机器学习及实践》----模型实用技巧