Python编程基础和Python机器学习基础案例

码云地址:给我点个赞就行奥

https://gitee.com/MaLuBuShiWo/zhuxiaofeng/tree/master

注:我是直接粘贴的代码 大家在jupyter notebook 里面看会更方便看

下面的python基础统合实践需要使用的库

使用库

  • pandas 读入数据等操作
  • matplotlib 把数据可视化
  • numpy 科学计算
  • sklearn 使用机器学习中经典模型

index:

  • python 基础编程(数据运算 比较运算 赋值运算 逻辑运算 成员运算)
  • python 流程控制(if 分支控制 for 循环控制)
  • python 函数(模块)设计
  • python 编程库(包)的导入
  • python基础统合实践

数据:

http://pan.baidu.com/s/1dENAUTr

源码:¶

http://pan.baidu.com/s/1geN6QbD

python 编程基础

注:使用中文输入法输入的运算符号 会出现报错情况

python数据运算

In [1]:

 

#整数运算
10+20

Out[1]:

30

In [2]:

 

#整数与浮点数减法
30-60.5

Out[2]:

-30.5

In [43]:

 

#整数与浮点数乘法
4*8.9

Out[43]:

35.6

In [6]:

 

#整数与整数相除
5/4

Out[6]:

1.25

In [7]:

 

#整数取模运算
5%4

Out[7]:

1

In [8]:

 

#幂指数运算
2.0**3

Out[8]:

8.0

比较运算

In [9]:

 

#整数比较
10<20

Out[9]:

True

In [11]:

 

 10>20

Out[11]:

False

In [13]:

 

#整数与浮点数比较
30<30.0

Out[13]:

False

In [15]:

 

30<=30.0

Out[15]:

True

In [16]:

 

30.0<=30.0

Out[16]:

True

In [17]:

 

#判断两个值是否相等
30==40

Out[17]:

False

In [19]:

 

#判断两个值不想等
30!=40

Out[19]:

True

 

赋值运算

将一些数据赋值给自定义的变量,python在声明变量时不需要预告知类型。

In [ ]:

 

In [22]:

 

#将一个元组赋值给变量t
t= (1,'abc',0.4)
#下列代码数错误的因为我们都知道 元组内部元素是不可以修改的
#t[0]=2

In [ ]:

 

In [25]:

 

#将一个列表赋值给变量l
l=[1,'abc',0.4]
#试图更改列表l的第一个元素
l[0]=2
l[0]+=1
l

Out[25]:

[3, 'abc', 0.4]

逻辑运算 与(and) 或(or)非(not)

In [27]:

 

#与 二者都是true才能 true
True and True

Out[27]:

True

In [28]:

 

#或 有一个是true 就是true
True or False

Out[28]:

True

In [29]:

 

#非 取得相反的布尔值
not False

Out[29]:

True

成员运算

主要是面向元组 列表 字典。 通过运算符in询问是否有某个元素在元组或者列表里面出现,或者检视某个键(key)是否在字典里存在。

In [41]:

 

# 一个列表一个元组一个字典
l=[1,'abc',0.4]
t= (1,'abc',0.4)
d={1:'1','abc':0.1,0.4:80}

In [36]:

 

#询问列表l中是否有0.4
0.4 in l

Out[36]:

True

In [37]:

 

#询问元组t中是否有1
1 in t

Out[37]:

True

In [39]:

 

#询问字典d中是否有键‘abc’
'adc' in d

Out[39]:

False

In [42]:

 

#in 只能用来考量是否有键值(key) 不能告诉你是否有值(value)
0.1 in d

Out[42]:

False

python 流程控制

分支语句

In [45]:

 

b = False
c = True 
if b:
    print ("b is True!")
elif c:
    print ("c is True!")
else:
    print ("Both are False!")
c is True!

循环控制

In [50]:

 

#对字典d的键进行循环遍历,输出每组键值对
d={1:'1','abc':0.1,0.4:80}
for k in d:
    print(k,':',d[k])
1 : 1
abc : 0.1
0.4 : 80

python函数(模块)设计

In [53]:

 

# 关键字def
#定义一个名为foo的函数 传入参数x。
def foo(x):
    return x**2
#调用函数foo 传入参数为8.0 观察输出
foo(8)

Out[53]:

64

python 编程库(包)的导入

In [55]:

 

#直接使用import导入math工具包
import math
#调用math包下的exp函数求自然指数
#exp() 方法返回x的指数,e的x幂
math.exp(2)

Out[55]:

7.38905609893065

In [57]:

 

#从(from) math工具包里指定导入exphanshu,并且对exp 函数重新明名为ep
from math import exp as ep
#使用函数exp的临时代替名称调用
ep(2)

Out[57]:

7.38905609893065

 

python基础统合实践

In [68]:

 

import warnings#忽略警告
warnings.filterwarnings("ignore")

In [31]:

 

#导入pandas工具包,并且更名为pd。
import pandas as pd
#调用pandas工具包的 read_csv 函数/模块,传入训练/测试文件的地址,获得返回的数据并且存至变量df_train/df_test
df_train = pd.read_csv("breast-cancer-train.csv")
df_test=pd.read_csv("breast-cancer-test.csv")

In [32]:

 

# 看一下测试数据的列名
df_test.columns

Out[32]:

Index(['Unnamed: 0', 'Clump Thickness', 'Cell Size', 'Type'], dtype='object')

In [33]:

 

#选取'Clump Thickness'和'Type' 特征作为测试数据
df_test=df_test[['Clump Thickness','Cell Size', 'Type']]

In [34]:

 

#看前面5行
df_test.head()

Out[34]:

  Clump Thickness Cell Size Type
0 1 2 0
1 1 1 0
2 1 1 0
3 5 5 1
4 1 1 0

In [35]:

 

#把测试数据的正负样本分开
#恶心肿瘤
df_test_nagative=df_test[df_test['Type']==0]

In [36]:

 

df_test_nagative.head(2)

Out[36]:

  Clump Thickness Cell Size Type
0 1 2 0
1 1 1 0

In [37]:

 

#良性肿瘤
df_test_positive=df_test[df_test['Type']==1]

In [39]:

 

df_test_positive.head(2)

Out[39]:

  Clump Thickness Cell Size Type
3 5 5 1
7 6 6 1

In [40]:

 

#导入matplotlib工具包中的pyplot 并命名为plt
import matplotlib.pyplot as plt

plt.xlabel('Clump Thickness')#x轴名称
plt.ylabel('Cell Size')#y轴名称
#绘制良性肿瘤样本点 标记为红色的。
plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='o',s=200,c='red')

Python编程基础和Python机器学习基础案例_第1张图片

 plt.xlabel('Clump Thickness')
plt.ylabel('Cell Size')
#绘制恶性肿瘤样本点 标记为蓝色的。
plt.scatter(df_test_nagative['Clump Thickness'],df_test_nagative['Cell Size'],marker='x',s=200,c='blue')

Python编程基础和Python机器学习基础案例_第2张图片

#绘制一条直线
import numpy as np
intercept = np.random.random([1]) #随机初始化截距
coef=np.random.random([2])#随机初始化系数
lx=np.arange(0,12) 

 

In [58]:

 

intercept

Out[58]:

array([0.1024919])

In [57]:

 

coef

Out[57]:

array([0.73044324, 0.28469882])

In [60]:

 

lx=np.arange(0,12)#输入x
lx

Out[60]:

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

In [62]:

 

ly=(-intercept-lx*coef[0])/coef[1]

In [63]:

 

ly

Out[63]:

array([ -0.36000114,  -2.92567122,  -5.49134129,  -8.05701137,
       -10.62268144, -13.18835151, -15.75402159, -18.31969166,
       -20.88536174, -23.45103181, -26.01670188, -28.58237196])

In [64]:

 

#绘制这条直线
plt.plot(lx,ly,c='yellow')

Python编程基础和Python机器学习基础案例_第3张图片

plt.xlabel('Clump Thickness')
plt.ylabel('Cell Size')
plt.scatter(df_test_nagative['Clump Thickness'],df_test_nagative['Cell Size'],marker='x',s=200,c='blue')
plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='o',s=200,c='red')
plt.plot(lx,ly,c='yellow') 

Python编程基础和Python机器学习基础案例_第4张图片

 

In [66]:

 

#导入LogisticRegression分类模型
#模型是一条直线
from sklearn.linear_model import LogisticRegression
lr=LogisticRegression()

In [69]:

 

#使用训练数据训练模型的参数 即系数和截距
lr.fit(df_train[['Clump Thickness','Cell Size']],df_train[['Type']])

Out[69]:

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False)

In [70]:

 

#看训练后的模型在测试集上面的准确率
lr.score(df_test[['Clump Thickness','Cell Size']],df_test[['Type']])

Out[70]:

0.9371428571428572

In [79]:

 

intercept=lr.intercept_
coef=lr.coef_[0,:]

In [80]:

 

ly=(-intercept-lx*coef[0])/coef[1]

In [82]:

 

plt.plot(lx,ly,c='green')
plt.xlabel('Clump Thickness')
plt.ylabel('Cell Size')
plt.scatter(df_test_nagative['Clump Thickness'],df_test_nagative['Cell Size'],marker='x',s=200,c='blue')
plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='o',s=200,c='red')

Python编程基础和Python机器学习基础案例_第5张图片

你可能感兴趣的:(机器学习)