How to get correct output shape in Unet? - python

I am building a u net for binary image image segmentation. I am using Tensorflow's tf.nn api. My input image has dimensions (256,256,3) and output binary image has dimensions(256,256,1). The output of the U net model must be (1,256,256,1) but output shape results to be (7,256,256,3).For the convolutional kernels I am using Tensorflow's truncated normal initializer with each datatype as float32. Am I creating multiple output layers somewhere in the code
def get_filter(shape,na):
w =tf.get_variable(name=na,shape=shape,dtype='float32',initializer=tf.truncated_normal_initializer(dtype='float32'))
return w
def unet(inp):
#f1 = get_filter(shape=[3,3,3,16])
lay_16_1 = tf.nn.conv2d(inp,filter=get_filter(shape=[3,3,3,16],na='w_1'),strides=[1,1,1,1],padding='SAME',name='conv_16_1')
lay_16_2 = tf.nn.relu(lay_16_1,name='re_16_1')
lay_16_3 = tf.layers.batch_normalization(lay_16_2,axis=-1,name='bn_16')
lay_16_4 = tf.nn.conv2d(lay_16_3,filter=get_filter([3,3,16,16],na='w_2'),strides=[1,1,1,1],padding='SAME',name='conv_16_2')
lay_16_5 = tf.nn.relu(lay_16_4,name='re_16_2')
lay_p1 = tf.nn.max_pool(lay_16_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_1')
lay_32_1 = tf.nn.conv2d(lay_p1,filter=get_filter([3,3,16,32],na='w_3'),strides=[1,1,1,1],padding='SAME',name='conv_32_1')
lay_32_2 = tf.nn.relu(lay_32_1,name='re_32_1')
lay_32_3 = tf.layers.batch_normalization(lay_32_2,axis=-1,name='bn_32')
lay_32_4 = tf.nn.conv2d(lay_32_3,filter=get_filter([3,3,32,32],na='w_4'),strides=[1,1,1,1],padding='SAME',name='conv_32_2')
lay_32_5 = tf.nn.relu(lay_32_4,name='re_32_2')
lay_p2 = tf.nn.max_pool(lay_32_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_2')
lay_64_1 = tf.nn.conv2d(lay_p2,filter=get_filter([3,3,32,64],na='w_5'),strides=[1,1,1,1],padding='SAME',name='conv_64_1')
lay_64_2 = tf.nn.relu(lay_64_1,name='re_64_1')
lay_64_3 = tf.layers.batch_normalization(lay_64_2,axis=-1,name='bn_64')
lay_64_4 = tf.nn.conv2d(lay_64_3,filter=get_filter([3,3,64,64],na='w_6'),strides=[1,1,1,1],padding='SAME',name='conv_64_2')
lay_64_5 = tf.nn.relu(lay_64_4,name='re_64_2')
lay_p3 = tf.nn.max_pool(lay_64_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_3')
lay_128_1 = tf.nn.conv2d(lay_p3,filter=get_filter([3,3,64,128],na='w_7'),strides=[1,1,1,1],padding='SAME',name='conv_128_1')
lay_128_2 = tf.nn.relu(lay_128_1,name='re_128_1')
lay_128_3 = tf.layers.batch_normalization(lay_128_2,axis=-1,name='bn_128')
lay_128_4 = tf.nn.conv2d(lay_128_3,filter=get_filter([3,3,128,128],na='w_8'),strides=[1,1,1,1],padding='SAME',name='conv_128_2')
lay_128_5 = tf.nn.relu(lay_128_4,name='re_128_2')
lay_p4 = tf.nn.max_pool(lay_128_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_4')
lay_256_1 = tf.nn.conv2d(lay_p4,filter=get_filter([3,3,128,256],na='w_9'),strides=[1,1,1,1],padding='SAME',name='conv_256_1')
lay_256_2 = tf.nn.relu(lay_256_1,name='re_256_1')
lay_256_3 = tf.layers.batch_normalization(lay_256_2,axis=-1,name='bn_256')
lay_256_4 = tf.nn.conv2d(lay_256_3,filter=get_filter([3,3,256,256],na='w_10'),strides=[1,1,1,1],padding='SAME',name='conv_256_2')
lay_256_5 = tf.nn.relu(lay_256_4,name='re_256_2')
lay_p5 = tf.nn.max_pool(lay_256_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_5')
lay_512_1 = tf.nn.conv2d(lay_p5,filter=get_filter([3,3,256,512],na='w_11'),strides=[1,1,1,1],padding='SAME',name='conv_512_1')
lay_512_2 = tf.nn.relu(lay_512_1,name='re_512_1')
lay_512_3 = tf.layers.batch_normalization(lay_512_2,axis=-1,name='bn_512')
lay_512_4 = tf.nn.conv2d(lay_512_3,filter=get_filter([3,3,512,512],na='w_12'),strides=[1,1,1,1],padding='SAME',name='conv_512_2')
lay_512_5 = tf.nn.relu(lay_512_4,name='re_512_2')
lay_p6 = tf.nn.max_pool(lay_512_5,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME',name='pool_6')
lay_1024_1 = tf.nn.conv2d(lay_p6,filter=get_filter([3,3,512,1024],na='w_13'),strides=[1,1,1,1],padding='SAME',name='conv_1024_1')
lay_1024_2 = tf.nn.relu(lay_1024_1,name='re_1024_1')
lay_1024_3 = tf.layers.batch_normalization(lay_1024_2,axis=-1,name='bn_1024')
lay_1024_4 = tf.nn.conv2d(lay_1024_3,filter=get_filter([3,3,1024,1024],na='w_14'),strides=[1,1,1,1],padding='SAME',name='conv_1024_2')
lay_1024_5 = tf.nn.relu(lay_1024_4,name='re_1024_2')
#lay_p7 = tf.nn.max_pool(lay_1024,ksize=[1,2,2,1],strides=[1,1,1,1],padding='SAME',name='pool_7')
up_512 = tf.image.resize_images(images=lay_1024_5,size=[8,8],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_512_1 = tf.nn.conv2d(up_512,filter=get_filter([3,3,1024,512],na='w_15'),strides=[1,1,1,1],padding='SAME',name='mer_512_1')
con_512_2 = tf.nn.relu(con_512_1,name='rel_512_1')
mer_512 = tf.concat([lay_512_5,con_512_2],axis=0,name='mer_512_2')
con_512_3 = tf.nn.conv2d(mer_512,filter=get_filter([3,3,512,512],na='w_16'),strides=[1,1,1,1],padding='SAME',name='mer_512_3')
con_512_4 = tf.nn.relu(con_512_3,name='rel_512_2')
con_512_5 = tf.layers.batch_normalization(con_512_4,axis=-1,name='mer_bn_512')
con_512_6 = tf.nn.conv2d(con_512_5,filter=get_filter([3,3,512,512],na='w_17'),strides=[1,1,1,1],padding='SAME',name='mer_512_4')
con_512_7 = tf.nn.relu(con_512_6,name='rel_512_3')
up_256 = tf.image.resize_images(images=con_512_7,size=[16,16],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_256_1 = tf.nn.conv2d(up_256,filter=get_filter([3,3,512,256],na='w_18'),strides=[1,1,1,1],padding='SAME',name='mer_256_1')
con_256_2 = tf.nn.relu(con_256_1,name='rel_256_1')
mer_256 = tf.concat([lay_256_5,con_256_2],axis=0,name='mer_256_2')
con_256_3 = tf.nn.conv2d(mer_256,filter=get_filter([3,3,256,256],na='w_19'),strides=[1,1,1,1],padding='SAME',name='mer_256_3')
con_256_4 = tf.nn.relu(con_256_3,name='rel_256_2')
con_256_5 = tf.layers.batch_normalization(con_256_4,axis=-1,name='mer_bn_256')
con_256_6 = tf.nn.conv2d(con_256_5,filter=get_filter([3,3,256,256],na='w_20'),strides=[1,1,1,1],padding='SAME',name='mer_256_4')
con_256_7 = tf.nn.relu(con_256_6,name='rel_256_3')
up_128 = tf.image.resize_images(images=con_256_7,size=[32,32],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_128_1 = tf.nn.conv2d(up_128,filter=get_filter([3,3,256,128],na='w_21'),strides=[1,1,1,1],padding='SAME',name='mer_128_1')
con_128_2 = tf.nn.relu(con_128_1,name='rel_128_1')
mer_128 = tf.concat([lay_128_5,con_128_2],axis=0,name='mer_128_2')
con_128_3 = tf.nn.conv2d(mer_128,filter=get_filter([3,3,128,128],na='w_22'),strides=[1,1,1,1],padding='SAME',name='mer_128_3')
con_128_4 = tf.nn.relu(con_128_3,name='rel_128_2')
con_128_5 = tf.layers.batch_normalization(con_128_4,axis=-1,name='mer_bn_128')
con_128_6 = tf.nn.conv2d(con_128_5,filter=get_filter([3,3,128,128],na='w_23'),strides=[1,1,1,1],padding='SAME',name='mer_128_4')
con_128_7 = tf.nn.relu(con_128_6,name='rel_128_3')
up_64 = tf.image.resize_images(images=con_128_7,size=[64,64],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_64_1 = tf.nn.conv2d(up_64,filter=get_filter([3,3,128,64],na='w_24'),strides=[1,1,1,1],padding='SAME',name='mer_64_1')
con_64_2 = tf.nn.relu(con_64_1,name='rel_64_1')
mer_64 = tf.concat([lay_64_5,con_64_2],axis=0,name='mer_64_2')
con_64_3 = tf.nn.conv2d(mer_64,filter=get_filter([3,3,64,64],na='w_25'),strides=[1,1,1,1],padding='SAME',name='mer_64_3')
con_64_4 = tf.nn.relu(con_64_3,name='rel_64_2')
con_64_5 = tf.layers.batch_normalization(con_64_4,axis=-1,name='mer_bn_64')
con_64_6 = tf.nn.conv2d(con_64_5,filter=get_filter([3,3,64,64],na='w_26'),strides=[1,1,1,1],padding='SAME',name='mer_64_4')
con_64_7 = tf.nn.relu(con_64_6,name='rel_64_3')
up_32 = tf.image.resize_images(images=con_64_7,size=[128,128],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_32_1 = tf.nn.conv2d(up_32,filter=get_filter([3,3,64,32],na='w_27'),strides=[1,1,1,1],padding='SAME',name='mer_32_1')
con_32_2 = tf.nn.relu(con_32_1,name='rel_32_1')
mer_32 = tf.concat([lay_32_5,con_32_2],axis=0,name='mer_32_2')
con_32_3 = tf.nn.conv2d(mer_32,filter=get_filter([3,3,32,32],na='w_28'),strides=[1,1,1,1],padding='SAME',name='mer_32_3')
con_32_4 = tf.nn.relu(con_32_3,name='rel_32_2')
con_32_5 = tf.layers.batch_normalization(con_32_4,axis=-1,name='mer_bn_32')
con_32_6 = tf.nn.conv2d(con_32_5,filter=get_filter([3,3,32,32],na='w_29'),strides=[1,1,1,1],padding='SAME',name='mer_32_4')
con_32_7 = tf.nn.relu(con_32_6,name='rel_32_3')
up_16 = tf.image.resize_images(images=con_32_7,size=[256,256],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
con_16_1 = tf.nn.conv2d(up_16,filter=get_filter([3,3,32,16],na='w_30'),strides=[1,1,1,1],padding='SAME',name='mer_16_1')
con_16_2 = tf.nn.relu(con_16_1,name='rel_16_1')
mer_16 = tf.concat([lay_16_5,con_16_2],axis=0,name='mer_16_2')
con_16_3 = tf.nn.conv2d(mer_16,filter=get_filter([3,3,16,16],na='w_31'),strides=[1,1,1,1],padding='SAME',name='mer_16_3')
con_16_4 = tf.nn.relu(con_16_3,name='rel_16_2')
con_16_5 = tf.layers.batch_normalization(con_16_4,axis=-1,name='mer_bn_16')
con_16_6 = tf.nn.conv2d(con_16_5,filter=get_filter([3,3,16,16],na='w_32'),strides=[1,1,1,1],padding='SAME',name='mer_16_4')
con_16_7 = tf.nn.relu(con_16_6,name='rel_16_3')
fin_img = tf.nn.conv2d(con_16_7,filter=get_filter([1,1,16,1],na='w_33'),strides=[1,1,1,1],padding='SAME',name='final_image')
#fin_img = tf.nn.sigmoid(fin_img)
return fin_img

Related

ValueError: X has 41 features, but RandomForestClassifier is expecting 42 features as input

I am trying to code a machine learning model that predicts the outcome of college basketball games (Code shown below)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
folder = '../input/mens-march-mania-2022/MDataFiles_Stage1/'
Seeds = pd.read_csv(folder+'MNCAATourneySeeds.csv')
Conferences = pd.read_csv(folder+'MTeamConferences.csv')
team_ids = pd.read_csv(folder + 'MTeams.csv')
reg_season_data = pd.read_csv(folder+'MRegularSeasonDetailedResults.csv')
TourneyCompact = pd.read_csv(folder+'MNCAATourneyCompactResults.csv')
tournament_data = pd.read_csv(folder + 'MNCAATourneyDetailedResults.csv')
display(reg_season_data.columns.values)
WinTeams = pd.DataFrame()
LoseTeams = pd.DataFrame()
columns = ['Season', 'TeamID', 'Points', 'LTeamID', 'OppPoints',
'Loc', 'NumOT', 'FGM', 'FGA', 'FGM3', 'FGA3', 'FTM', 'FTA',
'OR', 'DR', 'Ast', 'TO', 'Stl', 'Blk', 'PF', 'LFGM', 'LFGA',
'LFGM3', 'LFGA3', 'LFTM', 'LFTA', 'LOR', 'LDR', 'LAst', 'LTO',
'LStl', 'LBlk', 'LPF']
WinTeams[columns] = reg_season_data[['Season', 'WTeamID', 'WScore', 'LTeamID', 'LScore',
'WLoc', 'NumOT', 'WFGM', 'WFGA', 'WFGM3', 'WFGA3', 'WFTM', 'WFTA',
'WOR', 'WDR', 'WAst', 'WTO', 'WStl', 'WBlk', 'WPF', 'LFGM', 'LFGA',
'LFGM3', 'LFGA3', 'LFTM', 'LFTA', 'LOR', 'LDR', 'LAst', 'LTO',
'LStl', 'LBlk', 'LPF']]
WinTeams['Wins'] = 1
WinTeams['Loses'] = 0
LoseTeams[columns] = reg_season_data[['Season', 'LTeamID', 'LScore', 'WTeamID', 'WScore',
'WLoc', 'NumOT', 'LFGM', 'LFGA', 'LFGM3', 'LFGA3', 'LFTM', 'LFTA',
'LOR', 'LDR', 'LAst', 'LTO', 'LStl', 'LBlk', 'LPF', 'WFGM', 'WFGA',
'WFGM3', 'WFGA3', 'WFTM', 'WFTA', 'WOR', 'WDR', 'WAst', 'WTO',
'WStl', 'WBlk', 'WPF']]
def change_loc(loc):
if loc == 'H':
return 'A'
elif loc == 'A':
return 'H'
else:
return 'N'
LoseTeams['Loc'] = LoseTeams['Loc'].apply(change_loc)
LoseTeams['Wins'] = 0
LoseTeams['Loses'] = 1
WinLoseTeams = pd.concat([WinTeams, LoseTeams])
combinedTeams = WinLoseTeams.groupby(['Season', 'TeamID']).sum()
combinedTeams['NumGames'] = combinedTeams['Wins'] + combinedTeams['Loses']
display(combinedTeams.columns.values)
RegularSeasonInput = pd.DataFrame()
RegularSeasonInput['WinRatio'] = combinedTeams['Wins']/combinedTeams['NumGames']
RegularSeasonInput['PointsPerGame'] = combinedTeams['Points']/combinedTeams['NumGames']
RegularSeasonInput['PointsAllowedPerGame'] = combinedTeams['OppPoints']/combinedTeams['NumGames']
RegularSeasonInput['PointsRatio'] = combinedTeams['Points']/combinedTeams['OppPoints']
RegularSeasonInput['OTsPerGame'] = combinedTeams['NumOT']/combinedTeams['NumGames']
RegularSeasonInput['FGperGame'] = combinedTeams['FGM']/combinedTeams['NumGames']
RegularSeasonInput['FGRatio'] = combinedTeams['FGM']/combinedTeams['FGA']
RegularSeasonInput['FGallowedPerGame'] = combinedTeams['LFGM']/combinedTeams['NumGames']
RegularSeasonInput['OppFGRatio'] = combinedTeams['LFGM']/combinedTeams['LFGA']
RegularSeasonInput['Opp3FGRatio'] = combinedTeams['LFGM3']/combinedTeams['LFGA3']
RegularSeasonInput['FTallowedPerGame'] = combinedTeams['LFTM']/combinedTeams['NumGames']
RegularSeasonInput['OffensiveReboundRatio'] = combinedTeams['OR'] / (combinedTeams['OR'] + combinedTeams['LDR'])
RegularSeasonInput['AstPerGame'] = combinedTeams['Ast']/combinedTeams['NumGames']
RegularSeasonInput['LDefensiveReboundRatio'] = combinedTeams['LDR'] / (combinedTeams['LDR'] + combinedTeams['OR'])
RegularSeasonInput['TOPerGame'] = combinedTeams['TO']/combinedTeams['NumGames']
RegularSeasonInput['StlPerGame'] = combinedTeams['Stl']/combinedTeams['NumGames']
RegularSeasonInput['BlkPerGame'] = combinedTeams['Blk']/combinedTeams['NumGames']
RegularSeasonInput['PFPerGame'] = combinedTeams['PF']/combinedTeams['NumGames']
RegularSeasonInput['LTOPerGame'] = combinedTeams['LTO']/combinedTeams['NumGames']
RegularSeasonInput['LStlPerGame'] = combinedTeams['LStl']/combinedTeams['NumGames']
RegularSeasonInput['LBlkPerGame'] = combinedTeams['LBlk']/combinedTeams['NumGames']
RegularSeasonInput['LPFPerGame'] = combinedTeams['LPF']/combinedTeams['NumGames']
RegularSeasonInput['PossesionsPerGame'] = (combinedTeams['FGA'] - combinedTeams['OR'] + combinedTeams['TO'] + (0.475*combinedTeams['FTA']))/ combinedTeams['NumGames']
RegularSeasonInput['OppPossesionsPerGame'] = (combinedTeams['LFGA'] - combinedTeams['LOR'] + combinedTeams['LTO'] + (0.475*combinedTeams['LFTA']))/ combinedTeams['NumGames']
RegularSeasonInput['PointsPerPossesion'] = (combinedTeams['Points']/combinedTeams['NumGames'])/((combinedTeams['FGA'] - combinedTeams['OR'] + combinedTeams['TO'] + (0.475*combinedTeams['FTA']))/ combinedTeams['NumGames'])
RegularSeasonInput['TrueShooting%'] = combinedTeams['Points']/(2*(combinedTeams['FGA'] + 0.44 * combinedTeams['FTA']))
RegularSeasonInput['OppTrueShooting%'] = combinedTeams['OppPoints']/(2*(combinedTeams['LFGA'] + 0.44 * combinedTeams['LFTA']))
RegularSeasonInput['EffectiveFG%'] = (combinedTeams['FGM'] + 0.5 * combinedTeams['FGM3'])/combinedTeams['FGA']
RegularSeasonInput['OppEffectiveFG%'] = (combinedTeams['LFGM'] + 0.5 * combinedTeams['LFGM3'])/combinedTeams['LFGA']
RegularSeasonInput['AstToTORatio'] = combinedTeams['Ast']/ combinedTeams['TO']
RegularSeasonInput['OppAstToTORatio'] = combinedTeams['LAst']/ combinedTeams['LTO']
RegularSeasonInput['Efficiency'] = (combinedTeams['Points'] + combinedTeams['OR'] + combinedTeams['DR'] + combinedTeams['Ast'] + combinedTeams['Stl'] + combinedTeams['Blk'] - (combinedTeams['FGA'] - combinedTeams['FGM']) - (combinedTeams['FTA'] - combinedTeams['FTM']) - combinedTeams['TO'])/combinedTeams['NumGames']
RegularSeasonInput['OppEfficiency'] = (combinedTeams['OppPoints'] + combinedTeams['LOR'] + combinedTeams['LDR'] + combinedTeams['LAst'] + combinedTeams['LStl'] + combinedTeams['LBlk'] - (combinedTeams['LFGA'] - combinedTeams['LFGM']) - (combinedTeams['LFTA'] - combinedTeams['LFTM']) - combinedTeams['LTO'])/combinedTeams['NumGames']
RegularSeasonInput['OppFTRate'] = combinedTeams['LFTA']/combinedTeams['LFGA']
RegularSeasonInput['OffensiveEfficiencyPer100'] = (combinedTeams['Points']/(combinedTeams['FGA'] - combinedTeams['OR'] + combinedTeams['TO'] + (0.475*combinedTeams['FTA'])))*100
RegularSeasonInput['DefensiveEfficiencyPer100'] = (combinedTeams['OppPoints']/(combinedTeams['FGA'] - combinedTeams['OR'] + combinedTeams['TO'] + (0.475*combinedTeams['FTA'])))*100
RegularSeasonInput['OppOffensiveEfficiencyPer100'] = (combinedTeams['OppPoints']/(combinedTeams['LFGA'] - combinedTeams['LOR'] + combinedTeams['LTO'] + (0.475*combinedTeams['LFTA'])))*100
RegularSeasonInput['OppDefensiveEfficiencyPer100'] = (combinedTeams['Points']/(combinedTeams['LFGA'] - combinedTeams['LOR'] + combinedTeams['LTO'] + (0.475*combinedTeams['LFTA'])))*100
RegularSeasonInput['Opp2P%'] = (combinedTeams['LFGM'] - combinedTeams['LFGM3'])/(combinedTeams['LFGA'] - combinedTeams['LFGA3'])
RegularSeasonInput['2P%'] = (combinedTeams['FGM'] - combinedTeams['FGM3'])/(combinedTeams['FGA'] - combinedTeams['FGA3'])
RegularSeasonInput['Ew%'] = combinedTeams['Points']**11.5/(combinedTeams['Points']**11.5 + combinedTeams['OppPoints']**11.5)
display(RegularSeasonInput)
seed_dict = Seeds.set_index(['Season', 'TeamID'])
display(seed_dict.index.values)
TourneyInput = pd.DataFrame()
winIDs = TourneyCompact['WTeamID']
loseIDs = TourneyCompact['LTeamID']
season = TourneyCompact['Season']
winners = pd.DataFrame()
winners[['Season', 'Team1', 'Team2']] = TourneyCompact[['Season', 'WTeamID', 'LTeamID']]
winners['Result'] = 1
losers = pd.DataFrame()
losers[['Season', 'Team1', 'Team2']] = TourneyCompact[['Season', 'LTeamID', 'WTeamID']]
losers['Result'] = 0
TourneyInput = pd.concat([winners, losers])
TourneyInput = TourneyInput[TourneyInput['Season']>=2003].reset_index(drop=True)
team1seeds = []
team2seeds = []
for x in range(len(TourneyInput)):
idx = (TourneyInput['Season'][x], TourneyInput['Team1'][x])
seed = seed_dict.loc[idx].values[0]
if len(seed) == 4:
seed = int(seed[1:-1])
else:
seed = int(seed[1:])
team1seeds.append(seed)
idx = (TourneyInput['Season'][x], TourneyInput['Team2'][x])
seed = seed_dict.loc[idx].values[0]
if len(seed) == 4:
seed = int(seed[1:-1])
else:
seed = int(seed[1:])
team2seeds.append(seed)
TourneyInput['Team1Seed'] = team1seeds
TourneyInput['Team2Seed'] = team2seeds
display(TourneyInput)
outscores = []
for x in range (len(TourneyInput)):
idx = (TourneyInput['Season'][x], TourneyInput['Team1'][x])
team1score = RegularSeasonInput.loc[idx]
team1score['Seed'] = TourneyInput['Team1Seed'][x]
idx = (TourneyInput['Season'][x], TourneyInput['Team2'][x])
team2score = RegularSeasonInput.loc[idx]
team2score['Seed'] = TourneyInput['Team2Seed'][x]
outscore = team1score - team2score
outscore['Result'] = TourneyInput['Result'][x]
outscores.append(outscore)
outscores = pd.DataFrame(outscores)
display(outscores)
corrs = round(outscores.corr(), 2)
display(np.abs(corrs['Result']))
import seaborn as sns
plt.figure(figsize=(15,10))
sns.heatmap(corrs)
plt.show()
X = outscores[outscores.columns[:-1]].values
Y = outscores['Result'].values
np.random.seed(1)
idx = np.random.permutation(len(X))
train_idx = idx[:int(-0.2*len(X))]
test_idx = idx[int(-0.2*len(X)):]
X_train = X[train_idx]
X_test = X[test_idx]
Y_train = Y[train_idx]
Y_test = Y[test_idx]
mins = X_train.min(axis=0)
maxs = X_train.max(axis=0)
X_train = (X_train - mins)/(maxs - mins)
X_test = (X_test - mins)/(maxs - mins)
print(X_train.shape, X_test.shape, Y_train.shape, Y_test.shape)
Whenever I run the cell below it comes up with the error. X has 41 features, but RandomForestClassifier is expecting 42 features as input.
def predict_matchup(team1, team2, season, team1_seed, team2_seed):
team1_name = list(team_ids[team_ids['TeamID'] == team1]['TeamName'])[0]
team2_name = list(team_ids[team_ids['TeamID'] == team2]['TeamName'])[0]
print(f'{team1_seed} {team1_name} vs {team2_seed} {team2_name}')
season_data = RegularSeasonInput.query(f'Season == {season}').reset_index()
team1_data = season_data.query(f'TeamID == {team1}')
team2_data = season_data.query(f'TeamID == {team2}')
match_data = team1_data.merge(team2_data, on='Season', suffixes=['', '_Opponent'])
match_data['Seed_Diff'] = team2_seed - team1_seed
match_data = match_data[['WinRatio', 'PointsPerGame', 'PointsAllowedPerGame', 'PointsRatio',
'OTsPerGame','FGperGame', 'FGRatio', 'FGallowedPerGame',
'OppFGRatio', 'Opp3FGRatio', 'FTallowedPerGame',
'OffensiveReboundRatio', 'AstPerGame',
'LDefensiveReboundRatio', 'TOPerGame', 'StlPerGame', 'BlkPerGame',
'PFPerGame', 'LTOPerGame', 'LStlPerGame', 'LPFPerGame', 'PossesionsPerGame',
'OppPossesionsPerGame','PointsPerPossesion', 'TrueShooting%', 'OppTrueShooting%',
'EffectiveFG%', 'OppEffectiveFG%', 'AstToTORatio', 'OppAstToTORatio',
'Efficiency', 'OppEfficiency', 'OppFTRate', 'OffensiveEfficiencyPer100',
'DefensiveEfficiencyPer100', 'OppOffensiveEfficiencyPer100',
'OppDefensiveEfficiencyPer100', 'Opp2P%', '2P%', 'Ew%', 'LBlkPerGame']]
model.predict(match_data)
predict_matchup(1333, 1393, 2003, 1, 3)
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(random_state=3)
model = model.fit(X_train, Y_train)
model.score(X_test, Y_test)
I don't know what I am doing please help. You do not understand the frustration that this project has caused me
When running the code above I expected it to output the models predictions based on all of the inputs.

Values Not displaying in graph when using plotly candlestick graphs

I am trying to Graph some values from an excel file. I cannot change anything on the excel. I used .getgroup() with multiple columns to get main values from each month, and then put them into a list which I used to be displayed in a Candlestick graph. I get no errors whatsoever, but apart from the x values, no other data is displayed on the graph.
import plotly.graph_objects as go
import pandas as pd
from datetime import datetime
def main():
df = pd.read_excel('DatosUnited.xlsx')
##Formato Mean: mean/mes/año/Columna
##OPEN
monthYear = df.groupby(['Month', 'Year'])
june2019 = monthYear.get_group((6, 2019))
june2019Open = june2019['Open']
mJUN19O = june2019.mean()
july2019 = monthYear.get_group((7, 2019))
july2019Open = july2019['Open']
mJUL19O = july2019.mean()
aug2019 = monthYear.get_group((8, 2019))
aug2019Open = aug2019['Open']
mAUG19O = aug2019.mean()
sep2019 = monthYear.get_group((9, 2019))
sep2019Open = aug2019['Open']
mSEP19O = sep2019.mean()
oct2019 = monthYear.get_group((10, 2019))
oct2019Open = oct2019['Open']
mOCT19O = sep2019.mean()
nov2019 = monthYear.get_group((11, 2019))
nov2019Open = nov2019['Open']
mNOV19O = nov2019.mean()
dic2019 = monthYear.get_group((12, 2019))
nov2019Open = nov2019['Open']
mDIC19O = dic2019.mean()
##High
june2019 = monthYear.get_group((6, 2019))
june2019High = june2019['High']
mJUN19H = june2019.mean()
july2019 = monthYear.get_group((7, 2019))
july2019High = july2019['High']
mJUL19H = july2019.mean()
aug2019 = monthYear.get_group((8, 2019))
aug2019High = aug2019['High']
mAUG19H = aug2019.mean()
sep2019 = monthYear.get_group((9, 2019))
sep2019High = aug2019['High']
mSEP19H = sep2019.mean()
oct2019 = monthYear.get_group((10, 2019))
oct2019High = oct2019['High']
mOCT19H = sep2019.mean()
nov2019 = monthYear.get_group((11, 2019))
nov2019High = nov2019['High']
mNOV19H = nov2019.mean()
dic2019 = monthYear.get_group((12, 2019))
nov2019High = nov2019['High']
mDIC19H = dic2019.mean()
##LOW
june2019 = monthYear.get_group((6, 2019))
june2019Low = june2019['Low']
mJUN19L = june2019.mean()
july2019 = monthYear.get_group((7, 2019))
july2019Low = july2019['Low']
mJUL19L = july2019.mean()
aug2019 = monthYear.get_group((8, 2019))
aug2019Low = aug2019['High']
mAUG19L = aug2019.mean()
sep2019 = monthYear.get_group((9, 2019))
sep2019Low = aug2019['Low']
mSEP19L = sep2019.mean()
oct2019 = monthYear.get_group((10, 2019))
oct2019Low = oct2019['Low']
mOCT19L = sep2019.mean()
nov2019 = monthYear.get_group((11, 2019))
nov2019Low = nov2019['Low']
mNOV19L = nov2019.mean()
dic2019 = monthYear.get_group((12, 2019))
nov2019Low = nov2019['Low']
mDIC19L = dic2019.mean()
##Close/Price
june2019 = monthYear.get_group((6, 2019))
june2019C = june2019['Close/Price']
mJUN19c = june2019.mean()
july2019 = monthYear.get_group((7, 2019))
july2019Low = july2019['Close/Price']
mJUL19c = july2019.mean()
aug2019 = monthYear.get_group((8, 2019))
aug2019C = aug2019['Close/Price']
mAUG19c = aug2019.mean()
sep2019 = monthYear.get_group((9, 2019))
sep2019C = aug2019['Close/Price']
mSEP19c = sep2019.mean()
oct2019 = monthYear.get_group((10, 2019))
oct2019Low = oct2019['Close/Price']
mOCT19c = sep2019.mean()
nov2019 = monthYear.get_group((11, 2019))
nov2019C = nov2019['Close/Price']
mNOV19c = nov2019.mean()
dic2019 = monthYear.get_group((12, 2019))
nov2019C = nov2019['Close/Price']
mDIC19c = dic2019.mean()
openMeans = [mJUN19O, mJUL19O, mAUG19O, mSEP19O, mOCT19O, mNOV19O, mDIC19O]
highMeans = [mJUN19H, mJUL19H, mAUG19H, mSEP19H, mOCT19H, mNOV19H, mDIC19H]
lowMeans = [mJUN19L, mJUL19L, mAUG19L, mSEP19L, mOCT19L, mNOV19L, mDIC19L]
closeMeans = [mJUN19c, mJUL19c, mAUG19c, mSEP19c, mOCT19c, mNOV19c, mDIC19c]
dates = ['6-2019', '7-2019','8-2019','9-2019','10-2019','11-2019','12-2019']
fig = go.Figure(data=[go.Candlestick(x= dates,
open = openMeans,
high = highMeans,
low= lowMeans,
close = closeMeans)])
fig.show()
main()
I believe there is something wrong regarding the format in which the mean values are stored, but I can´t seem to find the solution

How to use re function in python

I have the following list :
['[infotype02]', 'lastModifiedOn = serial<customMapping>', 'customString18 = BADGE_NUMBER<move>', 'firstName = FIRST_NAME<move>', 'lastName = LAST_NAME<move>', 'customString29 = USER_NAME<move>', 'email = EMAIL_ADDRESS<move>', 'documenttype = DOC_TYPE<move>', 'documentnumber = DOC_SERIA<customMapping>', 'documentnumberx2 = DOC_NUMBER<customMapping>', 'issuedate = DOC_ISSUE_DATE<move>', 'issueauthority = DOC_ISSUER<move>', 'nationalId = CNP<move>', 'company = COMPANY<move>', 'phoneNumber = PHONE_NUMBER<move>', 'startDate = HIRE_DATE<customMapping>', 'startDatex2 = TERMINATION_DATE<customMapping>', '[/infotype02]', '[infotype02]', 'lastModifiedOn = serial<customMapping>', 'customString18 = BADGE_NUMBER<move>', 'firstName = FIRST_NAME<move>', 'lastName = LAST_NAME<move>', 'customString29 = USER_NAME<move>', 'email = EMAIL_ADDRESS<move>', 'documenttype = DOC_TYPE<move>', 'documentnumber = DOC_SERIA<customMapping>', 'documentnumberx2 = DOC_NUMBER<customMapping>', 'issuedate = DOC_ISSUE_DATE<move>', 'issueauthority = DOC_ISSUER<move>', 'nationalId = CNP<move>', 'company = COMPANY<move>', 'phoneNumber = PHONE_NUMBER<move>', 'startDate = HIRE_DATE<customMapping>', 'startDatex2 = TERMINATION_DATE<customMapping>', '[/infotype02]']
for i in list; i = [infotype02]
I tried using re expression to get the string between the [], expected result infotype02 :
result = re.search('[(.*)]', i)
Then tried to append the result.group(1) to a new list and it returned an error :
lst.append(result.group(1))
AttributeError: 'NoneType' object has no attribute 'group'
I don't understand what is wrong with my re expresion and why isn't it finding the string between the []
You can just use a simple for-loop to accomplish this:
data = ['[infotype02]', 'lastModifiedOn = serial<customMapping>', 'customString18 = BADGE_NUMBER<move>', 'firstName = FIRST_NAME<move>',
'lastName = LAST_NAME<move>', 'customString29 = USER_NAME<move>', 'email = EMAIL_ADDRESS<move>', 'documenttype = DOC_TYPE<move>',
'documentnumber = DOC_SERIA<customMapping>', 'documentnumberx2 = DOC_NUMBER<customMapping>', 'issuedate = DOC_ISSUE_DATE<move>',
'issueauthority = DOC_ISSUER<move>', 'nationalId = CNP<move>', 'company = COMPANY<move>', 'phoneNumber = PHONE_NUMBER<move>',
'startDate = HIRE_DATE<customMapping>', 'startDatex2 = TERMINATION_DATE<customMapping>', '[/infotype02]', '[infotype02]',
'lastModifiedOn = serial<customMapping>', 'customString18 = BADGE_NUMBER<move>', 'firstName = FIRST_NAME<move>', 'lastName = LAST_NAME<move>',
'customString29 = USER_NAME<move>', 'email = EMAIL_ADDRESS<move>', 'documenttype = DOC_TYPE<move>', 'documentnumber = DOC_SERIA<customMapping>',
'documentnumberx2 = DOC_NUMBER<customMapping>', 'issuedate = DOC_ISSUE_DATE<move>', 'issueauthority = DOC_ISSUER<move>', 'nationalId = CNP<move>',
'company = COMPANY<move>', 'phoneNumber = PHONE_NUMBER<move>', 'startDate = HIRE_DATE<customMapping>', 'startDatex2 = TERMINATION_DATE<customMapping>',
'[/infotype02]']
new_list = []
for d in data:
if d[0] == '[' and not d[1] == '/':
#if re.match(r"\[[^/](.*)\]", d): # If you want to use `re`
new_list.append(d[1:-1])
print(new_list)
Output:
['infotype02', 'infotype02']
As you have 2 of these tags in your given list.

how do i make an irregular shape with python idle graphics

pt1 = Point(280,49)
pt2 = Point(279,62)
pt3 = Point(276,86)
pt4 = Point(274,114)
pt5 = Point(273,126)
pt6 = Point(271,153)
pt7 = Point(269,166)
pt8 = Point(268,179)
pt9 = Point(267,192)
pt10 = Point(266,206)
pt11 = Point(265,213)
pt12 = Point(264,223)
pt13 = Point(264,230)
pt14 = Point(262,238)
pt15 = Point(256,238)
pt16 = Point(244,238)
pt17 = Point(235,239)
pt18 = Point(226,238)
pt19 = Point(223,236)
pt20 = Point(226,222)
ferb = Polygon (pt1,pt2,pt3,pt4,pt5,pt6,pt7,pt8,pt9,pt10,pt11,pt12,pt13,pt14,pt15,pt16,pt17,pt18,pt19,pt20).
This is my code and I need I way to rewrite this using loops in python. I have to use either for or while loop, oh and conditional statements(if and elif) if neccessary

An strange python "if" syntax error

I get this error: Invaild syntax in my "if" statement and rly can't figur why, can anyone of you guys help me? I'm using python 3.2
here is the part of my code whit the error my code:
L = list()
LT = list()
tn = 0
players = 0
newplayer = 0
newplayerip = ""
gt = "start"
demsg = "start"
time = 1
status = 0
day = 1
conclient = 1
print("DONE! The UDP Server is now started and Waiting for client's on port 5000")
while 1:
try:
data, address = server_socket.recvfrom(1024)
if not data: break
################### reciving data! ###################
UPData = pickle.loads(data)
status = UPData[0][[0][0]
if status > 998: ##### it is here the error are given####
try:
e = len(L)
ori11 = UPData[0][1][0]
ori12 = UPData[0][1][1]
ori13 = UPData[0][1][2]
ori14 = UPData[0][1][3]
ori21 = UPData[0][1][4]
ori22 = UPData[0][1][5]
ori23 = UPData[0][1][6]
ori24 = UPData[0][1][7]
ori31 = UPData[0][2][0]
ori32 = UPData[0][2][1]
ori33 = UPData[0][2][2]
ori34 = UPData[0][2][3]
ori41 = UPData[0][2][4]
ori42 = UPData[0][2][5]
ori43 = UPData[0][2][6]
ori44 = UPData[0][2][7]
ori51 = UPData[0][3][0]
ori52 = UPData[0][3][1]
ori53 = UPData[0][3][2]
ori54 = UPData[0][3][3]
ori61 = UPData[0][3][4]
ori62 = UPData[0][3][5]
ori63 = UPData[0][3][6]
ori64 = UPData[0][3][7]
ori71 = UPData[0][4][0]
ori72 = UPData[0][4][1]
ori73 = UPData[0][4][2]
ori74 = UPData[0][4][3]
ori81 = UPData[0][4][4]
ori82 = UPData[0][4][5]
ori83 = UPData[0][4][6]
ori84 = UPData[0][4][7]
ori91 = UPData[0][5][0]
ori92 = UPData[0][5][1]
ori93 = UPData[0][5][2]
ori94 = UPData[0][5][3]
ori101 = UPData[0][5][4]
ori102 = UPData[0][5][5]
ori103 = UPData[0][5][6]
ori104 = UPData[0][5][7]
npcp11 = UPData[0][6][0]
npcp12 = UPData[0][6][1]
npcp13 = UPData[0][6][2]
npcp21 = UPData[0][6][3]
npcp22 = UPData[0][6][4]
npcp23 = UPData[0][6][5]
npcp31 = UPData[0][6][6]
npcp32 = UPData[0][6][7]
npcp33 = UPData[0][7][0]
npcp41 = UPData[0][7][1]
npcp42 = UPData[0][7][2]
npcp43 = UPData[0][7][3]
npcp51 = UPData[0][7][4]
npcp52 = UPData[0][7][5]
npcp53 = UPData[0][7][6]
npcp61 = UPData[0][7][7]
npcp62 = UPData[0][8][0]
npcp63 = UPData[0][8][1]
npcp71 = UPData[0][8][2]
npcp72 = UPData[0][8][3]
npcp73 = UPData[0][8][4]
npcp81 = UPData[0][8][5]
npcp82 = UPData[0][8][6]
npcp83 = UPData[0][8][7]
npcp91 = UPData[1][0][0]
npcp92 = UPData[1][0][1]
npcp93 = UPData[1][0][2]
npcp101 = UPData[1][0][3]
npcp102 = UPData[1][0][4]
npcp103 = UPData[1][0][5]
d0 = (status, )
d1 = (ori11,ori12,ori13,ori14,ori21,ori22,ori23,ori24)
d2 = (ori31,ori32,ori33,ori34,ori41,ori42,ori43,ori44)
d3 = (ori51,ori52,ori53,ori54,ori61,ori62,ori63,ori64)
d4 = (ori71,ori72,ori73,ori74,ori81,ori82,ori83,ori84)
d5 = (ori91,ori92,ori93,ori94,ori101,ori102,ori103,ori104)
d6 = (npcp11,npcp21,npcp31,npcp21,npcp22,npcp23,npcp31,npcp32)
d7 = (npcp33,npcp41,npcp42,npcp43,npcp51,npcp52,npcp53,npcp61)
d8 = (npcp62,npcp63,npcp71,npcp72,npcp72,npcp81,npcp82,npcp83)
d9 = (npcp91,npcp92,npcp93,npcp101,npcp102,npcp103)
pack1 = (d0,d1,d2,d3,d4,d5,d6,d7,d8)
pack2 = (d9, )
dat = pickle.dumps((pack1,pack2))
while tn < e:
server_socket.sendto(dat, (L[tn],3560))
tn = tn + 1
except:
pass
print("could not send data to some one or could not run the server at all")
else:
the part where the console tells me my error is is here:
if status > 998:
The problem is here:
status = UPData[0][[0][0]
The second opened bracket [ is not closed. The Python compiler keeps looking for the closing bracket, finds if on the next line and gets confused because if is not supposed to be inside brackets.
You may want to remove this bracket, or close it, according to your specific needs (the structure of UPData)

Categories